У торговых предложений одного товара разыне веса. Я передаю вес из 1С с помощью доп свойства.
В init.php пишу:
Код |
---|
AddEventHandler( "iblock", "OnAfterIBlockElementUpdate", array( "class_import", "FillTheWeight" ) );
class class_import {
function FillTheWeight($arFields){
$arCatalogID=array(14);
if( in_array($arFields['IBLOCK_ID'], $arCatalogID) ){
$arItem = CIBlockElement::GetList( false, array( 'IBLOCK_ID' => $arFields['IBLOCK_ID'], 'ID' => $arFields['ID'] ), false, false, array( 'ID', 'PROPERTY_VES_BRUTTO_KG_' ) )->fetch();
if( $arItem['PROPERTY_VES_BRUTTO_KG__VALUE'] ){
AddMessage2Log('hvoost Вес получен ' . $arItem['PROPERTY_VES_BRUTTO_KG__VALUE'] * 1000 . ' будет установлен для ID ' . $arFields['ID']);
$weightFields = array("WEIGHT" => $arItem['PROPERTY_VES_BRUTTO_KG__VALUE'] * 1000);
if(CCatalogProduct::Update($arFields['ID'], $weightFields))
AddMessage2Log('hvoost Вес установлен');
else
AddMessage2Log('hvoost Ошибка при установке веса');
}
}
}
} |
Через логи показывает что все проходит как надо: вес получаю, ид торгового предложения правильный, а в итоге поле вес все равно 0.