Сообщество IT-специалистов
Ответы на любые вопросы об IT
Профессиональное развитие в IT
Удаленная работа для IT-специалистов
AddEventHandler("catalog", "OnDiscountAdd", "eventChangeDiscount" ); AddEventHandler("catalog", "OnBeforeDiscountUpdate", "eventChangeDiscount"); AddEventHandler("catalog", "OnBeforeDiscountDelete", "eventChangeDiscount" ); function eventChangeDiscount ($id, $arFields) { global $arProdsIdsAfterDiscountDelete; $file_log_email = $_SERVER["DOCUMENT_ROOT"]."/log/update_discount_".date('d-m-Y')."_log.txt"; if(!file_exists($file_log_email)){ file_put_contents($file_log_email, ''); } var_dump($arFields); file_put_contents($file_log_email, json_encode($arFields, JSON_PRETTY_PRINT).PHP_EOL, FILE_APPEND); Cmodule::IncludeModule('catalog'); if(CModule::IncludeModule("catalog")) { if(empty($arFields["PRODUCT_IDS"]) && !empty($id)) // при удалении скидки { // запомним IDшники товаров из акции $resDiscount = CCatalogDiscount::GetList(array(), array("ID"=>$id)); while($obDiscount = $resDiscount->Fetch()) { $arProdsIdsAfterDiscountDelete[] = $obDiscount["PRODUCT_ID"]; // костыльно конечно } } if(!empty($arFields["PRODUCT_IDS"])) { foreach($arFields["PRODUCT_IDS"] as $prod_id) { // нужно для сортировки цены со скидкой // Прошу обратить внимание - обязательно указание сайта!!! в моем случае "s1" // $arPrice = CCatalogProduct::GetOptimalPrice($prod_id, 1, array(2), "N", array() , "s1"); // CIBlockElement::SetPropertyValueCode($prod_id, "MIN_PRICE_DISCOUNT", $arPrice["DISCOUNT_PRICE"]); // можем поменять на SetPropertyValues, если знаем ID Инфоблока } } } }