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

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

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

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

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

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

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

к сведению

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

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

СлучайПочему
Действие DELETEУдаление обрабатывается раньше, своим событием — OnBeforeDeleteItem
Сущность specialpricediscount (скидки)У скидок другой путь обработки, объект сущности там не создаётся
Сущность productfolderГруппы товаров обрабатываются отдельной веткой
Веб-хук отсечён дедупликацией кеша или настройками до разбораМодуль до этой точки не доходит
Модификации при включённой опции загрузки модификаций агентомВеб-хук по variant пропускается раньше
Частота срабатывания

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

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

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

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

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

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