Передаем заказ из RetailCRM в Bitrix24


Задача

Когда заказ меняет статус на стороне RetailCRM — сменить статус заказа в Битрикс24. На стороне Bitrix24 — будем создавать или обновлять существующую сделку, прикреплять товары и контрагента

Подключение сервисов в MoreKIT

Первым делом — создадим ключ доступа к API в RetailCrm

Для того, чтобы создать API ключ на стороне RetailCRM, для этого нужно перейти в раздел Настройки —> Интеграции

Здесь потребуется создать API ключ, выдать ему необходимые разрешения и выдать доступ либо к конкретному магазину, либо ко всем магазинам

После завершения настроен API ключ покажется единоразово, скопируйте его

Теперь подключим RetailCrm к нашему проекту в MoreKIT

Для добавления RetailCRM необходимо добавить сервис. Нажимаем на кнопку Добавить сервис и ищем в списке RetailCRM

Добавление сервиса RetailCRM

Здесь потребуется ввести домен и API ключ

Домен вводится в формате <домен>.retailcrm.ru

Найти домен можно в ссылке адресной строки браузера, находясь в RetailCRM

После ввода данных — нажимаем Добавить

Подключение Битрикс24

Перед добавлением сервиса Битрикс24 в MoreKit необходимо установить приложение наше приложение в маркетплейсе. Для установки приложения требуется подписка на маркетплейс Битрикс24

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

Введите ссылку в формате https://мой-домен.bitrix24.ru. После этого произойдет редирект на страницу с вашим битриксом, подтвердите авторизацию

Если все правильно — сервис появится в списке сервисов и у него будет статус Готово

Создание процессов в MoreKIT

В MoreKIT будет работать два процесса:

  • Создание заказа — при создании нового заказа на стороне RetailCRM будет создаваться сделка, искаться или создаваться новый контакт и прикрепляться позиции заказа
  • Изменение заказа — при смене статуса заказа будем искать существующую сделку на стороне Битрикс24 и менять ее статус

В MoreKIT нажимаем на Создать процесс —> тип процесса выбираем Другое —> нажимаем Добавить

В результате у нас получится два процесса (на создание и на изменение заказа)

Настройка триггеров автоматизации в RetailCRM

Следующим шагом — необходимо настроить отправку данных из RetailCRM в MoreKIT. Для этого нам понадобятся триггеры из раздела Автоматизация

Для этого — нужно перейти в раздел Автоматизация —> Триггеры, добавим новый триггер

Создание триггера создания заказа

Создаем триггер на событие Изменение заказа, в условиях выбираем Новый заказ. Данный триггер будет срабатывать только на новый заказ. Действие выбираем Выполнить HTTP-запрос

В настройках действия нам необходимо прописать данные, которые будут отправляться в MoreKIT. Зададим здесь ID заказа и ID покупателя

В параметрах запроса — выберем Указать тело запроса самостоятельно

Тело запроса будет следующим:

{
  "order_id": {{order.id}},
  "customer_id": {{order.customer.id}},
  "customer_phone": "{{order.customer.phone}}",
  "customer_any_phone": "{{order.customer.anyPhone}}",
  "customer_first_name": "{{order.customer.firstName}}",
  "customer_last_name": "{{order.customer.lastName}}",
  "customer_patronymic": "{{order.customer.patronymic}}",
  "customer_name": "{{order.customer.nickName}}",
  "customer_email": "{{order.customer.email}}",
  "customer_any_email": "{{order.customer.anyEmail}}",
  "order_number": "{{order.number}}",
  "order_status": "{{order.status}}",
  "order_status_name": "{{order.status.name}}",
  "order_status_code": "{{order.status.code}}",
  "order_status_group": "{{order.status.groupCode}}",
  "order_sum": {{order.totalSumm}},
  "order_products": [
    {% for item in order.availableOrderProducts %}
    {
      "id": {{item.id}},
      "offer_id": {{item.offer.id}},
      "name": "{{item.offer.name}}",
      "article": "{{item.offer.article}}",
      "quantity": {{item.quantity}},
      "image":"{{item.offer.imageUrl}}",
      "price": {{item.price}},
      "summ": {{item.summ}},
      "status": "{{item.status}}"
    }{% if not loop.last %},{% endif %}
    {% endfor %}
  ]
}

Подробнее о добавляемых параметрах в триггер можно почитать в данном разделе документации RetailCRM

Создание триггера изменения заказа

Триггер на изменение заказа настраиваем по аналогии, в условиях указываем Изменение статуса заказа, отмечаем: с Любой на Любой

Изменение статуса заказа в RetailCRM

В настройках HTTP-запроса указываем ссылку на процесс изменения заказа, параметры указываем те же, что и в триггере создания заказа

Проверка доставки данных

Далее — нужно получить данные в MoreKIT и убедиться, что они приходят. Создадим заказ и сдвинем его на другой статус, должно будет придти два события, на процесс создания заказа и на процесс изменения заказа

Создадим новый заказ в RetailCRM

В схеме в MoreKIT Создание заказа переходим во вкладку События, проверяем, есть событие или нет

События процесса создания заказа

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

Смена статуса заказа

Проверяем событие и видим, что данные пришли

Если события пришли — можно начинать настройку схемы передачи в Битрикс24

Битрикс24: Создание заказа

Схема процесса создания заказа будет выглядеть следующим образом:

И часть схемы внутри цикла для обработки товаров

Описание блоков схемы

#4 Найти контакты — ищем контакт по номеру телефона в Битрикс24

Найти контакт

#5 Найти контакты — ищем контакт по Email в Битрикс24

Создать контакт

#6 Создать контакт — создаем новый контакт, если он не был найден в предыдущих блоках, заполняем email, телефон и имя

#7 Создать сделку — создаёт новую сделку в Bitrix24 в воронке RetailCRM, на этапе «Новая».
Заполняет следующие поля:
Название: «Новый заказ с retailcrm №{{input.order_number}}«;
Контакт: подставляется ID найденного или созданного контакта — сработает только один из них, остальные будут пустыми) ;
Бюджет: сумма заказа {{input.order_sum}} ;
Пользовательское поле ID Retail: номер заказа Order_{{input.order_number}};

#9 Найти товары — ищем товар в Битрикс24 по внешнему коду, в качестве значения подставляем артикул товара (товары между системами должны быть связаны)

#11 Добавить товар в торговый каталог — создаем новый товар, заполняем наименование и внешний код для связи. Информационный блок торгового каталога можно найти в ссылке в браузере, если перейти в товар внутри Битрикс24

#10 Добавить товар в сделку — прикрепляет найденный или созданный товар в сделку, заполняя цену и количество товара

Битрикс24: изменение заказа

Схема изменения заказа выглядит следующим образом

Данная схема сопоставляет название статусов из Retail с ID статуса в Битрикс24. Для того, чтобы узнать нужный статус — выберите его в блоке MoreKIT и переведите кит в системное представление (кнопка около миникарты)

Системное представление кита

Описание блоков схемы

#1 Добавить в словарь — данный блок создает словарь:

{
      "Статусы": {
      "Новая":"C39:NEW",
      "В работе":"C39:EXECUTING",
      "Успех":"C39:WON",
      "Отменен":"C39:LOSE"
        }
}

Данный словарь нужен для сопоставления названия статуса из RetailCRM со статусом Битрикс24

#3 Достать из словаря — данный блок вытаскивает ID статуса в Битрикс24 по названию статуса в RetailCRM

#4 Найти сделки — ищем сделку по кастомному полю ID Retail, подставляя в значение Order_{{order_number}}

#5 Редактировать сделку — меняем стадию сделки на актуальную

Тестирование

Теперь проверим, как это работает. Создадим новый заказ в RetailCRM и проверим, создастся ли сделка в Битрикс24

Создадим новый заказ и проверим событие в MoreKIT

В битрикс видим, что создалась новая сделка на нужном нам статусе

В сделке видим, что данные есть. Контакт прикрепился, заполнились поля, прописанные в блоке создания сделки

Проверим товары

Товары в сделке

Товары также прикрепились, все успешно. Теперь изменим статус заказа на стороне RetailCRM

Меняем статус

Видим, что в Битрикс сделка также поменяла статус

Также видим успешное событие на стороне MoreKIT

Изменение заказа

Подведем итоги

В данном кейсе разобрали, как можно создать сделку в Битрикс24 по созданному заказу в RetailCRM и динамически менять статус сделки по изменению статуса заказа в RetailCRM. К созданной сделке прикрепили позиции заказа из Retail, прикрепили контакт и наладили связь с помощью кастомных полей