Не нашли ответы на свои вопросы в наших публикациях? Задайте вопрос в службу техподдержки!
События в модуле в порядке их выполнения при запуске импорта:
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/
OnAfterFillData(\Acrit\Import\Import $profile, &$arSectFields, &$arIBFields, &$arItemProduct, &$arItemPrices, &$arItemPricesCurrencies, &$arItemStores)вызывается перед обработкой элемента методами API битрикса.
10/
OnAfterSaveIBData(\Acrit\Import\Import $arProfile, array $arInputRow, array $arIBItem, false|array $arImpRes) вызывается после обновления элемента $arIBItem c результатом $arImpRes:array{'errors':[], 'message':[]}, ключ 'errors' - если есть ошибки, либо ключ 'message' при успешном обновлении, либо false - тоже успешно.11/
Полное завершение импорта файла:
OnAfterAcritImportProcess(int $profileId, \Acrit\Import\Import $profile)12/
Завершение создания фасетного индекса после импорта:
OnAfterAcritImportIndexing(int $profileId, \Acrit\Import\Import $profile)
Другие события:
Для регистрации своих типов иморта (или модификации имеющихся):OnGetImportTypes(array $arTypes) - полное описание типовOnGetImportSTypes(array $arTypes) - упрощенное описание типов (массив имен)Назад в раздел
