Сергей Сорокин Обсудить задачу
← Все работы

Передача заказа через очередь

Заказы Unimart24 в Битрикс24

Сохраненный заказ Unimart24 передается в Битрикс24 отдельным обработчиком. Я разработал очередь, поиск контакта и создание лида с составом заказа.

Моя рольРазработка очереди и обработчика на стороне магазина на 1С-Битрикс. Для поиска контактов и создания лидов использую API Битрикс24.

Как устроен проект ↓
Схема передачи: заказ на сайте, задача в очереди, контакт и лид в Битрикс24, сохранение результата или ошибки
Сайт сохраняет заказ и задачу передачи. Обработчик обращается к Битрикс24 отдельно и записывает результат в задаче.
Проект
Магазин строительных материалов Unimart24
Источник
Заказ, сохраненный на сайте
Получатель
Лид и контакт в Битрикс24
Моя часть
Очередь и передача на стороне сайта

Сохранить заказ, затем обратиться к CRM

В магазине строительных материалов сотруднику нужны товары, количество и упаковки, которые выбрал покупатель. Я связал сохраненный заказ Unimart24 с созданием лида в Битрикс24 через очередь.

При сохранении нового заказа сайт ставит задачу на передачу. Она хранит идентификатор заказа, состояние и число неудачных попыток. Обращения к API выполняет отдельный обработчик: он берет задачи из очереди и загружает соответствующие заказы с сайта.

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

Моя роль и другие доработки магазина Unimart24 ↗

Найти покупателя и сохранить источник обращения

Обработчик ищет контакт в Битрикс24 по телефону, затем по электронной почте. Если подходящий контакт не найден, создает новый из данных заказа. Идентификатор контакта передает при создании лида.

В лид добавляются сохраненные в заказе UTM-метки и идентификатор посетителя Метрики, если сайт записал его при постановке задачи.

Какие сведения сайт знает сам и что нужно передать получателю заявки ↗

Составить описание товаров для сотрудника

Из корзины сохраненного заказа обработчик берет товары, количество и цены. Название упаковки, единицу и коэффициент пересчета получает из текущих данных каталога по идентификатору товарного предложения. Эти сведения собираются в описание, которое передается текстом в отдельное поле лида. Отдельные товарные позиции в лид обработчик не добавляет.

По каждой позиции в описании есть название, код из 1С, количество, единица, упаковка, цена за упаковку и итоговая сумма. Если применена скидка, она тоже включается в описание. К составу добавляются комментарий покупателя, способ оплаты и сведения о доставке.

Как карточка и корзина сохраняют количество и выбранный поддон ↗

Сохранить результат и разобрать ошибку

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

При повторной обработке код снова вызывает создание лида. Если CRM успела создать лид, а сайт не получил ответ, возможен дубль. Проверка записи очереди по номеру заказа этого не исключает. Для разбора нужно сопоставить заказ, состояние задачи и существующие лиды в Битрикс24.

Что проверить при передаче заказов через очередь и перед повторной отправкой ↗

Что получилось

Я отделил передачу в Битрикс24 от сохранения заказа на сайте и связал ее с очередью. В задаче остаются состояние, число неудачных попыток, последняя ошибка или идентификатор созданного лида.

Посмотреть магазин Unimart24 ↗

Доработка сайта и обмена с CRM ↗

Начнем с вашей задачи

Расскажите,
что нужно сделать.

Перейти к форме

Если сайт уже работает, пришлите ссылку и опишите задачу. Для нового проекта расскажите, кто будет им пользоваться и что он должен делать.

Сергей Сорокин

Сергей СорокинВы напишете лично мне.

Удобнее связаться напрямую?

Адрес, на который можно ответить.
От 10 до 5000 символов. Ссылку на сайт можно добавить здесь.