Добрый день коллеги!
Необходимо, чтобы при изменении товара с торговыми предложениями автоматически заполнялись свойства 'MINIMUM_PRICE' и 'MAXIMUM_PRICE'.
Вешаю функцию на событие обновления элемента инфоблока, но почему-то не работает
AddEventHandler("iblock", "OnAfterIBlockElementUpdate", "MinMaxSKUPriceUpdate" ) ;
function MinMaxSKUPriceUpdate(&$arFields){
$isOffer = CCatalogSKU::GetInfoByOfferIBlock($arFields['IBLOCK_ID']);
if (is_array($isOffer)){
$rsOffers = CIBlockElement::GetList(array(),array('IBLOCK_ID' => $isOffer['IBLOCK_ID'], 'PROPERTY_'.$isOffer['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;
}
}
В чем может быть ошибка?
Необходимо, чтобы при изменении товара с торговыми предложениями автоматически заполнялись свойства 'MINIMUM_PRICE' и 'MAXIMUM_PRICE'.
Вешаю функцию на событие обновления элемента инфоблока, но почему-то не работает
AddEventHandler("iblock", "OnAfterIBlockElementUpdate", "MinMaxSKUPriceUpdate" ) ;
function MinMaxSKUPriceUpdate(&$arFields){
$isOffer = CCatalogSKU::GetInfoByOfferIBlock($arFields['IBLOCK_ID']);
if (is_array($isOffer)){
$rsOffers = CIBlockElement::GetList(array(),array('IBLOCK_ID' => $isOffer['IBLOCK_ID'], 'PROPERTY_'.$isOffer['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;
}
}
В чем может быть ошибка?