Импорт из МойСклад в Битрикс24 — вебхуки, очередь, сделка
Импорт — это перенос из МойСклад в Битрикс24. Его запускает сам МойСклад: при каждом изменении документа он отправляет на портал короткое уведомление — вебхук. Модуль получает его, ставит задачу в очередь и в фоне обновляет CRM.
Кладовщик меняет статус заказа покупателя на «Отгружен». МойСклад отправляет вебхук, модуль находит связанную сделку и переводит её на стадию, сопоставленную статусу «Отгружен». Менеджер видит это в CRM через несколько секунд, ничего не обновляя вручную.
Какие вебхуки нужны
Вебхуки создаются в МойСклад одной кнопкой на странице Общие параметры → Вебхуки МойСклад — всего 8 штук:
| Сущность МойСклад | Создание | Обновление |
|---|---|---|
| Заказы покупателей | да | да |
| Заказы поставщикам | да | да |
| Контрагенты | да | да |
| Входящие платежи | да | да |
Вебхуки на удаление модуль намеренно не устанавливает: удалённый в МойСклад заказ или контрагент остаётся в Битрикс24. Если такие вебхуки остались от прежней версии модуля, кнопка Обновить хуки их снимет. Подробнее о самой странице — Вебхуки МойСклад.
Если вебхуки не установлены или «покраснели» (например, после смены адреса сайта или секретного ключа), обмен из МойСклад в Битрикс24 молча останавливается: экспорт продолжит работать, а обратные изменения перестанут приходить. Проверяйте страницу вебхуков после любых изменений подключения.
Путь заказа до сделки
По шагам:
- Приём. Модуль проверяет секретный ключ в адресе вебхука. Чужой запрос без ключа отклоняется и попадает в журнал событий портала как попытка доступа.
- Отсев повторов. Если МойСклад прислал одно и то же уведомление дважды за несколько секунд, второе игнорируется.
- Удаление — мимо. Вебхуки на удаление модуль не устанавливает; если такое уведомление всё же придёт (например, от вебхука, оставшегося от прежней версии модуля), оно записывается в лог и дальше не идёт.
- Задача. В очередь ставится задача со ссылкой на документ. Если такая задача уже ждёт, новая не создаётся.
- Включён ли обмен. Заказ покупателя и заказ поставщику загружаются, только если обмен этим документом включён. Контрагенты сами по себе — только при включённом независимом обмене контрагентами.
- Проверки и фильтр. Как и при экспорте, нужен полный набор обязательных настроек. Если заданы условия на вкладке Фильтры для документов МойСклад, документ должен подойти под все. Например, «только заказы определённой организации» или «от определённой даты».
- Поиск и запись. Модуль ищет пару в Битрикс24 по полям поиска (см. Как модуль находит пару). Нашёл — обновляет только изменившиеся поля и стадию. Не нашёл — создаёт новую сделку и сам проставляет в ней тип документа.
- Клиент. Контрагент заказа находится или создаётся в Битрикс24 как контакт или компания — даже при выключенном независимом обмене контрагентами. Если МойСклад временно недоступен и клиента получить не удалось, сделка без клиента не создаётся: задача уйдёт на повтор.
- Товары. При включённом обмене корзиной в сторону Битрикс24 позиции заказа записываются в товарные строки сделки — уже после того, как сделка сохранена. Отсутствующий в каталоге товар модуль создаёт сам.
Контрагенты
Вебхук по контрагенту обрабатывается при включённой «Включить независимый обмен контрагентами». Станет ли контрагент контактом или компанией, зависит от его типа в МойСклад (юрлицо, ИП, физлицо) и от того, к какой сущности CRM этот тип привязан в настройках. Если обмен контактами или компаниями выключен соответствующей настройкой, такой контрагент пропускается. Подробнее — Контрагенты и Типы контрагентов.
Входящие платежи
Входящий платёж становится оплатой в сделке, когда:
- включён «Включить контур оплат», а «Направление обмена оплатами» допускает загрузку в Битрикс24;
- включён обмен заказом покупателя, и платёж относится к заказу, который уже связан со сделкой;
- выбрана «Платёжная система по умолчанию» — без неё импорт оплат не проходит проверку готовности.
Если включена «Импортировать только проведённые платежи», непроведённые платежи пропускаются. При включённой «Связывать статус "Оплачено" и проведение» проведённый платёж отмечает оплату в Битрикс24 как оплаченную — со всеми штатными последствиями: датой оплаты, записью в таймлайне и роботами. Снятие проведения в МойСклад уже оплаченную оплату не откатывает. Подробнее — Оплаты.
Как быстро
Вебхук приходит в момент изменения в МойСклад, задача запускается в фоне сразу — обычно сделка обновляется за несколько секунд. При шторме вебхуков (массовое изменение статусов, загрузка заказов) задачи разбирает агент по расписанию. См. Очередь.