RetailCRM — различия между версиями

Материал из Меасофт
Перейти к: навигация, поиск
(Триггер “Передача заказа при смене Статуса заказа”)
Строка 227: Строка 227:
 
   
 
   
 
4.В поле '''"Адрес"''' прописываем: https://home.courierexe.ru/reintegrations/requests/trigger/retailcrm
 
4.В поле '''"Адрес"''' прописываем: https://home.courierexe.ru/reintegrations/requests/trigger/retailcrm
 +
 +
5.В списке '''"HTTP метод"''' выбираем '''"POST"'''.
 +
 +
6.В списке '''"Передавать параметры"''' выбираем '''"В теле запроса (urlencode)"'''.
 +
Получим следующие настройки полей (рис. 12).
 +
 +
7.Нажимаем кнопку '''"Добавить параметр"''' 3 раза подряд.
 +
 +
8.Теперь нам нужно эти поля заполнить следующими данными:
 +
 +
{| class="wikitable" cellpadding="10" cellspacing="0" border="2"
 +
|'''Параметр'''
 +
|'''Значение'''
 +
|-
 +
|'''id'''
 +
|<source lang="javascript">{{ order.getNumber() }}</source>
 +
|-
 +
|'''sum'''
 +
|<source lang="javascript">{{ order.getIntegrationDeliveryData().getDeclaredSum() }}</source>
 +
|-
 +
|'''key'''
 +
|<source lang="javascript">{{ order.getIntegrationDeliveryData().getExtraData().deliveryApiKey }}</source>
 +
|-
 +
|}
 +
 +
 +
По итогу мы получим следующее заполнение полей (рис.14):
 +
 +
Обратите внимание, что <span style="color: red;>ВО ВСЕХ СЛУЧАЯХ ДАННЫЕ ЗАПИСАНЫ В ОДНОЙ СТРОКЕ, ПЕРЕНОСОВ СТРОК БЫТЬ НЕ ДОЛЖНО!</span>
 +
 +
10.Последнее действие - нажатие кнопки '''"Сохранить"'''. Настройка триггера завершена.
 +
 +
==Триггер “Передача  изменений заказа”==
 +
 +
{|align="right"
 +
|-valign="top"
 +
|[[Файл:rcrm_trig101.png|200px|thumb|right|рис.1 Настройки]]
 +
|[[Файл:rcrm_trig102.png|200px|thumb|right|рис.2 Кнопка "Добавить"]]
 +
|-
 +
|[[Файл:rcrm_trig104.png|200px|thumb|right|рис.4 настройки Типов доставок]]
 +
|-
 +
|[[Файл:rcrm_trig105.png|200px|thumb|right|рис.5 Тип доставки город]]
 +
|[[Файл:rcrm_trig106.png|200px|thumb|right|рис.6 Тип доставки межгород]]
 +
|}
 +
 +
1.Переходим в настройки Типов доставок: '''"Настройки"''' (1) -> '''"Справочники"''' (2)  -> '''"Типы доставок"''' (3) (рис. 4).
 +
 +
 +
2.Находим нужные  нам доставки (или доставку).
 +
На примере выше мы видим 2 Типа доставок:
 +
 +
'''"Доставка межгород"''', символьный код <span style="color: red;>'''outcity'''</span>
 +
 +
'''"Доставка по городу"''', символьный код <span style="color: red;>'''incity'''</span>
 +
 +
<span style="color: red;>'''Запишем эти значения.'''</span>
 +
 +
 +
3.Теперь переходим в настройки Триггеров: '''"Настройки"''' (1) -> '''"Коммуникации"''' (2) -> '''"Триггеры"''' (3) (рис.7).
 +
 +
 +
7.Кнопка '''"Добавить"''' (рис.8).
 +
 +
В появившемся окне нужно заполнить и настроить несколько полей:
 +
 +
1.Поле '''"Название"''' (рис.9).
 +
 +
2.В поле '''"Условие применения триггера"''' добавляем скрипт (рис.10):
 +
<source lang="javascript">
 +
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"]
 +
</source>
 +
{|align="right"
 +
|-valign="top"
 +
|[[Файл:rcrm_trig111.png|200px|thumb|right|рис.11 выбор меню "Добавить действие"]]
 +
|[[Файл:rcrm_trig112.png|200px|thumb|right|рис.12 Дополнительные поля настроек]]
 +
|} 
 +
Где:
 +
*'''"outcity"''','''"incity"''' - это <span style="color: red;>символьные коды Типа доставки</span>.
 +
:*Если у вас будет 1 Тип доставки, то нужно вписать в таком виде '''["incity”]''' вместо '''["outcity","incity"]'''
 +
 +
 +
3.Далее нужно нажать '''Добавить действие''' (1) -> '''Выполнить HTTP-запрос''' (2) чтобы появились дополнительные поля настроек (рис.11).
 +
 +
4.В поле '''"Адрес"''' прописываем: https://home.courierexe.ru/reintegrations/requests/update/retailcrm
  
 
5.В списке '''"HTTP метод"''' выбираем '''"POST"'''.
 
5.В списке '''"HTTP метод"''' выбираем '''"POST"'''.

Версия 06:28, 26 августа 2020

Введение

Триггер - это событие, при наступлении которого, срабатывает другое событие.

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

В реалиях RetailCRM, предусмотрены 3 триггера:

  • 1) Триггер "отправка заказа в КС2008", при наступлении события "Смена статуса заказа на "Отправлен в КС2008"".
  • То есть, когда вы меняете статус заказу, то срабатывает триггер "отправка заказа в КС2008" и заказ уходит в систему КС2008.
  • 2) Триггер "отмена заказа в КС2008", при наступлении события "Смена типа доставки у заказа".
  • То есть, когда вы меняете Тип заказа с нашей доставки на доставку, например, в Почту России, то мы отменяем ваш заказ в нашей системе (если он туда передавался и имеет статус "Новый" или "Ожидает синхронизации").
  • 3) Триггер "изменения заказа в КС2008", при наступлении события "Изменения заказ в RetailCRM".
  • То есть, когда вы меняете данные заказа - данные меняются в в нашей системе (если он туда передавался и имеет статус "Новый" или "Ожидает синхронизации").

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

Примечание:

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

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

рис.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 Кнопка "Добавить"
рис.3 Настройки полей статуса
рис.4 настройки Типов доставок
рис.5 Тип доставки город
рис.6 Тип доставки межгород

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"]
рис.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 Настройки
рис.2 Кнопка "Добавить"
рис.4 настройки Типов доставок
рис.5 Тип доставки город
рис.6 Тип доставки межгород

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