Исходный код вики Рекомендации


Последние авторы
1 (% class="lead" %)
2 Функциональность рекомендаций позволяет выводить в текст сообщений товары, подобранные по одному из поддерживаемых алгоритмов на основе предпочтений клиентов.
3
4 {{info}}
5 Функциональность рекомендаций поддерживается только при настроенной интеграции с модулем [[Loymax AI>>doc:Main.General_information.Loymax_AI.WebHome]].
6 {{/info}}
7
8 (% class="box" %)
9 (((
10 **Содержание:**
11
12 {{toc depth="3" start="2"/}}
13 )))
14
15 Общий процесс генерации рекомендаций выглядит следующим образом:
16
17 1. Маркетолог создаёт рекомендацию в АРМ.
18 1. Маркетолог вставляет код рекомендации в сообщение.
19 1. При генерации сообщения Loymax Smart Communications отправляет в [[Loymax AI>>doc:Main.General_information.Loymax_AI.WebHome]] запрос, содержащий:
20 1*. идентификатор клиента,
21 1*. название алгоритма рекомендации,
22 1*. параметры алгоритма (например, сколько продуктов рекомендовать).
23 1. Loymax AI возвращает массив продуктов, сформированный по указанному алгоритму.
24 1. Loymax Smart Communications отправляет персонализированное сообщение с рекомендациями.
25
26 == Настройка рекомендаций ==
27
28 Чтобы просмотреть список созданных рекомендаций, на панели слева перейдите в раздел **Рекомендации**.
29
30 |(% style="border-color:#ffffff; text-align:center" %){{lightbox image="recommendations.png" width="660"/}}
31
32 Вы можете совершать следующие действия с рекомендациями:
33
34 * Создать новую рекомендацию ([[image:1.png]]).
35 * Отсортировать таблицу по содержимому любого столбца ([[image:2.png]]).
36 * Редактировать, копировать или удалить рекомендацию ([[image:3.png]]). Вы также можете редактировать рекомендацию по клику на её код или наименование.
37
38 По нажатию кнопки создания новой или редактирования существующей рекомендации откроется окно редактирования рекомендации.
39
40 |(% style="border-color:white; width:70%" %)(((
41 Заполните обязательные поля рекомендации:
42
43 * **Код рекомендации** — короткий код, который будет использоваться для добавления рекомендаций в сообщения.
44 * **Наименование рекомендации** — человекочитаемое имя, которое будет отображаться в списке настроенных рекомендаций.
45 * **Алгоритм рекомендации** — выберите требуемый алгоритм из списка. Подробнее о поддерживаемых алгоритмах см. в [[отдельной статье>>doc:Main.General_information.Loymax_Loyalty.recommendation_systems.Commercial_recommendations.WebHome]].
46
47 Настройте параметры рекомендации. Набор доступных параметров зависит от выбранного алгоритма.
48
49 * **Количество рекомендаций** — количество продуктов, которые будет возвращать модуль Loymax AI.
50 * **Рассчитывать на основе** — источник, из которого Loymax Smart Communications будет брать продукты (для расчёта рекомендаций по алгоритмам [[Совместные покупки>>doc:Main.General_information.Loymax_Loyalty.recommendation_systems.Commercial_recommendations.WebHome||anchor="H41043B43343E44043844243C2242143E43243C43544144243D44B43543F43E43A44343F43A43822"]], [[Похожие товары>>doc:Main.General_information.Loymax_Loyalty.recommendation_systems.Commercial_recommendations.WebHome||anchor="H41043B43343E44043844243C2241F43E44543E43643843544243E43243044044B22"]]) или категории (для расчёта рекомендаций по алгоритму [[Популярные товары в категории>>doc:Main.General_information.Loymax_Loyalty.recommendation_systems.Commercial_recommendations.WebHome||anchor="H41043B43343E44043844243C2241F43E43F44343B44F44043D44B43544243E43243044044B43243A43044243543343E44043843822"]]).
51 )))|(% style="border-color:white; text-align:center; width:30%" %){{lightbox image="recommendation_edit.png" width="400"/}}
52
53 === Настройка ручных рекомендаций ===
54
55 |(% style="border-color:white; width:70%" %)(((
56 Ручные рекомендации отличаются от всех остальных алгоритмов тем, что расчёт рекомендаций полностью осуществляется на стороне Loymax Smart Communications. Ручные рекомендации рассчитываются раз в сутки в соответствии с настроенными параметрами.
57
58 Для продуктов, относящихся к заданной **Целевой категории** и полученных из заданного источника (поле **Рассчитывать на основе**), подбираются продукты из **Рекомендованных категорий**, которые чаще всего присутствуют в чеках вместе с целевым продуктом. Алгоритм вернёт N наиболее популярных продуктов, где N — значение, заданное в поле **Количество**.
59
60 Рекомендации можно дополнительно ограничить: если заданы **Продвинутые настройки соответствия**, алгоритм будет предлагать только продукты, у которых значения заданных параметров соответствуют значениям параметров целевого продукта.
61
62 Для ручных рекомендаций доступны следующие настройки:
63
64 * **Период расчета** ([[image:1.png]]). Период, за который будут анализироваться чеки, чтобы определить продукты, чаще всего покупаемые вместе с целевыми.
65 * **Рассчитывать на основе** ([[image:2.png]]). Аналогично остальным алгоритмам, источник, из которого Loymax Smart Communications будет брать целевые продукты.
66 * **Целевая категория** ([[image:3.png]]). Категория, к продуктам из которой будут рассчитываться рекомендации. Чтобы добавить целевую категорию, нажмите **+ Добавить соответствие** в левом нижнем углу окна.
67 * **Рекомендуемая категория** ([[image:4.png]]). Категория, продукты из которой будут предлагаться в качестве рекомендаций. К одной целевой категории можно выбрать несколько рекомендуемых. Чтобы добавить рекомендуемую категорию, нажмите **+ Добавить категорию**.
68 * **Количество** ([[image:4.png]]). Количество продуктов из данной рекомендуемой категории, которое вернёт алгоритм. Количество задаётся отдельно для каждой рекомендуемой категории.
69 * **Продвинутые настройки соответствия** ([[image:5.png]]). Нажмите **+ Добавить соответствие** в правой части окна, чтобы добавить поле, по которому требуется отфильтровать выдачу алгоритма. Продвинутые настройки соответствия задаются отдельно для каждой целевой категории (т.е. распространяются на все рекомендуемые категории).
70
71 {{success}}
72 * Для полей с числовыми типами данных, а также с типом данных "дата" доступен флажок **Точное соответствие**. Если он установлен, продукт будет рекомендован только при полном совпадении значения со значением соответствующего атрибута целевого продукта.
73 * Для полей с типами данных "строка" и "логическое" всегда требуется точное соответствие.
74 * Если флажок **Точное соответствие** снят, продукт попадёт в рекомендации, если он отличается от целевого продукта по значению атрибута не более чем на 15%.
75 {{/success}}
76 )))|(% style="border-color:white; text-align:center; width:30%" %){{lightbox image="recommendation_manual.png" width="400"/}}
77
78 == Подстановка рекомендаций в сообщение ==
79
80 Для отображения рекомендаций в сообщениях необходимо использовать конструкции [[шаблонизатора>>doc:Main.Using.Smart_Communications.Mass_mailings.Template_builder.WebHome]].
81
82 Рассмотрим пример добавления рекомендаций в сообщения. Мы хотим отправить клиентам email-рассылку с рекомендациями по алгоритму //Совместные покупки// (для этого в Системе создана рекомендация с кодом ##sov_pok##). У некоторых клиентов ещё нет истории покупок, поэтому для них будем выдавать рекомендации по алгоритму //Популярные товары// (для этого в Системе создана рекомендация с кодом ##popular##).
83
84 {{code}}
85 {% set Rec=client.recommendations.sov_pok %}
86 {% if not Rec or Rec|length < 3 %}
87 {% set Rec=client.recommendations.popular %}
88 {% endif %}
89
90 {{/code}}
91
92 Теперь переменная ##Rec## хранит массив объектов Продукт (##product##), подобранных по алгоритму //Совместные покупки//, а если клиент не совершил достаточного количества покупок, то по алгоритму //Популярные товары//.
93
94 Отфильтруем массив рекомендованных продуктов, оставив только те, которые можно купить в интернет-магазине (значение логического пользовательского [[поля>>doc:Main.Using.Smart_Communications.Settings_SC.Data_field.WebHome]] ##eComAvailable## — ##true##). Кроме того, для вывода в сообщение нам понадобится не более 9 продуктов (три ряда по три продукта).
95
96 Для этого определим две новых переменные: в массив ##filteredRec## мы будем записывать отфильтрованные рекомендации, а переменная ##count_recs## будет служить в качестве счётчика.
97
98 Переберём все продукты и добавим в массив те из них, которые не были добавлены ранее (таким образом обеспечивается дедупликация продуктов) и которые доступны для заказа в интернет-магазине. Каждый раз, когда мы добавляем продукт в массив отфильтрованных рекомендаций, значение переменной-счётчика увеличивается на 1. Таким образом, есть два сценария выхода из цикла: либо мы перебрали все продукты, либо мы отобрали 9 подходящих для добавления в сообщение. сбоощение
99
100 {{code}}
101 {% set count_recs=0 %}
102 {% set filteredRec=[] %}
103 {% for product in Rec %}
104 {% if product not in filteredRec and product.eComAvailable=='Y' and count_recs < 9 %}
105  {% set filteredRec=filteredRec|merge([product]) %}
106  {% set count_recs=count_recs + 1 %}
107 {% endif %}
108 {% endfor %}
109 {{/code}}
110
111 Теперь разобьём отфильтрованные рекомендации на группы по три.
112
113 Если в процессе фильтрации мы получили количество подходящих продуктов, не кратное 3, в последней группе будет меньше 3 продуктов (например, 7=3+3+1). Проверим и выведем в сообщение только те группы, в которых ровно три продукта.
114
115 Для каждого продукта выведем наименование и изображение.
116
117 {{code}}
118 {% for batch in filteredRec|batch(3) %}
119     {% if batch|length==3 %}
120         {% for recommendation in batch %}}
121 {{ recommendation.name }}
122 {{ recommendation.image_url }}
123 {{/code}}
124
125 Далее реализуем такой сценарий:
126
127 * если цена продукта менялась (значения полей текущей цены в интернет-магазине и старой цены не равны), выведем старую и новую цену;
128 * если цена продукта не менялась и поле цены в интернет-магазине заполнено, выведем текущую цену;
129 * если поле цены в интернет-магазине не заполнено, выведем "Цена уточняется".
130
131 {{code}}
132 {% if recommendation.priceim and recommendation.oldprice and recommendation.priceim != recommendation.oldprice %}
133   Цена: {{ recommendation.priceim }}
134   Старая цена: {{ recommendation.oldprice_19 }}
135 {% elseif recommendation.priceim %}
136   Цена: {{ recommendation.priceim }}
137 {% else %}
138   Цена уточняется
139 {% endif %}
140 {% endfor %}
141 {{/code}}
142
143 В итоге получим следующую конструкцию:
144
145 {{showhide showmessage="Показать пример" hidemessage="Скрыть пример"}}
146 {{code}}
147 {% set Rec=client.recommendations.sov_pok %}
148 {% if not Rec or Rec|length < 3 %}
149 {% set Rec=client.recommendations.popular %}
150 {% endif %}
151 {% set count_recs=0 %}
152 {% set filteredRec=[] %}
153 {% for product in Rec %}
154 {% if product not in filteredRec and product.eComAvailable=='Y' and count_recs < 9 %}
155  {% set filteredRec=filteredRec|merge([product]) %}
156  {% set count_recs=count_recs + 1 %}
157 {% endif %}
158 {% endfor %}
159 {% for batch in filteredRec|batch(3) %}
160     {% if batch|length==3 %}
161         {% for recommendation in batch %}}
162 {{ recommendation.name }}
163 {{ recommendation.image_url }}
164 {% if recommendation.priceim and recommendation.oldprice and recommendation.priceim != recommendation.oldprice %}
165   Цена: {{ recommendation.priceim }}
166   Старая цена: {{ recommendation.oldprice_19 }}
167 {% elseif recommendation.priceim %}
168   Цена: {{ recommendation.priceim }}
169 {% else %}
170   Цена уточняется
171 {% endif %}
172 {% endfor %}
173 {% endif %}
174 {% endfor %}
175 {{/code}}
176 {{/showhide}}
177
178 (% class="box" %)
179 (((
180 **Читайте также:**
181
182 * [[Рекомендации>>doc:Main.General_information.Loymax_Loyalty.recommendation_systems.Commercial_recommendations.WebHome]]
183 * [[Шаблонизатор сообщений>>doc:Main.Using.Smart_Communications.Mass_mailings.Template_builder.WebHome]]
184 )))

Новости
Обновления
Облако тегов
Словарь
Наш блог
YouTube и Rutube
Telegram