Передача заказа через очередь
Заказы Unimart24 в Битрикс24
Сохраненный заказ Unimart24 передается в Битрикс24 отдельным обработчиком. Я разработал очередь, поиск контакта и создание лида с составом заказа.
Моя рольРазработка очереди и обработчика на стороне магазина на 1С-Битрикс. Для поиска контактов и создания лидов использую API Битрикс24.
Как устроен проект ↓- Проект
- Магазин строительных материалов Unimart24
- Источник
- Заказ, сохраненный на сайте
- Получатель
- Лид и контакт в Битрикс24
- Моя часть
- Очередь и передача на стороне сайта
Сохранить заказ, затем обратиться к CRM
В магазине строительных материалов сотруднику нужны товары, количество и упаковки, которые выбрал покупатель. Я связал сохраненный заказ Unimart24 с созданием лида в Битрикс24 через очередь.
При сохранении нового заказа сайт ставит задачу на передачу. Она хранит идентификатор заказа, состояние и число неудачных попыток. Обращения к API выполняет отдельный обработчик: он берет задачи из очереди и загружает соответствующие заказы с сайта.
Перед добавлением задачи сайт проверяет, есть ли в очереди запись с тем же идентификатором заказа.
Найти покупателя и сохранить источник обращения
Обработчик ищет контакт в Битрикс24 по телефону, затем по электронной почте. Если подходящий контакт не найден, создает новый из данных заказа. Идентификатор контакта передает при создании лида.
В лид добавляются сохраненные в заказе UTM-метки и идентификатор посетителя Метрики, если сайт записал его при постановке задачи.
Какие сведения сайт знает сам и что нужно передать получателю заявки ↗
Составить описание товаров для сотрудника
Из корзины сохраненного заказа обработчик берет товары, количество и цены. Название упаковки, единицу и коэффициент пересчета получает из текущих данных каталога по идентификатору товарного предложения. Эти сведения собираются в описание, которое передается текстом в отдельное поле лида. Отдельные товарные позиции в лид обработчик не добавляет.
По каждой позиции в описании есть название, код из 1С, количество, единица, упаковка, цена за упаковку и итоговая сумма. Если применена скидка, она тоже включается в описание. К составу добавляются комментарий покупателя, способ оплаты и сведения о доставке.
Как карточка и корзина сохраняют количество и выбранный поддон ↗
Сохранить результат и разобрать ошибку
Если Битрикс24 возвращает идентификатор созданного лида, обработчик сохраняет его в задаче и отмечает передачу завершенной. При ошибке записывает ее текст и увеличивает число неудачных попыток. После 5 неудач автоматические повторы прекращаются, задача получает состояние ошибки.
При повторной обработке код снова вызывает создание лида. Если CRM успела создать лид, а сайт не получил ответ, возможен дубль. Проверка записи очереди по номеру заказа этого не исключает. Для разбора нужно сопоставить заказ, состояние задачи и существующие лиды в Битрикс24.
Что проверить при передаче заказов через очередь и перед повторной отправкой ↗
Что получилось
Я отделил передачу в Битрикс24 от сохранения заказа на сайте и связал ее с очередью. В задаче остаются состояние, число неудачных попыток, последняя ошибка или идентификатор созданного лида.

