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

🪝 Веб-хуки

Настройки веб-хуков в модуле

Что такое веб-хуки?​

Веб-хуки — это механизм автоматического уведомления вашего сайта об изменениях в МойСклад. Когда в МойСклад происходят изменения (обновление заказа, создание оплаты, отгрузки и т.д.), МойСклад автоматически отправляет уведомление на ваш сайт.

Обязательная настройка

Настройка веб-хуков обязательна для корректной работы модуля. Без веб-хуков изменения заказов из МойСклад не будут передаваться на сайт.

Зачем нужны веб-хуки?​

  • Мгновенная синхронизация (либо через очередь) — изменения передаются сразу после их создания в МойСклад
  • Автоматическое обновление заказов — статусы, комментарии и другие данные обновляются без задержек
  • Снижение нагрузки — система работает по событиям, а не постоянно опрашивает API

Какие веб-хуки поддерживает модуль​

Сущность МойСкладСобытияЗачем нужен
customerorder (заказ покупателя)UPDATEОбязательный. Перенос изменений заказа из МойСклад на сайт
customerorder (заказ покупателя)CREATEИмпорт новых заказов из МойСклад на сайт
paymentin (входящий платёж)CREATE, UPDATE, DELETEПолный обмен оплатами [full]
cashin (приходный ордер)CREATE, UPDATE, DELETEПолный обмен оплатами [full]
demand (отгрузка)CREATE, UPDATEПолный обмен отгрузками [full]

Подробнее о каждом веб-хуке — в разделе Структура веб-хука и создание веб-хука.

примечание

Удаление заказа покупателя и удаление отгрузки в МойСклад модуль на сайт не переносит: веб-хуков customerorder / DELETE и demand / DELETE во вкладке нет, а если такое уведомление всё же придёт, модуль его пропустит.

Как модуль обрабатывает веб-хук​

  1. МойСклад отправляет уведомление на адрес веб-хука (по умолчанию https://site.ru/mshooks/hook.php). В адресе передаётся проверочная строка — см. Настройка URL.
  2. Модуль проверяет запрос. Уведомление обрабатывается, только если включена опция «Включить обмен» (вкладка Работа модуля) и проверочная строка совпала. Запросы с неверной проверочной строкой молча отклоняются и в журнал не пишутся. МойСклад сразу получает ответ об успешном приёме, дальнейшая обработка идёт уже на стороне сайта.
  3. Модуль распределяет изменения. В одном веб-хуке может прийти несколько изменённых сущностей (например, при массовом редактировании). Каждая из них в зависимости от типа выполнения веб-хука обрабатывается сразу или ставится в очередь задач. Сколько сущностей обработать сразу, задаёт ограничение, остальные тоже уходят в очередь.
  4. Очередь разбирает агент — по расписанию он берёт порцию задач и обрабатывает их так же, как при моментальном выполнении.

Дополнительно модуль:

  • отсекает повторы — одно и то же изменение (сущность + событие), пришедшее повторно в течение нескольких секунд, обрабатывается один раз. Время задаётся опцией «Кеш веб-хука (секунды)» во вкладке Прочее (от 1 до 10 секунд, по умолчанию 5);
  • пропускает заказы, для которых обмен отключён, и заказы, которых нет на сайте (если это не импорт нового заказа);
  • пишет журнал по каждой обработанной сущности: в заголовке записи указаны тип сущности, событие, идентификатор в МойСклад и, если заказ на сайте найден, его номер.
Под каким пользователем вносятся изменения

Изменения заказа из веб-хука записываются от имени пользователя из опции «Пользователь, под которым записываем изменения заказа» (вкладка Работа модуля). Модуль авторизует этого пользователя только на время обработки и после неё снимает только ту авторизацию, которую выдал сам. Если запрос пришёл в рамках сессии уже авторизованного пользователя сайта, его сессия не завершается.

Разделы настройки​

В данном разделе доступны следующие настройки:

  1. Настройка URL — адрес для получения веб-хуков и проверочная строка
  2. Ограничения веб-хуков — лимиты обработки сущностей и очереди задач
  3. Структура веб-хука и создание веб-хука — создание, обновление и удаление веб-хуков, выбор типа выполнения