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

Событие пропущенного веб-хука

[OnWebhookSkipped] Веб-хук по сущности, которую модуль обрабатывать не стал​

Доступно с версии 3.9.0

На более ранних версиях событие не вызывается.

Событие OnWebhookSkipped — пара к OnWebhookUpdate. Если OnWebhookUpdate срабатывает, когда элемент найден или создан, то OnWebhookSkipped срабатывает в противоположном случае: веб-хук пришёл, модуль его разобрал, но элемент в каталоге не загрузил и дальше обрабатывать не стал.

Так бывает, когда:

  • элемента нет в каталоге Битрикс, а создавать его по веб-хуку настройки не разрешают;
  • сущность архивная;
  • сущность не проходит фильтр по доп. полю;
  • сущность лежит вне групп товаров, выбранных в настройках импорта;
  • объект сущности не удалось загрузить из МойСклад (сетевая ошибка, сущность уже удалена);
  • для группы товаров — не задан инфоблок групп или раздела нет в каталоге.
примечание

«Не загрузил» не всегда значит «ничего не сделал». До того как отказаться от элемента, модуль может деактивировать его в каталоге — если товар архивный, вне выбранных групп или не проходит фильтр по доп. полю, — а также записать его код в кеш идентификаторов.

До появления этого события такой веб-хук не оставлял кастомному коду ни одного сигнала.

к сведению

Событие информационное, возвращать ничего не нужно. Отменить или изменить поведение модуля через него нельзя.

Когда событие не вызывается​

СлучайПочему
Действие DELETEУдаление идёт своим путём и своим событием — OnBeforeDeleteItem
Сущность specialpricediscount (скидки)У скидок другой путь обработки, объект сущности там не создаётся
Сущность productfolder при выключенном импорте группМодуль групп не трогает и до разбора не доходит
Веб-хук отсечён дедупликацией кеша или настройками до разбораМодуль до этой точки не доходит
href не принадлежит API МойСклад или действие не из CREATE, UPDATE, DELETEВеб-хук отбрасывается до разбора
Сущность объявлена в реестре OnBuildWebhookEntityList в режиме replace или обработчик before отменил обработкуМодуль сущность не обрабатывает
Модификации при включённой опции загрузки модификаций агентомВеб-хук по variant пропускается раньше
Событие не попало в первые webhook_limit_count событий запросаДо разбора оно не дошло; такие события приходят в OnWebhookEventsDropped
Исключения не перехватываются

Исключение из обработчика модуль не ловит: оно обрывает обработку остальных событий этого веб-хука. Оборачивайте свой код в try/catch.

Частота срабатывания

На магазине, где веб-хуки настроены на весь каталог МойСклад, а импортируется только одна группа товаров, событие будет приходить на каждый веб-хук вне этой группы. Держите обработчик лёгким — тяжёлая логика здесь заметно замедлит приём веб-хуков.

Параметры события

ПараметрТипОписание
hookobjectОбъект веб-хука от МойСклад целиком
entitystringСущность: product, variant, bundle, service, productfolder
actionstringДействие веб-хука: CREATE или UPDATE
ms_elementobject | nullСущность из МойСклад. null, если объект не удалось загрузить из API
предупреждение

ms_element может быть null — именно в этом случае модуль и не смог ничего сделать. Проверяйте значение перед обращением к свойствам.

Возвращаемое значение

Ничего возвращать не нужно.