Не нашли ответы на свои вопросы в наших публикациях? Задайте вопрос в службу техподдержки!
В модули экспорта добавлен интерфейс функции acritRedefine( $fieldIndex, $arItem["ID"], $profileId ), определив которую в файле /bitrix/php_interface/init.php вы можете определить значение соответствующего "Тега выгрузки". Получая на вход код "Тега выгрузи" (например, #PRICE#) и ID товара/товарного предложения, функция должна возвращать значение "Тега выгрузи". Собственно все. А теперь тост! пример.
Назад в раздел
function acritRedefine( $fieldIndex, $itemId, $profileId ){ $result = false; if( $profileId != 5 ){ if( ( $fieldIndex == "#PRICE#" ) && CModule::IncludeModule( "iblock" ) ){ $dbElement = CIBlockElement::GetList( array(), array( "ID" => intval( $itemId ) ), false, false, array( "ID", "IBLOCK_ID", "CATALOG_GROUP_1", ) ); if( $arElement = $dbElement->GetNext() ){ if( ( intval( $arElement["CATALOG_PRICE_1"] ) > 0 ) && ( $arElement["CATALOG_QUANTITY"] < 10 ) ){ $result = $arElement["CATALOG_PRICE_1"] + 0.1 * $arElement["CATALOG_PRICE_1"]; } } } } return $result; }А нет, оказалось, что не все... Теперь все то же самое можно использовать для категорий товаров (тех, что попадают в корневой тег и присутствуют у каждого элемента в теге ) Например, редефайн может выглядеть так:
function acritRedefine( $fieldIndex, $itemId, $profileId ){ $result = false; if( ( $fieldIndex == "#MARKET_CATEGORY#" ) && CModule::IncludeModule( "iblock" ) && CModule::IncludeModule( "acrit.exportproplus" ) ){ $obProfile = new CExportproplusProfileDB(); $arProfile = $obProfile->GetByID( $profileId ); if( $arProfile["TYPE"] == "ym_simple" ){ $dbElement = CIBlockElement::GetList( array(), array( "ID" => intval( $itemId ) ), false, false, array( "ID", "IBLOCK_ID", "IBLOCK_SECTION_ID", "PROPERTY_INTERFEIS_PODKLYUCHENIYA", ) ); if( $arElement = $dbElement->GetNext() ){ $dbSectionList = CIBlockSection::GetNavChain( $arElement["IBLOCK_ID"], $arElement["IBLOCK_SECTION_ID"] ); $iElementParentSection = false; while( $arSection = $dbSectionList->GetNext() ){ $iElementParentSection = $arSection["ID"]; break; } if( $iElementParentSection && ( $iElementParentSection == 4 ) ){ $obMarketCategory = new CExportproplusMarketDB(); $arMarketCategory = $obMarketCategory->GetMarketList( $arProfile["MARKET_CATEGORY"]["CATEGORY"] ); $arTerminalVals = array( "Беспроводные", "Bluetooth", ); if( in_array( trim( $arElement["PROPERTY_INTERFEIS_PODKLYUCHENIYA_VALUE"] ), $arTerminalVals ) ){ $marketCategory = "Все товары/Электроника/Портативная техника/Наушники и Bluetooth-гарнитуры"; } else{ $marketCategory = "Все товары/Компьютерная техника/Периферийные устройства/Компьютерные гарнитуры"; } $bUseCategoryRedefine = false; if( ( $arProfile["USE_IBLOCK_CATEGORY"] != "Y" ) && ( $arProfile["USE_IBLOCK_PRODUCT_CATEGORY"] != "Y" ) && ( $arProfile["USE_MARKET_CATEGORY"] == "Y" ) ){ $bUseCategoryRedefine = true; } if( is_array( $arMarketCategory ) && !empty( $arMarketCategory ) && $bUseCategoryRedefine ){ $result = array_search( $marketCategory, $arMarketCategory ) + 1; } } } } } return $result; }Теперь все. Наверное. Но это не точно)
Назад в раздел