Добрый день, подскажите что делаю не так, не срабатывает обновление цены:
Код |
---|
AddEventHandler("iblock", "OnAfterIBlockElementUpdate", Array("RecallSetUpdatePrice", "OnAfterIBlockElementUpdateHandler"));
class RecallSetUpdatePrice {
public static $disableHandler = false;
function OnAfterIBlockElementUpdateHandler(&$arFields) {
$arSetsByProduct = CCatalogProductSet::getAllSetsByProduct($arFields["ID"], CCatalogProductSet::TYPE_SET);
$arSetsByProduct = array_shift($arSetsByProduct);
// Код ценывого предложения комплекта
$setPriceCode = CPrice::GetBasePrice($arSetsByProduct['ITEM_ID']);
// Получаем стоимость каждого товара из комплекта
foreach ($arSetsByProduct['ITEMS'] as $getItemPrice) {
$rsPrices = CPrice::GetList(array(), array('PRODUCT_ID' => $getItemPrice['ITEM_ID'], 'CATALOG_GROUP_ID' => '2'));
if ($arPrice = $rsPrices->Fetch()) {
$all_item_price[] = $arPrice['PRICE'];
}
}
// Сумма комплекта
$setSumm = array_sum($all_item_price);
// Массив для обновления комплекта
$prodDetail = Array(
"PRODUCT_ID" => $arSetsByProduct["ITEM_ID"],
"CATALOG_GROUP_ID" => 2,
"PRICE" => $setSumm,
"CURRENCY" => 'RUB'
);
// Обновление цены
CPrice::Update($setPriceCode, $prodDetail);
}
}
|