RetailCRM
Содержание
Введение
- Триггер
- Хранимая процедура специального типа, автоматически выполняющаяся при наступлении заданного события.
Пример: каждый месяц 1-го числа списывается абонентская плата за интернет. Триггер «1-ый день месяца» — это событие, при наступлении которого срабатывает процедура «списание абонентской платы».
Для RetailCRM предусмотрены следующие триггеры:
- «Отправка заказа в КС2008» — при наступлении события «Смена статуса заказа на "Отправлен в КС2008"». При установке статуса, означающего, что заказ отправлен в курьерскую службу, срабатывает триггер, и заказ передается в MeaSoft;
- «Отмена заказа в КС2008» — при наступлении события «Смена типа доставки у заказа». При изменении типа доставки с доставки MeaSoft на доставку, например, Почтой России, заказ в MeaSoft отменяется, если он туда передан и имеет статус «Новый» или «Ожидает синхронизации»;
- «Изменения заказа в КС2008» — при наступлении события «Изменение заказа в RetailCRM». При изменении заказа в RetailCRM новые данные отправляются в MeSoft, если заказ передан и имеет статус «Новый» или «Ожидает синхронизации».
Передача заказа при смене статуса
Чтобы настроить триггер:
- Cоздайте пользовательский статус заказа, при установке которого заказ будет автоматически передаваться в курьерскую службу. Можно создать любое количество статусов.
- В RetailCRM выберите Администрирование > Статусы и нажмите на кнопку Добавить. Откроется окно «Новый статус»:
- Заполните поля формы. В поле Символьный код используйте только цифры и латинские буквы без пробелов. Запишите созданный символьный код, он понадобится на следующих шагах.
- Выберите Администрирование > Справочники > Типы доставок. Запишите символьные коды доставок, которые будут использоваться в триггере. В примере ниже используются коды outcity и incity.
- Откройте Администрирование > Коммуникации > Триггеры и нажмите на кнопку Добавить. Откроется окно «Новый триггер».
- Заполните поля:
- Название. Название триггера, например «Отправка заказа в MeaSoft».
- Событие. Выберите значение Изменение заказа.
- Условие применения триггера. Добавьте следующий скрипт:
order.getStatus().getCode() in ["SentMeaSoft"] and order.getDeliveryType().getCode() in ["outcity","incity"]
, где
-
SentMeaSoft
— символьный код статуса заказа. Если нужно указать 2 статуса, напишите их через запятую в виде:["SentMeaSoft","SentMeaSoft_2"]
вместо["SentMeaSoft"]
; -
outcity
,incity
— символьные коды типа доставки. Если нужно указать 1 тип доставки, напишите его в виде["incity"]
вместо["outcity","incity"]
.
- Нажмите Добавить действие > Выполнить HTTP-запрос. Появятся дополнительные поля настроек. Заполните их следующим образом:
- Адрес — https://home.courierexe.ru/reintegrations/requests/trigger/retailcrm;
- HTTP метод — POST;
- Передавать параметры — В теле запроса (urlencode);
- Нажмите на кнопку Добавить параметр 3 раза подряд и заполните появившиеся поля следующими данными:
- id — {{ order.getNumber() }};
- sum — {{ order.getIntegrationDeliveryData().getDeclaredSum() }};
- key — {{ order.getIntegrationDeliveryData().getExtraData().deliveryApiKey }}.
- Примечание. Переносы строк не допускаются.
- Нажмите Сохранить.
Триггер настроен.
Триггер “Отмена заказа при смене Типа доставки”
Примечание:
Запрос отмены предназначен для отмены тех заказов, по которым не было произведено изменений - статуса доставки, статуса корреспонденции, времени доставки - то есть заказов, которые ещё не находятся в работе. Возможность отмены заказа есть только у курьерских служб с тарифом "Премиум" и по-умолчанию она выключена, ее нужно отдельно включить: Личный кабинет курьерской службы#Дополнительные настройки.
При отмене заказа поле "Инфо о доставке" получает значение "Отменено заказчиком", поле "Дата доставки" - текущую дату, а "Вручил курьер" - системную запись "ОТМЕНА".
1.Для начала потребуется найти и сопоставить пары: символьный код Типа доставки - API ключ
2.Идем в настройки Типов доставок:
Настройки (1) -> Справочники (2) -> Типы доставок (3) (рис.1 Типы доставок).
3.Находим нужные нам доставки (или доставку).
На примере мы видим 2 Типа доставок:
Доставка межгород, символьный код outcity
Доставка по городу, символьный код incity
Запишем эти значения.
4.Создаем тестовые заказы на каждый Тип доставки.
У нас в примере 2 доставки, поэтому создадим 2 тестовых заказа, обязательно выбирая тариф.
Создав 2 заказа, обязательно выбирая тариф, мы видим следующее (рис.2 и рис.3 Два типа доставок город и межгород).
Таким образом получаем, что:
Доставка межгород, символьный код outcity, API ключ: WZHjxt5hsxxxxxxxxxxxxxxxxxxxxxxx
Доставка по городу, символьный код incity, API ключ: fVJ4dO1h8xxxxxxxxxxxxxxxxxxxxxxx
Пары символьный код Типа доставки - API ключ нужно записать. Текстовые наименования Типа доставки нам больше НЕ нужны.
5.Теперь, имея сопоставленные пары символьный код Типа доставки - API ключ, мы можем создать сам триггер:
Идем в настройки Триггеров: Настройки (1) -> Коммуникации (2) -> Триггеры (3) (рис.4 Настройки Триггеров)
6.Жмем “Добавить” (рис.5 Кнопка "Добавить")
В появившемся окне нужно заполнить и настроить несколько полей:
1.Поле "Название" (рис.6 Поле "Название")
2.Поле "Условие применения триггера" (рис.7 Поле "Условие применения триггера"):
Вбиваем скрипт:
changeSet.hasChangedField("delivery_type") and changeSet.getOldValue("delivery_type").getCode() in ["outcity","incity"]
Где:
- значения "outcity","incity" - это символьные коды Типа доставки.
- Если у вас будет 1 Тип доставки, то нужно вписать в таком виде: ["incity”] вместо ["outcity","incity"]
3.Далее нужно нажать Добавить действие (1) -> Выполнить HTTP-запрос (2) (рис.8 выбор меню "Добавить действие"), чтобы появились дополнительные поля настроек (рис.9 Дополнительные поля настроек).
4.В поле "Адрес" прописываем адрес: https://home.courierexe.ru/reintegrations/requests/cancel/retailcrm
5.В списке "HTTP метод" выбираем "POST".
6.В списке "Передавать параметры" выбираем "В теле запроса (urlencode)"
Получим пример заполнения, как на (рис.9 Дополнительные поля настроек).
7.Жмите кнопку "Добавить" параметр 2 раза.
8.Теперь снова жмите кнопку "Добавить параметр" столько раз, сколько у вас было сопоставленных пар символьный код Типа доставки - API ключ.
В нашем случае было 2 пары, поэтому мы опять нажмем 2 раза. Итого у нас будет 4 нажатия и мы увидим следующее (рис.10 Добавление параметров).
9.Теперь нам нужно эти поля заполнить следующими данными:
Параметр | Значение |
id | {{ order.getNumber() }}
|
code | {{ changeSet.getOldValue("delivery_type").getCode() }}
|
символьный код Типа доставки из 1-ой пары сопоставлений | API ключ из 1-ой пары сопоставлений |
символьный код Типа доставки из 2-ой пары сопоставлений | API ключ из 2-ой пары сопоставлений |
По итогу мы получим следующее (см. рис.11 Заполнили параметры данными).
Обратите внимание, что ВО ВСЕХ СЛУЧАЯХ ДАННЫЕ ЗАПИСАНЫ В ОДНОЙ СТРОКЕ, ПЕРЕНОСОВ СТРОК БЫТЬ НЕ ДОЛЖНО!
10.Последнее действие - нажатие кнопки "Сохранить". Настройка триггера завершена.
Триггер “Передача изменений заказа”
Примечание:
Возможность изменения заказа есть только у курьерских служб с тарифом "Премиум" и по-умолчанию она выключена, ее нужно отдельно включить: Личный кабинет курьерской службы#Дополнительные настройки.
1.Переходим в настройки Типов доставок: "Настройки" (1) -> "Справочники" (2) -> "Типы доставок" (3) (рис. 4).
2.Находим нужные нам доставки (или доставку).
На примере выше мы видим 2 Типа доставок:
"Доставка межгород", символьный код outcity
"Доставка по городу", символьный код incity
Запишем эти значения.
3.Теперь переходим в настройки Триггеров: "Настройки" (1) -> "Коммуникации" (2) -> "Триггеры" (3) (рис.7).
4.Кнопка "Добавить" (рис.8).
В появившемся окне нужно заполнить и настроить несколько полей:
1.Поле "Название" (рис.9).
2.В поле "Условие применения триггера" добавляем скрипт (рис.10):
changeSet.isUpdate() and
(
changeSet.hasChangedField("first_name") or
changeSet.hasChangedField("last_name") or
changeSet.hasChangedField("patronymic") or
changeSet.hasChangedField("phone") or
changeSet.hasChangedField("site") or
changeSet.hasChangedField("additional_phone") or
changeSet.hasChangedField("email") or
changeSet.hasChangedField("customer.phones") or
changeSet.hasChangedField("order_product") or
changeSet.hasChangedField("total_summ") or
changeSet.hasChangedField("delivery_date") or
changeSet.hasChangedField("delivery_time") or
changeSet.hasChangedField("payments") or
changeSet.hasChangedField("prepay_sum") or
changeSet.hasChangedField("weight") or
changeSet.hasChangedField("length") or
changeSet.hasChangedField("width") or
changeSet.hasChangedField("height") or
changeSet.hasChangedField("payments.id") or
changeSet.hasChangedField("payments.status") or
changeSet.hasChangedField("payments.type") or
changeSet.hasChangedField("payments.external_id") or
changeSet.hasChangedField("payments.amount") or
changeSet.hasChangedField("payments.paid_at") or
changeSet.hasChangedField("payments.comment") or
changeSet.hasChangedField("discount_manual_amount") or
changeSet.hasChangedField("discount_manual_percent")
)
and
order.getDeliveryType().getCode() in ["outcity","incity"]
Где:
- "outcity","incity" - это символьные коды Типа доставки.
- Если у вас будет 1 Тип доставки, то нужно вписать в таком виде ["incity”] вместо ["outcity","incity"]
3.Далее нужно нажать Добавить действие (1) -> Выполнить HTTP-запрос (2) чтобы появились дополнительные поля настроек (рис.11).
4.В поле "Адрес" прописываем: https://home.courierexe.ru/reintegrations/requests/update/retailcrm
5.В списке "HTTP метод" выбираем "POST".
6.В списке "Передавать параметры" выбираем "В теле запроса (urlencode)". Получим следующие настройки полей (рис. 12).
7.Нажимаем кнопку "Добавить параметр" 3 раза подряд.
8.Теперь нам нужно эти поля заполнить следующими данными:
Параметр | Значение |
id | {{ order.getNumber() }}
|
sum | {{ order.getIntegrationDeliveryData().getDeclaredSum() }}
|
key | {{ order.getIntegrationDeliveryData().getExtraData().deliveryApiKey }}
|
По итогу мы получим следующее заполнение полей (рис.14):
Обратите внимание, что ВО ВСЕХ СЛУЧАЯХ ДАННЫЕ ЗАПИСАНЫ В ОДНОЙ СТРОКЕ, ПЕРЕНОСОВ СТРОК БЫТЬ НЕ ДОЛЖНО!
10.Последнее действие - нажатие кнопки "Сохранить". Настройка триггера завершена.