Нужно отменять изменение цены при выгрузки из 1С при определенных условиях (если заполнена цена "7"). Возвращаю в событии OnBeforePriceUpdate false и цена всё равно меняется (а точнее затирается). В чем может быть причина?
AddEventHandler('catalog', 'OnBeforePriceUpdate', 'UpdateRoznByRecomended');
AddEventHandler('catalog', 'OnBeforePriceAdd', 'UpdateRoznByRecomended');
function UpdateRoznByRecomended($ID, &$arFields){
if ($_GET['mode'] === 'import') {
[CODE] $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 чтобы не менять цену
}
}[/CODE]
в логе появляется:
[QUOTE]false {"PRODUCT_ID":"867597","CATALOG_GROUP_ID":"2","^PRICE":1900,"CURRENCY":"RUB","QUANTITY_FROM":"","QUANTITY_TO":"","PRICE":1900,"RECALC":false}[/QUOTE]
AddEventHandler('catalog', 'OnBeforePriceUpdate', 'UpdateRoznByRecomended');
AddEventHandler('catalog', 'OnBeforePriceAdd', 'UpdateRoznByRecomended');
function UpdateRoznByRecomended($ID, &$arFields){
if ($_GET['mode'] === 'import') {
[CODE] $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 чтобы не менять цену
}
}[/CODE]
в логе появляется:
[QUOTE]false {"PRODUCT_ID":"867597","CATALOG_GROUP_ID":"2","^PRICE":1900,"CURRENCY":"RUB","QUANTITY_FROM":"","QUANTITY_TO":"","PRICE":1900,"RECALC":false}[/QUOTE]