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

Материал из Меасофт
Перейти к: навигация, поиск
м (Триггер “Отмена заказа при смене Типа доставки”)
м
Строка 7: Строка 7:
  
 
Для RetailCRM предусмотрены следующие триггеры:
 
Для RetailCRM предусмотрены следующие триггеры:
* [[Настройка триггеров для RetailCRM#Передача заказа при смене статуса|«Отправка заказа в КС2008»]] — при наступлении события «Смена статуса заказа на "Отправлен в КС2008"». При установке статуса, означающего, что заказ отправлен в курьерскую службу, срабатывает триггер, и заказ передается в MeaSoft;
+
* [[Настройка триггеров для RetailCRM#Передача заказа при смене статуса|«Отправка заказа в MeaSoft»]] — при наступлении события «Смена статуса заказа на "Отправлен в MeaSoft"». При установке статуса, означающего, что заказ отправлен в курьерскую службу, срабатывает триггер, и заказ передается в MeaSoft;
* «Отмена заказа в КС2008» — при наступлении события «Смена типа доставки у заказа». При изменении типа доставки с доставки MeaSoft на доставку, например, Почтой России, заказ в MeaSoft отменяется, если он туда передан и имеет статус «Новый» или «Ожидает синхронизации»;
+
* [[Настройка триггеров для RetailCRM#Отмена заказа при смене типа доставки|«Отмена заказа в MeaSoft»]] — при наступлении события «Смена типа доставки у заказа». При изменении типа доставки с доставки MeaSoft на доставку, например, Почтой России, заказ в MeaSoft отменяется, если он туда передан и имеет статус «Новый» или «Ожидает синхронизации»;
* «Изменения заказа в КС2008» — при наступлении события «Изменение заказа в RetailCRM». При изменении заказа в RetailCRM новые данные отправляются в MeSoft, если заказ передан и имеет статус «Новый» или «Ожидает синхронизации».
+
* [[Настройка триггеров для RetailCRM#Передача изменений заказа|«Изменения заказа в MeaSoft»]] — при наступлении события «Изменение заказа в RetailCRM». При изменении заказа в RetailCRM новые данные отправляются в MeSoft, если заказ передан и имеет статус «Новый» или «Ожидает синхронизации».
  
 
== Передача заказа при смене статуса ==
 
== Передача заказа при смене статуса ==
Строка 22: Строка 22:
 
#: '''Название'''. Название триггера, например «Отправка заказа в MeaSoft».
 
#: '''Название'''. Название триггера, например «Отправка заказа в MeaSoft».
 
#: '''Событие'''. Выберите значение '''Изменение заказа'''.
 
#: '''Событие'''. Выберите значение '''Изменение заказа'''.
#: '''Условие применения триггера'''. Добавьте следующий скрипт: <code>order.getStatus().getCode() in ["SentMeaSoft"] and order.getDeliveryType().getCode() in ["outcity","incity"]</code>, где  
+
#: '''Условие применения триггера'''. Добавьте следующий скрипт:
 +
#:<source lang="javascript">
 +
order.getStatus().getCode() in ["SentMeaSoft"] and order.getDeliveryType().getCode() in ["outcity","incity"]
 +
</source>
 +
#:где  
 
#* <code>SentMeaSoft</code> — символьный код статуса заказа. Если нужно указать 2 статуса, напишите их через запятую в виде: <code>["SentMeaSoft","SentMeaSoft_2"]</code> вместо <code>["SentMeaSoft"]</code>;
 
#* <code>SentMeaSoft</code> — символьный код статуса заказа. Если нужно указать 2 статуса, напишите их через запятую в виде: <code>["SentMeaSoft","SentMeaSoft_2"]</code> вместо <code>["SentMeaSoft"]</code>;
 
#* <code>outcity</code>, <code>incity</code> — символьные коды типа доставки. Если нужно указать 1 тип доставки, напишите его в виде <code>["incity"]</code> вместо <code>["outcity","incity"]</code>.
 
#* <code>outcity</code>, <code>incity</code> — символьные коды типа доставки. Если нужно указать 1 тип доставки, напишите его в виде <code>["incity"]</code> вместо <code>["outcity","incity"]</code>.
Строка 48: Строка 52:
 
Чтобы настроить триггер:
 
Чтобы настроить триггер:
 
# В RetailCRM выберите '''Администрирование''' > '''Справочники''' > '''Типы доставок'''. [[Файл:Rcrm_trig104.png|600 px|none]]
 
# В RetailCRM выберите '''Администрирование''' > '''Справочники''' > '''Типы доставок'''. [[Файл:Rcrm_trig104.png|600 px|none]]
#: Запишите символьный код доставки (доставок), заказы которой отправляются в MeaSoft.
+
#: Запишите символьный код типа доставки (доставок), заказы которой отправляются в MeaSoft.
 
# Перейдите в раздел '''Операционная деятельность''' и нажмите на кнопку '''Новый заказ'''. В разделе '''Доставка''' выберите тип доставки, заказы которой отправляются в MeaSoft, укажите город, вес и тариф.
 
# Перейдите в раздел '''Операционная деятельность''' и нажмите на кнопку '''Новый заказ'''. В разделе '''Доставка''' выберите тип доставки, заказы которой отправляются в MeaSoft, укажите город, вес и тариф.
 
# В разделе '''Доставка''' появится поле '''API ключ службы доставки'''. Запишите его значение. В результате у вас есть пара «символьный код типа доставки» - «API ключ службы доставки».
 
# В разделе '''Доставка''' появится поле '''API ключ службы доставки'''. Запишите его значение. В результате у вас есть пара «символьный код типа доставки» - «API ключ службы доставки».
Строка 54: Строка 58:
 
# Откройте '''Администрирование''' > '''Коммуникации''' > '''Триггеры''' и нажмите на кнопку '''Добавить'''. Откроется окно «Новый триггер».
 
# Откройте '''Администрирование''' > '''Коммуникации''' > '''Триггеры''' и нажмите на кнопку '''Добавить'''. Откроется окно «Новый триггер».
 
#: Заполните поля:
 
#: Заполните поля:
#* '''Название'''. Название триггера, например «Отмена заказа в MeaSoft».
+
#* '''Название'''. Название триггера, например «Отмена заказа в MeaSoft»;
#* '''Событие'''. Выберите значение Изменение заказа.
+
#* '''Событие'''. Выберите значение '''Изменение заказа''';
#* '''Условие применения триггера'''. Добавьте следующий скрипт:<code>changeSet.hasChangedField("delivery_type") and changeSet.getOldValue("delivery_type").getCode() in ["outcity","incity"]</code>, где <code>outcity<code>, <code>incity</code> — символьные коды типа доставки. Если нужно указать один тип доставки, напишите его в виде <code>["incity"]</code> вместо <code>["outcity","incity"]</code>.
+
#* '''Условие применения триггера'''. Добавьте следующий скрипт:
 +
#:<source lang="javascript">
 +
changeSet.hasChangedField("delivery_type") and changeSet.getOldValue("delivery_type").getCode() in ["outcity","incity"]
 +
</source>
 +
#:где <code>outcity</code>, <code>incity</code> — символьные коды типа доставки. Если нужно указать один тип доставки, напишите его в виде <code>["incity"]</code> вместо <code>["outcity","incity"]</code>.
 
# Нажмите '''Добавить действие''' > '''Выполнить HTTP-запрос'''. Появятся дополнительные поля настроек. Заполните их следующим образом:
 
# Нажмите '''Добавить действие''' > '''Выполнить HTTP-запрос'''. Появятся дополнительные поля настроек. Заполните их следующим образом:
 
#* '''Адрес''' — https://home.courierexe.ru/reintegrations/requests/cancel/retailcrm;
 
#* '''Адрес''' — https://home.courierexe.ru/reintegrations/requests/cancel/retailcrm;
Строка 70: Строка 78:
 
Триггер настроен.
 
Триггер настроен.
  
==Триггер “Передача  изменений заказа”==
+
== Передача изменений заказа ==
  
 +
Изменять заказ могут только курьерские службы с тарифом '''Премиум'''. По умолчанию опция выключена, ее нужно отдельно включить: [[Личный кабинет курьерской службы#Дополнительные настройки]].
  
<div style="font-size: 16px; color: #a92424; background-color: #ffdede; border: 1px solid #ebccd1; padding: 3px 10px 10px;">
+
Чтобы настроить триггер:
'''Примечание:'''
+
# В RetailCRM выберите '''Администрирование''' > '''Справочники''' > '''Типы доставок'''. [[Файл:Rcrm_trig104.png|600 px|none]]
 
+
#: Запишите символьный код доставки (доставок), заказы которой отправляются в MeaSoft.
Возможность изменения заказа есть только у курьерских служб с тарифом '''"Премиум"''' и по-умолчанию она выключена, ее нужно отдельно включить: [[Личный кабинет курьерской службы#Дополнительные настройки]].
+
# Откройте '''Администрирование''' > '''Коммуникации''' > '''Триггеры''' и нажмите на кнопку '''Добавить'''. Откроется окно «Новый триггер».
 
+
#: Заполните поля:
</div>
+
#* '''Название'''. Название триггера, например «Передача изменений заказа в MeaSoft»;
 
+
#* '''Событие'''. Выберите значение '''Изменение заказа''';
{|align="right"
+
#* '''Условие применения триггера'''. Добавьте следующий скрипт:
|-valign="top"
+
#:<source lang="javascript">
|[[Файл: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).
 
 
 
 
4.Кнопка '''"Добавить"''' (рис.8).
 
 
В появившемся окне нужно заполнить и настроить несколько полей:
 
 
 
1.Поле '''"Название"''' (рис.9).
 
 
 
2.В поле '''"Условие применения триггера"''' добавляем скрипт (рис.10):
 
<source lang="javascript">
 
 
changeSet.isUpdate() and  
 
changeSet.isUpdate() and  
 
(
 
(
Строка 146: Строка 122:
 
)
 
)
 
and  
 
and  
order.getDeliveryType().getCode() in ["outcity","incity"]
+
order.getDeliveryType().getCode() in ["outcity","incity"]
 
</source>
 
</source>
{|align="right"
+
#:где <code>outcity</code>, <code>incity</code> символьные коды типа доставки. Если нужно указать один тип доставки, напишите его в виде <code>["incity"]</code> вместо <code>["outcity","incity"]</code>.
|-valign="top"
+
# Нажмите '''Добавить действие''' > '''Выполнить HTTP-запрос'''. Появятся дополнительные поля настроек. Заполните их следующим образом:
|[[Файл:rcrm_trig111.png|200px|thumb|right|рис.11 выбор меню "Добавить действие"]]
+
#* '''Адрес''' https://home.courierexe.ru/reintegrations/requests/update/retailcrm;
|[[Файл:rcrm_1_1.png|200px|thumb|right|рис.12 Дополнительные поля настроек]]
+
#* '''HTTP метод''' '''POST''';
|} 
+
#* '''Передавать параметры''' '''В теле запроса (urlencode)''';
Где:
+
# Нажмите на кнопку '''Добавить параметр''' 3 раза подряд и заполните появившиеся поля следующими данными:
*'''"outcity"''','''"incity"''' - это <span style="color: red;>символьные коды Типа доставки</span>.
+
#* '''id''' <nowiki>{{ order.getNumber() }}</nowiki>;
:*Если у вас будет 1 Тип доставки, то нужно вписать в таком виде '''["incity”]''' вместо '''["outcity","incity"]'''
+
#* '''sum''' <nowiki>{{ order.getIntegrationDeliveryData().getDeclaredSum() }}</nowiki>;
 
+
#* '''key''' <nowiki>{{ order.getIntegrationDeliveryData().getExtraData().deliveryApiKey }}</nowiki>.
+
#:'''Примечание'''. Переносы строк не допускаются.
3.Далее нужно нажать '''Добавить действие''' (1) -> '''Выполнить HTTP-запрос''' (2) чтобы появились дополнительные поля настроек (рис.11).
+
# Нажмите '''Сохранить'''.
+
Триггер настроен.
4.В поле '''"Адрес"''' прописываем: https://home.courierexe.ru/reintegrations/requests/update/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.Последнее действие - нажатие кнопки '''"Сохранить"'''. Настройка триггера завершена.
 

Версия 15:15, 27 января 2021

Введение

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

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

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

  • «Отправка заказа в MeaSoft» — при наступлении события «Смена статуса заказа на "Отправлен в MeaSoft"». При установке статуса, означающего, что заказ отправлен в курьерскую службу, срабатывает триггер, и заказ передается в MeaSoft;
  • «Отмена заказа в MeaSoft» — при наступлении события «Смена типа доставки у заказа». При изменении типа доставки с доставки MeaSoft на доставку, например, Почтой России, заказ в MeaSoft отменяется, если он туда передан и имеет статус «Новый» или «Ожидает синхронизации»;
  • «Изменения заказа в MeaSoft» — при наступлении события «Изменение заказа в 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. В RetailCRM выберите Администрирование > Справочники > Типы доставок.
    Rcrm trig104.png
    Запишите символьный код типа доставки (доставок), заказы которой отправляются в MeaSoft.
  2. Перейдите в раздел Операционная деятельность и нажмите на кнопку Новый заказ. В разделе Доставка выберите тип доставки, заказы которой отправляются в MeaSoft, укажите город, вес и тариф.
  3. В разделе Доставка появится поле API ключ службы доставки. Запишите его значение. В результате у вас есть пара «символьный код типа доставки» - «API ключ службы доставки».
  4. Повторите действия пп. 2-3 для каждой доставки, заказы по которой отправляются в MeaSoft.
  5. Откройте Администрирование > Коммуникации > Триггеры и нажмите на кнопку Добавить. Откроется окно «Новый триггер».
    Заполните поля:
    • Название. Название триггера, например «Отмена заказа в MeaSoft»;
    • Событие. Выберите значение Изменение заказа;
    • Условие применения триггера. Добавьте следующий скрипт:
    changeSet.hasChangedField("delivery_type") and changeSet.getOldValue("delivery_type").getCode() in ["outcity","incity"]
    
    где outcity, incity — символьные коды типа доставки. Если нужно указать один тип доставки, напишите его в виде ["incity"] вместо ["outcity","incity"].
  6. Нажмите Добавить действие > Выполнить HTTP-запрос. Появятся дополнительные поля настроек. Заполните их следующим образом:
  7. Нажмите на кнопку Добавить параметр 2 раза подряд и потом еще столько раз, сколько у вас сопоставленных пар «символьный код типа доставки» - «API ключ службы доставки». Заполните появившиеся поля следующими данными:
    • id — {{ order.getNumber() }};
    • sum — {{ order.getIntegrationDeliveryData().getDeclaredSum() }};
    • символьный код типа доставки 1 — API ключ службы доставки 1;
    • символьный код типа доставки 2 — API ключ службы доставки 2...
    Примечание. Переносы строк не допускаются.
  8. Нажмите Сохранить.

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

Передача изменений заказа

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

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

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

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