Механизмы запуска синхронизации и их настройки
Функционал модуля синхронизации охватывает различные этапы бизнес-процессов, связанных с заказами и каталогом товаров.
Для запуска процессов синхронизации (загрузки, выгрузки и передачи данных) используются различные триггеры как на стороне модуля, так и на стороне МойСклад.
В модуле используется 3 типа основных инициаторов (триггеров) запуска процессов синхронизации:
1. Вебхуки МойСклад
Срабатывают при создании или изменении сущностей в МойСклад. К таким сущностям относятся элементы каталога (товары, модификации, комплекты), а также данные, связанные с заказами.
При срабатывании вебхука запрос отправляется на сайт, где обрабатывается модулем и запускает соответствующие процессы синхронизации.
При первой установке модуля вебхуки не добавляются в МойСклад автоматически — их необходимо создать вручную.
Для этого после авторизации перейдите в раздел «Вебхуки и агенты». В данном разделе доступны несколько вкладок, две из которых предназначены для настройки вебхуков, необходимых для корректной работы модуля:
При добавлении вебхука в МойСклад указывается URL (ссылка), на который будет отправляться запрос. Для такой ссылки обязательно должен быть указан домен.
По умолчанию домен определяется на основании общих настроек 1С-Битрикс, однако для корректной работы рекомендуется явно указать его в поле «Основной домен».
Рекомендуется заполнять это поле во всех случаях при настройке вебхуков:
Типы обработки вебхуков
В модуле предусмотрено два режима обработки вебхуков. Режим можно указать в отдельном выпадающем списке в разделе настроек вебхуков:
1. Обработка без очереди.
В данном режиме вебхуки обрабатываются сразу при поступлении на сайт. Это наиболее быстрый способ, при котором изменения в МойСклад практически мгновенно отражаются на сайте.
Для настройки доступны дополнительные параметры:
"Количество одновременно обрабатываемых вебхуков":
"Синхронизировать множественные вебхуки" — используется при массовом редактировании данных в МойСклад:
Однако данный режим имеет ограничения:
- при высокой нагрузке и большом количестве изменений возможны ошибки обработки;
- часть вебхуков может быть пропущена и не обработана;
- использование режима с включённой обработкой множественных вебхуков (вебхук полученный после группового редактирования элементов в МойСклад) на текущий момент не рекомендуется.
2. Обработка на очередях
В этом режиме все входящие вебхуки сначала сохраняются в базе данных, после чего обрабатываются последовательно.
Обработка выполняется:
- через агенты 1С-Битрикс;
- либо через cron (с использованием отдельного скрипта).
Дополнительно можно настроить количество вебхуков, обрабатываемых за один запуск:
Преимущества данного режима:
- гарантированная обработка всех вебхуков;
- отсутствие потери данных при высокой нагрузке;
- стабильная работа при большом объёме изменений.
Несмотря на то, что обработка происходит не мгновенно, данный режим является рекомендуемым для использования.
Как создать в МойСклад необходимые вебхуки
Для добавления всех необходимых вебхуков в МойСклад перейдите в раздел «Вебхуки и агенты», на вкладку «Основные настройки», и нажмите кнопку «Проверить/восстановить необходимые вебхуки».
После завершения процесса в блоках «Вебхуки заказов и контрагентов» и «Вебхуки товаров, оприходований и разделов» отобразится список всех добавленных вебхуков.
Возможные проблемы с вебхуками при смене домена
Вебхук - это механизм отправки уведомлений при наступлении в системе события, на которое подписано клиентское приложение. Под событием понимается изменение состояния системы.
Например, событиями являются: <I>создание нового товара, изменение полей у контрагента, удаление заказа покупателя</I>.
Уведомлением будет запрос метода POST, который будет содержать следующую информацию о наступившем событии: его тип и ссылку на изменившийся объект. Например, при изменении наименования товара, будет отправлено уведомление, которое будет содержать ссылку на созданный товар.
Наш модуль использует вебхуки для мгновенной передачи данных при синхронизации товаров и заказов. Сделано это для того что бы не ждать синхронизацию на крон, а постоянно поддерживать актуальную информацию о товарах и заказах на сайте и в МойСклад.
Настройка вебхуков расположена на странице обязательных настроек модуля обмена с МС.
Вебхуки прописаны в модуле для каждого действия, которое может делать модуль с их помощью. Если возникают проблемы с синхронизацией по вебхукам (иногда бывает, когда на сайте есть еще интеграции, которые используют вебхуки) или же Вы сменили домен Вашего сайта - нужно вручную перенастроить вебхуки.
ВАЖНО! Ознакомьтесь с инструкцией МойСклад
На каждую сущность должно быть не более 5 вебхуков. Например, вебхук customerorder должен встречаться не более 5 раз.
Удаление вебхуков
Возможные блокировки вебхуков со стороны МоегоСклада
2. События в 1С-Битрикс
Возникают при создании или изменении сущностей на сайте (например, заказов). При срабатывании таких событий запускаются процессы выгрузки данных в МойСклад.
3. Циклические процессы (планировщик)
Отдельные методы синхронизации выполняются по расписанию.
Такие процессы могут запускаться:
- через агенты 1С-Битрикс;
- через cron (с использованием отдельного скрипта).
Циклический запуск используется для выполнения регулярной синхронизации и обработки накопленных данных.
Основные функции модуля работают через события (вебхуки). Но для полноценной работы модуля нужно перевести выполнение агентов на cron. А именно крон нужно настроить обязательно для:
- одноразовой и циклической синхронизации товаров и остатков;
- синхронизации заказов на агентах (если нужно, они изначально настроены на вебхуки);
- синхронизации скидок. Выполнение агентов можно настроить через постановку агентов на CronTab так и через выполнение агентов на крон.
Для выполнения агентов на крон нужно поставить обязательно файл
<адрес сайта>/bitrix/services/design2u.syncms/cron_aprix.php в планировщике на выполнение каждую минуту.
Второй способ: Для постановки выполнения агентов на CronTab нужно сделать настройки следуя шагам инструкции от Битрикс.
Видео: 1С-Битрикс. Ставим выполнение агентов на крон (CronTab)







