Не нашли ответы на свои вопросы в наших публикациях? Задайте вопрос в службу техподдержки!
В модули экспорта добавлен интерфейс функции 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;
}
Теперь все. Наверное. Но это не точно)Назад в раздел
