Изменения документа Товарные рекомендации


<
От версии < 8.1 >
отредактировано Андрей Рылов
на 26/12/2025 11:20
К версии < 12.1 >
отредактировано Андрей Рылов
на 29/12/2025 11:43
>
Изменить комментарий: К данной версии нет комментариев

Комментарий

Подробности

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

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