В init.php есть код, который пишет минимальную и максимальную цену в свойства товара (по торговым предложениям) при обновление элемента.
Когда обновляем товар через админку все ок, при обмене с 1С ничего не пишется, дата изменения элемента меняется.
Вопрос OnBeforeIBlockElementUpdate при обновление товаров из 1С работает вообще сейчас, или может какое другое событие сделали?
Торговый каталог, версия 14.5.5
Код обновления свойств:
Когда обновляем товар через админку все ок, при обмене с 1С ничего не пишется, дата изменения элемента меняется.
Вопрос OnBeforeIBlockElementUpdate при обновление товаров из 1С работает вообще сейчас, или может какое другое событие сделали?
Торговый каталог, версия 14.5.5
Код обновления свойств:
Код |
---|
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", "MinMaxSKUPriceUpdate"); function MinMaxSKUPriceUpdate(&$arFields){ $isProduct = CCatalogSKU::GetInfoByProductIBlock($arFields['IBLOCK_ID']); if (is_array($isProduct)){ $rsOffers = CIBlockElement::GetList(array(),array('IBLOCK_ID' => $isProduct['IBLOCK_ID'], 'PROPERTY_'.$isProduct['SKU_PROPERTY_ID'] => $arFields['ID']), false, false, array('IBLOCK_ID', 'ID', 'CATALOG_GROUP_1')); while ($arOffer = $rsOffers->GetNext()){ if(!isset($MIN_PRICE)){$MIN_PRICE = $arOffer['CATALOG_PRICE_1'];} if(!isset($MAX_PRICE)){$MAX_PRICE = $arOffer['CATALOG_PRICE_1'];} if($MIN_PRICE > $arOffer['CATALOG_PRICE_1']){ $MIN_PRICE = $arOffer['CATALOG_PRICE_1']; } if($MAX_PRICE < $arOffer['CATALOG_PRICE_1']){ $MAX_PRICE = $arOffer['CATALOG_PRICE_1']; } } $arFields['PROPERTY_VALUES']['MINIMUM_PRICE'] = $MAX_PRICE; $arFields['PROPERTY_VALUES']['MAXIMUM_PRICE'] = $MIN_PRICE; } } |