Проблема такая:
1) конфиг 1с менять нельзя (нужно решение только через сайт)
2) в файл offers.xml попадают товары с количеством >= 1
3) если в 1с количество = 0 то в файл offers.xml не падает об этом элементе не каких сведений.
Задача: заставить записать с начало количества 0 а потом если есть в xml записать от туда (для снижение нагрузки проверка на вывод всех которые больше 0)
пробовал через init.php
Так:
И так:
В обоих случаях обработчик не ловиться, какое будет правильное условие?
Как добиться нужного результата?
Или может кто предложит решение что бы отловить все товары которых не было в импорте и записать им 0 через OnSuccessCatalogImport1C?
1) конфиг 1с менять нельзя (нужно решение только через сайт)
2) в файл offers.xml попадают товары с количеством >= 1
3) если в 1с количество = 0 то в файл offers.xml не падает об этом элементе не каких сведений.
Задача: заставить записать с начало количества 0 а потом если есть в xml записать от туда (для снижение нагрузки проверка на вывод всех которые больше 0)
пробовал через init.php
Так:
Код |
---|
AddEventHandler('catalog', 'OnBeforeIBlockElementUpdate', 'QUANTITY'); function QUANTITY(&$arFields) { if (@$_REQUEST['mode']=='import') { CModule::IncludeModule('catalog'); $db_res = CCatalogProduct::GetList(); while ($ar_res = $db_res->Fetch()) { if($ar_res['QUANTITY'] > 0){ CCatalogProduct::Update($ar_res&['ID'], array('QUANTITY' => 0)); } } } } |
И так:
Код |
---|
AddEventHandler('catalog', 'OnBeforeCatalogImport1C', 'QUANTITY'); function QUANTITY(&$arFields) { CModule::IncludeModule('catalog'); $db_res = CCatalogProduct::GetList(); while ($ar_res = $db_res->Fetch()) { if($ar_res['QUANTITY'] > 0){ CCatalogProduct::Update($ar_res&['ID'], array('QUANTITY' => 0)); } } } |
В обоих случаях обработчик не ловиться, какое будет правильное условие?
Как добиться нужного результата?
Или может кто предложит решение что бы отловить все товары которых не было в импорте и записать им 0 через OnSuccessCatalogImport1C?