RetailCRM

Материал из Меасофт
Перейти к: навигация, поиск

Введение

Триггер
Хранимая процедура специального типа, автоматически выполняющаяся при наступлении заданного события.

Пример: каждый месяц 1-го числа списывается абонентская плата за интернет. Триггер «1-ый день месяца» — это событие, при наступлении которого срабатывает процедура «списание абонентской платы».

Для RetailCRM предусмотрены следующие триггеры:

  • «Отправка заказа в КС2008» — при наступлении события «Смена статуса заказа на "Отправлен в КС2008"». При установке статуса, означающего, что заказ отправлен в курьерскую службу, срабатывает триггер, и заказ передается в MeaSoft;
  • «Отмена заказа в КС2008» — при наступлении события «Смена типа доставки у заказа». При изменении типа доставки с доставки MeaSoft на доставку, например, Почтой России, заказ в MeaSoft отменяется, если он туда передан и имеет статус «Новый» или «Ожидает синхронизации»;
  • «Изменения заказа в КС2008» — при наступлении события «Изменение заказа в RetailCRM». При изменении заказа в RetailCRM новые данные отправляются в MeSoft, если заказ передан и имеет статус «Новый» или «Ожидает синхронизации».

Передача заказа при смене статуса

рис.1 Настройки
рис.2 Кнопка "Добавить"
рис.3 Настройки полей статуса
рис.4 настройки Типов доставок
рис.5 Тип доставки город
рис.6 Тип доставки межгород

Чтобы настроить триггер:

  1. Cоздайте пользовательский статус заказа, при установке которого заказ будет автоматически передаваться в курьерскую службу. Можно создать любое количество статусов.

Заходим в настройки (рис.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"]
рис.11 выбор меню "Добавить действие"
рис.12 Дополнительные поля настроек

Где:

  • '"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.Для начала потребуется найти и сопоставить пары: символьный код Типа доставки - API ключ


2.Идем в настройки Типов доставок: Настройки (1) -> Справочники (2) -> Типы доставок (3) (рис.1 Типы доставок).


3.Находим нужные нам доставки (или доставку). На примере мы видим 2 Типа доставок:

Доставка межгород, символьный код outcity

Доставка по городу, символьный код incity

Запишем эти значения.

рис.2 Тип доставки город
рис.3 Тип доставки межгород


4.Создаем тестовые заказы на каждый Тип доставки.

У нас в примере 2 доставки, поэтому создадим 2 тестовых заказа, обязательно выбирая тариф.

Создав 2 заказа, обязательно выбирая тариф, мы видим следующее (рис.2 и рис.3 Два типа доставок город и межгород).

Таким образом получаем, что:

Доставка межгород, символьный код outcity, API ключ: WZHjxt5hsxxxxxxxxxxxxxxxxxxxxxxx

Доставка по городу, символьный код incity, API ключ: fVJ4dO1h8xxxxxxxxxxxxxxxxxxxxxxx

Пары символьный код Типа доставки - API ключ нужно записать. Текстовые наименования Типа доставки нам больше НЕ нужны.


5.Теперь, имея сопоставленные пары символьный код Типа доставки - API ключ, мы можем создать сам триггер:

рис.4 Настройки Триггеров
рис.5 Кнопка "Добавить"
рис.6 Поле "Название"
рис.7 Поле "Условие применения триггера"

Идем в настройки Триггеров: Настройки (1) -> Коммуникации (2) -> Триггеры (3) (рис.4 Настройки Триггеров)


6.Жмем “Добавить” (рис.5 Кнопка "Добавить")

В появившемся окне нужно заполнить и настроить несколько полей:

1.Поле "Название" (рис.6 Поле "Название")

2.Поле "Условие применения триггера" (рис.7 Поле "Условие применения триггера"):

Вбиваем скрипт:

changeSet.hasChangedField("delivery_type") and changeSet.getOldValue("delivery_type").getCode() in ["outcity","incity"]
рис.8 выбор меню "Добавить действие"

Где:

  • значения "outcity","incity" - это символьные коды Типа доставки.
  • Если у вас будет 1 Тип доставки, то нужно вписать в таком виде: ["incity”] вместо ["outcity","incity"]

3.Далее нужно нажать Добавить действие (1) -> Выполнить HTTP-запрос (2) (рис.8 выбор меню "Добавить действие"), чтобы появились дополнительные поля настроек (рис.9 Дополнительные поля настроек).


4.В поле "Адрес" прописываем адрес: https://home.courierexe.ru/reintegrations/requests/cancel/retailcrm

рис.9 Дополнительные поля настроек


5.В списке "HTTP метод" выбираем "POST".


6.В списке "Передавать параметры" выбираем "В теле запроса (urlencode)" Получим пример заполнения, как на (рис.9 Дополнительные поля настроек).


7.Жмите кнопку "Добавить" параметр 2 раза.


8.Теперь снова жмите кнопку "Добавить параметр" столько раз, сколько у вас было сопоставленных пар символьный код Типа доставки - API ключ.

рис.10 Добавление параметров


В нашем случае было 2 пары, поэтому мы опять нажмем 2 раза. Итого у нас будет 4 нажатия и мы увидим следующее (рис.10 Добавление параметров).

9.Теперь нам нужно эти поля заполнить следующими данными:

рис.11 Заполнили параметры данными
Параметр Значение
id
{{ order.getNumber() }}
code
{{ changeSet.getOldValue("delivery_type").getCode() }}
символьный код Типа доставки из 1-ой пары сопоставлений API ключ из 1-ой пары сопоставлений
символьный код Типа доставки из 2-ой пары сопоставлений API ключ из 2-ой пары сопоставлений


По итогу мы получим следующее (см. рис.11 Заполнили параметры данными).

Обратите внимание, что ВО ВСЕХ СЛУЧАЯХ ДАННЫЕ ЗАПИСАНЫ В ОДНОЙ СТРОКЕ, ПЕРЕНОСОВ СТРОК БЫТЬ НЕ ДОЛЖНО!


10.Последнее действие - нажатие кнопки "Сохранить". Настройка триггера завершена.


Триггер “Передача изменений заказа”

Примечание:

Возможность изменения заказа есть только у курьерских служб с тарифом "Премиум" и по-умолчанию она выключена, ее нужно отдельно включить: Личный кабинет курьерской службы#Дополнительные настройки.

рис.1 Настройки
рис.2 Кнопка "Добавить"
рис.4 настройки Типов доставок
рис.5 Тип доставки город
рис.6 Тип доставки межгород

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"]
рис.11 выбор меню "Добавить действие"
рис.12 Дополнительные поля настроек

Где:

  • "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.Последнее действие - нажатие кнопки "Сохранить". Настройка триггера завершена.