Перейти к основному содержимому

События массовой обработки очередного шага импорта

События вызываются после того, как модуль провел очередной шаг массового импорта товаров (модификаций, услуг и комплектов).

[OnAfterImportItems] - вызывается после массового импорта новых сущностей

[OnAfterUpdateItems] - вызывается после массового импорта существующих сущностей (после их обновления)

[OnAfterImporItems] Событие после импорта новых элементов

Поиск созданного элемента можно осуществить с помощью внешнего кода, который доступен в массиве обрабатываемых объектов из МС.

\Bitrix\Main\EventManager::getInstance()->addEventHandler( 
'rbs.moyskladstocks',
'OnAfterImportItems',
'OnAfterImportItemsHandler'
);

function OnAfterImportItemsHandler(\Bitrix\Main\Event $event)
{
$eventParams = $event->getParameters();

$entity= $eventParams['entity']; //сущность в МойСклад, которая обрабатывается (четыер варианта значения: product / variant / bundle / service)
$items = $eventParams['items']; //массив обрабатываемых объектов (ниже пример их обработки)

foreach ($items as $xmlId => $itemMs) {
// $xmlId -- внешний код элемента, для модификаций это значение будет без решетки # во внешнем коде
// $itemMs -- сущность в МС, доступ к полям идет через свойства объекта
}

// \Rbs\MoyskladStocks\Logger::debugMsg($arItems, 'importItemsLog.log'); //запись в логи, логи хранятся в папке /bitrix/rbs.moyskladstocks/logs/
}

[OnAfterUpdateItems] Событие после импорта существующих элементов

\Bitrix\Main\EventManager::getInstance()->addEventHandler( 
'rbs.moyskladstocks',
'OnAfterUpdateItems',
'OnAfterUpdateItemsHandler'
);

function OnAfterUpdateItemsHandler(\Bitrix\Main\Event $event)
{
$eventParams = $event->getParameters();

$entity= $eventParams['entity']; //сущность в МойСклад, которая обрабатывается (четыер варианта значения: product / variant / bundle / service)
$items = $eventParams['items']; //массив обрабатываемых объектов (ниже пример их обработки)
$productsBxArray = $eventParams['products']; //массив полей товара

foreach ($items as $xmlId => $currentItem) {
// $xmlId -- внешний код элемента, для модификаций это значение будет без решетки # во внешнем коде
$itemBx = $currentItem['BX']; //сущность в битриксе, доступ к полям идет через ассоциативный массив
$item = $currentItem['MS']; //сущность в МС, доступ к полям идет через свойства объекта
//поля товара в торговом каталоге
$productBxArray = isset($productsBxArray [$itemBx['ID']]) ? $productsBxArray[$itemBx['ID']] : [];
}

// \Rbs\MoyskladStocks\Logger::debugMsg($arItems, 'updateItemsLog.log'); //запись в логи, логи хранятся в папке /bitrix/rbs.moyskladstocks/logs/
}