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

Вебхуки МойСклад: приём изменений из МойСклад в Битрикс24

Вебхук — это способ МойСклад сразу сообщить модулю: «заказ изменился», «появился новый контрагент». Кладовщик меняет статус заказа на «Отгружен» — МойСклад отправляет уведомление на ваш сайт, модуль ставит задачу в очередь, и сделка в CRM переезжает на нужную стадию.

Без вебхуков обмен работает только в одну сторону — из Битрикс24 в МойСклад.

Страница находится в меню Общие параметры → Вебхуки МойСклад.

Страница «Вебхуки МойСклад» целиком

Работа с вебхуками состоит из трёх частей, они идут на странице сверху вниз:

  1. Обработчик на вашем сайте — файл, по адресу которого МойСклад будет присылать уведомления.
  2. Секретный ключ — пароль, по которому модуль отличает настоящие уведомления от посторонних запросов.
  3. Вебхуки в аккаунте МойСклад — записи, которые говорят МойСклад, о чём и куда сообщать.

Кнопка Как настроить вебхуки? в верхней части страницы открывает короткую пошаговую инструкцию с картинками.

Настройки страницы​

НастройкаЧто делаетПо умолчанию
URL для вебхуковАдрес обработчика на вашем сайте, куда МойСклад присылает уведомления. Должен начинаться с http:// или https:// и отвечать кодом 200Заполняется сам при первом открытии страницы: протокол://адрес-вашего-портала/webhooks/handler.php
Секретный ключУникальный ключ, по которому модуль узнаёт свои вебхуки. Запрос без верного ключа обработчик отклоняетГенерируется сам при первом открытии страницы: случайная строка из 32 латинских букв и цифр

Адрес и ключ, заполненные автоматически, сразу сохраняются. Протокол и адрес портала берутся из того, как вы сейчас открыли Битрикс24 в браузере.

Адрес обработчика​

Слева — поле URL для вебхуков, справа — панель Обработчик со статусом файла и кнопками.

Кнопки у адреса​

КнопкаЧто делает
ИзменитьРазблокирует поле адреса для правки. Если файл обработчика уже установлен, правка недоступна — появится окно Изменение URL недоступно: сначала удалите файл кнопкой Удалить файл
ГотовоПоявляется в режиме правки. Завершает правку и сразу сохраняет адрес
По умолчаниюПоявляется в режиме правки. После подтверждения в окне Сброс URL (кнопка Сбросить) возвращает стандартный адрес …/webhooks/handler.php и сохраняет его

Пока файл установлен, под полем написано «Пока файл установлен, адрес заблокирован от изменений». Ниже показан Путь к файлу обработчика на сервере.

Когда менять адрес. Обычно — никогда: стандартный адрес подходит. Менять стоит, если:

  • портал открывается из интернета по другому адресу или протоколу, чем вы зашли сейчас (например, вы работаете по внутреннему адресу, а снаружи сайт доступен по https://crm.example.ru);
  • на сайте уже есть что-то по пути /webhooks/ и нужно другое имя папки или файла.

Пример. Сайт доступен снаружи по https://crm.example.ru. Адрес обработчика: https://crm.example.ru/webhooks/handler.php. Своё имя: https://crm.example.ru/ms_hooks/moysklad.php.

Ограничения адреса

В именах папок и файла допустимы только латинские буквы, цифры и знак подчёркивания _, у файла может быть окончание .php. При другом символе под полем появится ошибка вида «Недопустимые символы в имени директории» — кнопка Установить файл станет неактивной.

Панель «Обработчик»: статусы​

СтатусЗначитЧто делать
Файл установлен / Файл не найденЕсть ли файл обработчика на сервере по указанному адресуНет файла — нажмите Установить файл
Доступ разрешён / Доступ не настроенРазрешено ли МойСклад обращаться к файлу без входа в Битрикс24Не настроен — нажмите Обновить доступ
Доступность не проверенаВнешняя проверка ещё не запускаласьНажмите Проверить доступность
Проверяем доступность…Проверка идёт прямо сейчасПодождите
Доступен извнеМодуль обратился к своему адресу и получил ответ 200 — МойСклад сможет доставлять уведомленияНичего, всё в порядке
Недоступен извне (HTTP …)Ответ пришёл, но с другим кодомСм. ниже
Проверка не удаласьЗапрос не состоялся вовсе (адрес не задан, файл не установлен, сетевая ошибка). Текст причины — под кнопкамиИсправьте причину и проверьте снова

Целевое состояние — все три статуса зелёные.

«Доступ не настроен» — частая причина, почему не работает импорт

Если у файла нет доступа, Битрикс24 отвечает МойСклад страницей входа вместо обработки уведомления, и уведомления пропадают. При этом в МойСклад вебхуки выглядят созданными. Модуль прописывает разрешение сам — кнопками Установить файл или Обновить доступ.

Панель «Обработчик»: кнопки​

КнопкаКогда виднаЧто делает
ОбновитьВсегда, в заголовке панелиЗаново читает статус файла и доступа
Установить файлФайла ещё нетКопирует файл обработчика на сервер по указанному адресу и сразу открывает к нему доступ
Обновить доступФайл есть, а доступа нетПрописывает разрешение на обращение к файлу без входа в Битрикс24
Проверить доступностьВсегдаМодуль сам отправляет запрос на свой адрес и показывает код ответа. Под кнопкой появляется код и адрес, по которому шла проверка
Удалить файлФайл установленПосле подтверждения в окне Удаление файла обработчика (кнопка Удалить) удаляет файл. Все входящие вебхуки перестанут обрабатываться до повторной установки

Если статус файла загрузить не удалось, в панели будет надпись «Не удалось загрузить статус файла» и ссылка Повторить.

Проверка идёт по сохранённому адресу

Проверить доступность неактивна, пока на странице есть несохранённые изменения, — под кнопкой появится подсказка «сначала сохраните изменения». Проверять можно только адрес на домене вашего портала.

Если сайт «недоступен извне». Любой код, кроме 200, значит, что обработчик закрыт. Проверьте по порядку: зелёные ли статусы Файл установлен и Доступ разрешён (если нет — Установить файл или Обновить доступ), совпадает ли адрес с тем, по которому сайт открывается из интернета. Если и это в порядке — мешают права на сервере или настройки веб-сервера, тут нужен администратор сервера.

Секретный ключ​

Ключ вписывается в адрес каждого вебхука. Когда приходит уведомление, модуль сверяет ключ: без него или с неверным ключом запрос отклоняется и ничего не обрабатывается.

ЭлементЧто делает
Поле ключаКлюч скрыт точками. Значок глаза справа показывает его
СгенерироватьПосле подтверждения в окне Новый секретный ключ (кнопка Сгенерировать) создаёт новый случайный ключ и сразу сохраняет его

Ключ можно вписать и вручную — тогда сохраните его кнопкой Сохранить на плавающей панели внизу страницы.

Когда менять. Только если есть подозрение, что ключ попал к посторонним (например, адрес вебхука с ключом переслали в открытый чат).

После смены ключа обязательно нажмите «Обновить хуки»

Ключ входит в адрес вебхука. Старые вебхуки в МойСклад продолжают присылать уведомления со старым ключом, и модуль их отклоняет — импорт молча останавливается. В таблице ниже такие вебхуки помечаются как Ошибка URL. Лечится одной кнопкой Обновить хуки.

Вебхуки в аккаунте МойСклад​

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

Итоговый URL для вебхуков — адрес, который модуль прописывает в каждый вебхук: адрес обработчика, секретный ключ (на странице скрыт точками) и метка модуля. По этой метке модуль отличает свои вебхуки от чужих — вебхуки других интеграций в вашем аккаунте он не трогает.

Таблица вебхуков​

Всего модулю нужно 8 вебхуков — по два на каждую сущность:

Сущность МойСкладСозданиеОбновление
Заказы покупателейдада
Заказы поставщикамдада
Контрагентыдада
Входящие платежидада

Вебхуки на удаление модуль не создаёт: удаления из МойСклад он не переносит.

Значки в ячейках (расшифровка — под таблицей и во всплывающей подсказке при наведении):

ЗначокНазваниеЧто значит
Зелёная галочкаУстановленВебхук создан и работает
Серый кружокНе установленВебхука модуля нет
Красный восклицательный знакОшибка URLВебхук есть, но ведёт на старый адрес или со старым ключом — нужно обновить
Жёлтый треугольникНе активенВебхук есть, но выключен в МойСклад

Над таблицей — счётчик Установлено: X / 8. В нём учитываются только рабочие вебхуки — те, что есть в МойСклад, включены и ведут на актуальный адрес с актуальным ключом. Вебхуки с ошибкой адреса и выключенные в счётчик не входят и показываются рядом отдельной цифрой С ошибкой: K. Цель — 8 из 8 и 8 зелёных галочек. Карточка Вебхуки МС на Дашборде считает тот же набор, поэтому цифры там и здесь совпадают.

Кнопки​

КнопкаЧто делает
Обновить списокЗаново читает вебхуки из МойСклад и перерисовывает таблицу. Ничего не меняет
Обновить хукиСоздаёт недостающие вебхуки, а у вебхуков с ошибкой адреса или выключенных исправляет адрес и включает их. Вебхуки модуля на удаление, оставшиеся от прежних версий, снимает. По итогам — сообщение «Вебхуки обновлены: N создано, M обновлено» (если снимались старые хуки — ещё «K лишних удалено») или «Все вебхуки уже актуальны»
Удалить всеПосле подтверждения в окне приложения удаляет из МойСклад все вебхуки модуля, включая старые вебхуки на удаление (чужие не трогает). Сообщение «Удалено N вебхуков модуля»

Когда нажимать «Обновить хуки»:

  • при первой настройке — после того как обработчик стал зелёным;
  • после смены адреса обработчика или секретного ключа;
  • если в таблице есть красные или жёлтые значки;
  • после обновления модуля, если в таблице появились серые кружки (новые сущности для обмена).

Когда нажимать «Удалить все»: при отключении интеграции или переносе портала на другой адрес, чтобы МойСклад не слал уведомления в никуда. После удаления изменения из МойСклад перестанут доходить до Битрикс24.

Удаление в МойСклад не удаляет ничего в Битрикс24

Вебхуки на удаление модуль не регистрирует: удалённый в МойСклад заказ или контрагент не удаляет сделку, контакт или компанию в CRM. Это защита данных, а не сбой.

Порядок первой настройки​

  1. Проверьте URL для вебхуков: адрес и протокол должны совпадать с тем, как сайт открывается из интернета. При необходимости — Изменить, поправить, Готово.
  2. Нажмите Установить файл. Статусы Файл установлен и Доступ разрешён должны стать зелёными.
  3. Нажмите Проверить доступность — нужен статус Доступен извне.
  4. Секретный ключ уже сгенерирован — ничего делать не нужно.
  5. Нажмите Обновить хуки и убедитесь, что счётчик показывает Установлено: 8 / 8, а в таблице 8 зелёных галочек.

Проверка в деле: поменяйте комментарий у заказа покупателя в МойСклад, уже связанного со сделкой, — через несколько секунд в очереди обмена появится задача на загрузку.

Не забудьте, что сам обмен документом и контрагентами включается на их страницах: Заказ покупателя, Заказ поставщику, Оплаты, Контрагенты. Вебхуки лишь доставляют уведомления.