Для интеграции Сдэк Фулфилмент и RetailCRM потребуется следующее:
- RetailCRM с настроенным модулем интеграции СДЭК
- Хостинг с поддержкой языка PHP
- Доступ к личному кабинету Сдэк Фулфилмент
Описание работы интеграции
- Срабатывает триггер с определенным условием (подробнее про настройку триггера написано ниже)
- Триггер отправляет запрос к модулю, тот создаёт заказ в ЛК Фулфилмент
- Заказ в RetailCRM переходит в другой статус (в зависимости от результаты работы модуля). Про настройку статусов написано ниже
Настройка товаров
Для сопоставления товаров используется поле Артикул. Убедитесь, что артикулы в системах совпадают.
Создание наборов
Если вы одной карточкой продаёте целый набор товаров (например, набор из 2 журналов), то набору следует задать артикул "набор 123,456", где 123 и 456 - артикулы товаров, входящих в набор (их может быть больше двух, сколько угодно через запятую). Набор будет автоматически разбит на отдельные товары и в ФФ в заказе будут находиться все товары, входящие в набор.
Настройка модуля интеграции
Перенесите на ваш хостинг файлы интеграции, доступные по ссылке (для скачивания нажмите на зелёную кнопку Code, затем Download ZIP). Подробнее о настройке хостинга можно прочитать в этой статье
Откройте файл order.php. В третьей строке вместо значения e804b0dadc8981c107cc70502891327a напишите любой длинный код и запомните его. Сгенерировать код можно здесь.
Откройте файл base.php. Заполните в нём следующие строки (значения нужно писать внутри кавычек):
Строка 2: retail_api_key - ключ API RetailCRM с правами получения и редактирования заказов. Найти и создать можно в RetailCRM в разделе Настройки > Интеграция > Ключи доступа к API
Строки 3 и 4: cdek_key_1 и cdek_key_2 - ключи СДЭК (найти можно в ЛК СДЭК в разделе "Интеграция")
Строки 5 и 6: oa_login - логин от ЛК ФФ, oa_password - пароль от ЛК ФФ. Если у вас есть ключи API от ЛК ФФ, можно использовать их вместо логина и пароля
Так же смотрите: Получение логина и пароля от ЛК ФФ
Строка 7: oa_shop - id магазина ФФ (ЛК > Настройки > Виртуальные магазины) (нужно заменить 0 на ваш номер)
Строки 8-10: oa_warehouses - соответствия склада RetailCRM и склада и отправителя из ЛК ФФ. Можно добавлять столько строк, сколько у вас складов. Перед стрелкой указывается символьный код склада в кавычках. После стрелки до запятой указывается id склада, после запятой id отправителя (уже без кавычек).
Схема заполнения:
Строка 12: retail_base - нужно изменить, если у вас кастомный поддомен офиса RetailCRM
Строка 15: status_success - символьный код статуса в RetailCRM, в который перейдёт заказ после создания в ФФ. Статусы, группы и переходы можно найти в Настройки > Статусы
Строка 16: status_failed - символьный код статуса в RetailCRM, в который перейдёт заказ после ошибки создания в ФФ (в комментарии к статусу будет указана причина ошибки)
Строка 17: tracking_number_field - символьный код пользовательского поля, в котором появится трек-номер после отправки заказа (при настроенной синхронизации статусов)
Строки 18 - 28: statuses - соответствие статусов в ФФ и статусов RetailCRM (если используется периодическая синхронизация статусов). Слева в кавычках находится статус из ФФ, справа - соответствующий ему тариф в RetailCRM. Список статусов ФФ можно найти в этой статье. Более подробную информацию по заполнению аналогичной структуры данных можно найти в этой статье в разделе "Настройка модуля интеграции" -> "Строки 16-19"
Пример заполненного файла base.php (до function send_request):
<?php $retail_api_key = '1234'; $cdek_key1 = '5678'; $cdek_key2 = '9012'; $oa_login = 'test@ff.cdek.ru'; $oa_password = 'myfulfilmentpassword'; $oa_shop = 93212; $oa_warehouses = [ 'sklad-1' => [5432, 20321], ]; $retail_base = 'https://retail.retailcrm.ru/api/v5/'; $cdek_base = 'https://api.cdek.ru/v2/'; $oa_base = 'https://cdek.orderadmin.ru/api/'; $status_success = 'ff-created'; $status_failed = 'ff-not-created'; $tracking_number_field = 'ff_tracking_number'; $statuses = [ 'pending_error' => 'delyvery-did-not-suit', 'pending' => 'no-product', 'partly_reserved' => 'no-product', 'assembling' => 'assembling', 'assembled' => 'assembling-complete', 'delivery' => 'send-to-delivery', 'processing' => 'delivering', 'complete' => 'complete', 'cancel' => 'cancel-other' ];
Настройка периодической синхронизации статусов заказов и получения трек-номеров отправленных заказов
В данной инструкции описывается хостинг reg.ru и панель управления хостингом ISP Manager. Если вы пользуетесь услугами другой компании или ваш хостер использует другую панель управление - обратитесь к документации на сайте вашего хостинг-провайдера.
В панели управления откройте "Планировщик CRON". Создайте новое задание.
В поле "Команда" укажите: /opt/php/7.4/bin/php www/*путь к скрипту check_statuses.php*. Например - /opt/php/7.4/bin/php www/example.com/check_statuses.php
Настройте расписание. Вполне оптимально указать тип "Базовый" и установить ежечасное выполнение задачи.
Настройка триггеров в RetailCRM
В RetailCRM в разделе Настройки > Триггеры создайте триггер, который будет отправлять запрос на создание заказа в ФФ. Событие и условие настраивается в соответствии с вашими нуждами, пример на скриншоте ниже
Установите действие триггера - HTTP-запрос типа POST на адрес, по которому будет доступен загруженный на хостинг скрипт order.php. Передавать параметры - в теле запроса.
Поля:
- code со значением, которое вы записали (строка 2 файла order.php)
- action со значением create
- orderId со значением {{ order.id }}
Пример настроенного действия:
Также вы можете настроить другой триггер, у которого аналогично настраивается действие, только у параметра action значение cancel. При срабатывании этого триггера будет отменяться заказ в ФФ
Статья помогла?
Отлично!
Спасибо за ваш отзыв
Извините, что не удалось помочь!
Спасибо за ваш отзыв
Комментарий отправлен
Мы ценим вашу помощь и постараемся исправить статью