Нужно отменять изменение цены при выгрузки из 1С при определенных условиях (если заполнена цена "7"). Возвращаю в событии OnBeforePriceUpdate false и цена всё равно меняется (а точнее затирается). В чем может быть причина?
AddEventHandler('catalog', 'OnBeforePriceUpdate', 'UpdateRoznByRecomended');
AddEventHandler('catalog', 'OnBeforePriceAdd', 'UpdateRoznByRecomended');
function UpdateRoznByRecomended($ID, &$arFields){
if ($_GET['mode'] === 'import') {
в логе появляется:
AddEventHandler('catalog', 'OnBeforePriceUpdate', 'UpdateRoznByRecomended');
AddEventHandler('catalog', 'OnBeforePriceAdd', 'UpdateRoznByRecomended');
function UpdateRoznByRecomended($ID, &$arFields){
if ($_GET['mode'] === 'import') {
Код |
---|
$db_res = CPrice::GetList( array(), array( "PRODUCT_ID" => $arFields["PRODUCT_ID"], "CATALOG_GROUP_ID" => 7 ), false, false, array() ); if ($ar_res = $db_res->Fetch()) { ///// Проверяем что мы попадаем в это условие и записываем $arFields в лог $fd = fopen("/путь к файлу лога/public_html/log.txt", 'a') or die("не удалось открыть файл"); $str = "false ".json_encode($arFields).PHP_EOL; fwrite($fd, $str); fclose($fd); return false; /// Возвращаем false чтобы не менять цену } } |
в логе появляется:
Цитата |
---|
false {"PRODUCT_ID":"867597","CATALOG_GROUP_ID":"2","^PRICE":1900,"CURRENCY":"RUB","QUANTITY_FROM":"","QUANTITY_TO":"","PRICE":1900,"RECALC":false} |