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