Не нашли ответы на свои вопросы в наших публикациях? Задайте вопрос в службу техподдержки!
События в модуле в порядке их выполнения при запуске импорта:
1/
Подготовка источника импорта. Возникла ошибка при загрузке источника импорта (обычно для источников, заданных URL)
Например, можно обнулить остатки, если внешний файл импорта оказался недоступным.OnPrepareSourceError(\Acrit\Import\Import $profile, \Throwable $error)
2/
Источник импорта подготовлен. Вызывается перед запуском профиля импорта.
OnBeforeImportProfileRun(\Acrit\Import\Import $profile)
3/
Вызывается перед запуском каждого шага многошагового импорта
OnBeforeImportProfileRunStep(\Acrit\Import\Import $profile, $type, $limit, $next_item)
4/
OnStartProcessRowInSaveIBData(\Acrit\Import\Import $profile, array &$arInputRow)
вызывается после чтения элемента из файла и до обработки модулем
5/
OnBeforeFindExistsItemInSaveIBData(\Acrit\Import\Import $profile, array &$arInputRow, array &$arFilter)
Вызывается перед попыткой найти существующий элемент в базе данных. Можно модифицировать массив фильтра поиска существующего элемента $arFilter, например, помимо артикула добавить еще поиск по свойству-поставщику.
6/
OnFindItem(\Acrit\Import\Import $arProfile, array $arFilter)
Cобытие, позволяющее написать свой обработчик поиска элемента по фильтру (чтобы использовать стандартный - нужно вернуть
false
; если вернуть 0
- значит поиск завершился неудачей).Использование, например, искать в индексе, а не в инфоблоке, для производительности.
7/
OnBeforeProcessRowInSaveIBData(\Acrit\Import\Import $profile, array &$arInputRow, array $arIBItem)
вызывается после чтения одного товара (элемента) из файла импорта и попытке найти соответствующий этой записи элемент в инфоблоке (
$arIBItem
).8/
OnAfterSaveIBData(\Acrit\Import\Import $arProfile, array $arInputRow, array $arIBItem, false|array $arImpRes)
вызывается после обновления элемента $arIBItem
c результатом $arImpRes
:array{'errors':[], 'message':[]}
, ключ 'errors'
- если есть ошибки, либо ключ 'message'
при успешном обновлении, либо false
- тоже успешно.9/
Полное завершение импорта файла:
OnAfterAcritImportProcess(int $profileId, \Acrit\Import\Import $profile)
10/
Завершение создания фасетного индекса после импорта:
OnAfterAcritImportIndexing(int $profileId, \Acrit\Import\Import $profile)
Другие события:
Для регистрации своих типов иморта (или модификации имеющихся):OnGetImportTypes(array $arTypes)
- полное описание типовOnGetImportSTypes(array $arTypes)
- упрощенное описание типов (массив имен)Назад в раздел