RetailCRM
Введение
Триггер - это событие, при наступлении которого, срабатывает другое событие.
Пример триггера: Каждый месяц 1-го числа у вас списывается абонентская плата за интернет. В таком примере, триггер "настал 1-ый день месяца" - это событие, при наступлении которого срабатывает другое событие "списание абонентской платы"
В реалиях RetailCRM, предусмотрены 3 триггера:
- 1) Триггер "отправка заказа в КС2008", при наступлении события "Смена статуса заказа на "Отправлен в КС2008"".
- То есть, когда вы меняете статус заказу, то срабатывает триггер "отправка заказа в КС2008" и заказ уходит в систему КС2008.
- 2) Триггер "отмена заказа в КС2008", при наступлении события "Смена типа доставки у заказа".
- То есть, когда вы меняете Тип заказа с нашей доставки на доставку, например, в Почту России, то мы отменяем ваш заказ в нашей системе (если он туда передавался и имеет статус "Новый" или "Ожидает синхронизации").
- 3) Триггер "изменения заказа в КС2008", при наступлении события "Изменения заказ в RetailCRM".
- То есть, когда вы меняете данные заказа - данные меняются в в нашей системе (если он туда передавался и имеет статус "Новый" или "Ожидает синхронизации").
Триггер “Отмена заказа при смене Типа доставки”
Примечание:
Запрос отмены предназначен для отмены тех заказов, по которым не было произведено изменений - статуса доставки, статуса корреспонденции, времени доставки - то есть заказов, которые ещё не находятся в работе. Возможность отмены заказа есть только у курьерских служб с тарифом "Премиум" и по-умолчанию она выключена, ее нужно отдельно включить: Личный кабинет курьерской службы#Дополнительные настройки.
При отмене заказа поле "Инфо о доставке" получает значение "Отменено заказчиком", поле "Дата доставки" - текущую дату, а "Вручил курьер" - системную запись "ОТМЕНА".
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.Кнопка "Добавить" (рис.2).
3.Указываем поля "Название", "Символьный код", "Группа".
"Символьный код" необходимо записать, так как он понадобится в дальнейшем!
Символьный код желательно вбивать латинскими буквами и цифрами, без пробелов, например "ks2008send" (рис.3).
4.Переходим в настройки Типов доставок: "Настройки" (1) -> "Справочники" (2) -> "Типы доставок" (3) (рис. 4).
5.Находим нужные нам доставки (или доставку).
На примере выше мы видим 2 Типа доставок:
"Доставка межгород", символьный код outcity
"Доставка по городу", символьный код incity
Запишем эти значения.
6.Теперь, имея символьный код Статуса заказа (или статусов, если вам нужно передавать заказы при двух и более статусах) и символьный код Типа доставки (или типов), мы можем создать сам триггер:
Переходим в настройки Триггеров: "Настройки" (1) -> "Коммуникации" (2) -> "Триггеры" (3) (рис.7).
7.Кнопка "Добавить" (рис.8).
В появившемся окне нужно заполнить и настроить несколько полей:
1.Поле "Название" (рис.9).
2.В поле "Условие применения триггера" добавляем скрипт (рис.10):
order.getStatus().getCode() in ["ks2008send"] and order.getDeliveryType().getCode() in ["outcity","incity"]
Где:
- '"ks2008send"' - это символьный код Статуса заказа.
- Если у вас будет 2 статуса, то нужно вписать их через запятую в таком виде: ["ks2008send_1",”ks2008send_2”] вместо ["ks2008send"]
- "outcity","incity" - это символьные коды Типа доставки.
- Если у вас будет 1 Тип доставки, то нужно вписать в таком виде ["incity”] вместо ["outcity","incity"]
3.Далее нужно нажать Добавить действие (1) -> Выполнить HTTP-запрос (2) чтобы появились дополнительные поля настроек (рис.11).
4.В поле "Адрес" прописываем: https://home.courierexe.ru/reintegrations/requests/trigger/retailcrm
5.В списке "HTTP метод" выбираем "POST".
6.В списке "Передавать параметры" выбираем "В теле запроса (urlencode)". Получим следующие настройки полей (рис. 12).
7.Нажимаем кнопку "Добавить параметр" 3 раза подряд.
8.Теперь нам нужно эти поля заполнить следующими данными:
Параметр | Значение |
id | {{ order.getNumber() }}
|
sum | {{ order.getIntegrationDeliveryData().getDeclaredSum() }}
|
key | {{ order.getIntegrationDeliveryData().getExtraData().deliveryApiKey }}
|
По итогу мы получим следующее заполнение полей (рис.14):
Обратите внимание, что ВО ВСЕХ СЛУЧАЯХ ДАННЫЕ ЗАПИСАНЫ В ОДНОЙ СТРОКЕ, ПЕРЕНОСОВ СТРОК БЫТЬ НЕ ДОЛЖНО!
10.Последнее действие - нажатие кнопки "Сохранить". Настройка триггера завершена.
Триггер “Передача изменений заказа”
Примечание:
Возможность изменения заказа есть только у курьерских служб с тарифом "Премиум" и по-умолчанию она выключена, ее нужно отдельно включить: Личный кабинет курьерской службы#Дополнительные настройки.
1.Переходим в настройки Типов доставок: "Настройки" (1) -> "Справочники" (2) -> "Типы доставок" (3) (рис. 4).
2.Находим нужные нам доставки (или доставку).
На примере выше мы видим 2 Типа доставок:
"Доставка межгород", символьный код outcity
"Доставка по городу", символьный код incity
Запишем эти значения.
3.Теперь переходим в настройки Триггеров: "Настройки" (1) -> "Коммуникации" (2) -> "Триггеры" (3) (рис.7).
7.Кнопка "Добавить" (рис.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.Последнее действие - нажатие кнопки "Сохранить". Настройка триггера завершена.