RetailCRM

Материал из Меасофт
Версия от 13:38, 27 января 2021; Olga (обсуждение | вклад) (Передача заказа при смене статуса)
Перейти к: навигация, поиск

Введение

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

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

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

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

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

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

  1. Cоздайте пользовательский статус заказа, при установке которого заказ будет автоматически передаваться в курьерскую службу. Можно создать любое количество статусов.
    1. В RetailCRM выберите Администрирование > Статусы и нажмите на кнопку Добавить. Откроется окно «Новый статус»:
      Rcrm trig103.png
    2. Заполните поля формы. В поле Символьный код используйте только цифры и латинские буквы без пробелов. Запишите созданный символьный код, он понадобится на следующих шагах.
  2. Выберите Администрирование > Справочники > Типы доставок. Запишите символьные коды доставок, которые будут использоваться в триггере. В примере ниже используются коды outcity и incity.
    Rcrm trig104.png
  3. Откройте Администрирование > Коммуникации > Триггеры и нажмите на кнопку Добавить. Откроется окно «Новый триггер».
    Заполните поля:
    Название. Название триггера, например «Отправка заказа в 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"].
  4. Нажмите Добавить действие > Выполнить HTTP-запрос. Появятся дополнительные поля настроек. Заполните их следующим образом:
  5. Нажмите на кнопку Добавить параметр 3 раза подряд и заполните появившиеся поля следующими данными:
    • id — {{ order.getNumber() }};
    • sum — {{ order.getIntegrationDeliveryData().getDeclaredSum() }};
    • key — {{ order.getIntegrationDeliveryData().getExtraData().deliveryApiKey }}.
    Примечание. Переносы строк не допускаются.
  6. Нажмите Сохранить.

Триггер настроен.

Триггер “Отмена заказа при смене Типа доставки”

Примечание:

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

При отмене заказа поле "Инфо о доставке" получает значение "Отменено заказчиком", поле "Дата доставки" - текущую дату, а "Вручил курьер" - системную запись "ОТМЕНА".

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