Проблема такая:
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?