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


<
От версии < 14.2 >
отредактировано Андрей Рылов
на 16/01/2026 10:13
К версии < 19.1 >
отредактировано Андрей Рылов
на 30/01/2026 10:57
>
Изменить комментарий: К данной версии нет комментариев

Комментарий

Подробности

Свойства страницы
Содержимое
... ... @@ -1,5 +1,5 @@
1 1  (% class="lead" %)
2 -Функциональность рекомендаций позволяет выводить в текст сообщений товары, подобранные по одному из поддерживаемых алгоритмов на основе предпочтений клиентов.
2 +Функциональность рекомендаций позволяет выводить в текст сообщений продукты, подобранные по одному из поддерживаемых алгоритмов на основе предпочтений клиентов.
3 3  
4 4  {{info}}
5 5  Функциональность рекомендаций поддерживается только при настроенной интеграции с модулем [[Loymax AI>>doc:Main.General_information.Loymax_AI.WebHome]].
... ... @@ -29,7 +29,7 @@
29 29  
30 30  |(% style="border-color:#ffffff; text-align:center" %){{lightbox image="recommendations.png" width="660"/}}
31 31  
32 ы можете совершать следующие действия с рекомендациями:
32 разделе **Рекомендации** доступны следующие действия:
33 33  
34 34  * Создать новую рекомендацию ([[image:1.png]]).
35 35  * Отсортировать таблицу по содержимому любого столбца ([[image:2.png]]).
... ... @@ -42,7 +42,13 @@
42 42  
43 43  * **Код рекомендации** — короткий код, который будет использоваться для добавления рекомендаций в сообщения.
44 44  * **Наименование рекомендации** — человекочитаемое имя, которое будет отображаться в списке настроенных рекомендаций.
45 -* **Алгоритм рекомендации** — выберите требуемый алгоритм из списка. Подробнее о поддерживаемых алгоритмах см. в [[отдельной статье>>doc:Main.General_information.Loymax_Loyalty.recommendation_systems.Commercial_recommendations.WebHome]].
45 +* **Алгоритм рекомендации** — выберите требуемый алгоритм из списка:
46 +** [[Популярные товары>>doc:Main.General_information.Loymax_Loyalty.recommendation_systems.Commercial_recommendations.WebHome||anchor="H41043B43343E44043844243C2241F43E43F44343B44F44043D44B43544243E43243044044B22"]]. Алгоритм, предлагающий самые популярные продукты из всего каталога, независимо от истории клиента.
47 +** [[Популярные товары в категории>>doc:Main.General_information.Loymax_Loyalty.recommendation_systems.Commercial_recommendations.WebHome||anchor="H41043B43343E44043844243C2241F43E43F44343B44F44043D44B43544243E43243044044B43243A43044243543343E44043843822"]]. Алгоритм, предлагающий самые популярные продукты из категорий, к которым проявлял интерес клиент (просматривал, покупал, заказывал).
48 +** [[Похожие товары>>doc:Main.General_information.Loymax_Loyalty.recommendation_systems.Commercial_recommendations.WebHome||anchor="H41043B43343E44043844243C2241F43E44543E43643843544243E43243044044B22"]]. Алгоритм, предлагающий продукты, похожие на те, к которым проявлял интерес клиент.
49 +** [[Совместные покупки>>doc:Main.General_information.Loymax_Loyalty.recommendation_systems.Commercial_recommendations.WebHome||anchor="H41043B43343E44043844243C2242143E43243C43544144243D44B43543F43E43A44343F43A43822"]]. Алгоритм, предлагающий продукты, которые часто покупают вместе с продуктами, к которым проявлял интерес клиент.
50 +** [[Персональные товарные рекомендации>>doc:Main.General_information.Loymax_Loyalty.recommendation_systems.Commercial_recommendations.WebHome||anchor="H41043B43343E44043844243C2241F43544044143E43D43043B44C43D44B43544243E43243044043D44B43544043543A43E43C43543D43443044643843822"]]. Алгоритм, прогнозирующий будущие покупки клиента исходя из его истории и предлагающий продукты на основании данного прогноза.
51 +** [[Ручные рекомендации>>||anchor="H41D43044144244043E43943A43044044344743D44B44544043543A43E43C43543D434430446438439"]]. Алгоритм, предлагающий продукты на основании правил соответствия категорий без использования модуля Loymax AI.
46 46  
47 47  Настройте параметры рекомендации. Набор доступных параметров зависит от выбранного алгоритма.
48 48  
... ... @@ -61,12 +61,13 @@
61 61  
62 62  Для ручных рекомендаций доступны следующие настройки:
63 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 +* **Рекомендовать продукты на основе региона** ([[image:1.png]]). В зависимости от данной настройки, рекомендуемые продукты будут фильтроваться по значению поля **Регион** либо в [[профиле клиента>>doc:Main.Using.Smart_Communications.Customers.All_clients.WebHome||anchor="H41F44043E44443843B44C43A43B43843543D442430"]], либо в последней web-сессии клиента.
71 +* **Период расчета** ([[image:2.png]]). Период, за который будут анализироваться чеки, чтобы определить продукты, чаще всего покупаемые вместе с целевыми.
72 +* **Рассчитывать на основе** ([[image:3.png]]). Аналогично остальным алгоритмам, источник, из которого Loymax Smart Communications будет брать целевые продукты.
73 +* **Целевая категория** ([[image:4.png]]). Категория, к продуктам из которой будут рассчитываться рекомендации. Чтобы добавить целевую категорию, нажмите **+ Добавить соответствие** в левом нижнем углу окна.
74 +* **Рекомендуемая категория** ([[image:5.png]]). Категория, продукты из которой будут предлагаться в качестве рекомендаций. К одной целевой категории можно выбрать несколько рекомендуемых. Чтобы добавить рекомендуемую категорию, нажмите **+ Добавить категорию**.
75 +* **Количество** ([[image:5.png]]). Количество продуктов из данной рекомендуемой категории, которое вернёт алгоритм. Количество задаётся отдельно для каждой рекомендуемой категории.
76 +* **Продвинутые настройки соответствия** ([[image:6.png]]). Нажмите **+ Добавить соответствие** в правой части окна, чтобы добавить поле, по которому требуется отфильтровать выдачу алгоритма. Продвинутые настройки соответствия задаются отдельно для каждой целевой категории (т.е. распространяются на все рекомендуемые категории).
70 70  
71 71  {{success}}
72 72  * Для полей с числовыми типами данных, а также с типом данных "дата" доступен флажок **Точное соответствие**. Если он установлен, продукт будет рекомендован только при полном совпадении значения со значением соответствующего атрибута целевого продукта.
... ... @@ -79,63 +79,62 @@
79 79  
80 80  Для отображения рекомендаций в сообщениях необходимо использовать конструкции [[шаблонизатора>>doc:Main.Using.Smart_Communications.Mass_mailings.Template_builder.WebHome]].
81 81  
82 -Рассмотрим пример добавления рекомендаций в сообщения. Мы хотим отправить клиентам email-рассылку с рекомендациями по алгоритму //Совместные покупки// (для этого в Системе создана рекомендация с кодом ##sov_pok##). У некоторых клиентов ещё нет истории покупок, поэтому для них будем выдавать рекомендации по алгоритму //Популярные товары// (для этого в Системе создана рекомендация с кодом ##popular##).
89 +Рассмотрим пример добавления рекомендаций в сообщения. Мы хотим отправить клиентам email-рассылку с рекомендациями по алгоритму [[Совместные покупки>>doc:Main.General_information.Loymax_Loyalty.recommendation_systems.Commercial_recommendations.WebHome||anchor="H41043B43343E44043844243C2242143E43243C43544144243D44B43543F43E43A44343F43A43822"]] (для этого в Системе создана рекомендация с кодом ##sov_pok##). У некоторых клиентов ещё нет истории покупок, поэтому для них будем выдавать рекомендации по алгоритму [[Популярные товары>>doc:Main.General_information.Loymax_Loyalty.recommendation_systems.Commercial_recommendations.WebHome||anchor="H41043B43343E44043844243C2241F43E43F44343B44F44043D44B43544243E43243044044B22"]] (для этого в Системе создана рекомендация с кодом ##popular##).
83 83  
84 -{{code}}
91 +1. Определим переменную ##Rec## и запишем в нее массив объектов Продукт (##product##), подобранных по алгоритму [[Совместные покупки>>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="H41043B43343E44043844243C2241F43E43F44343B44F44043D44B43544243E43243044044B22"]].
92 +
93 +{{code language="twig"}}
85 85  {% set Rec=client.recommendations.sov_pok %}
86 86  {% if not Rec or Rec|length < 3 %}
87 - {% set Rec=client.recommendations.popular %}
96 + {% set Rec=client.recommendations.popular %}
88 88  {% endif %}
89 89  
90 90  {{/code}}
91 91  
92 -Теперь переменная ##Rec## хранит массив объектов Продукт (##product##), подобранных по алгоритму //Совместные покупки//, а если клиент не совершил достаточного количества покупок, то по алгоритму //Популярные товары//.
101 +(% start="2" %)
102 +1. Отфильтруем массив рекомендованных продуктов, оставив только те, которые можно купить в интернет-магазине (значение логического пользовательского [[поля>>doc:Main.Using.Smart_Communications.Settings_SC.Data_field.WebHome]] ##eComAvailable## — ##true##). Кроме того, для вывода в сообщение нам понадобится не более 9 продуктов (три ряда по три продукта).
103 +Для этого определим две новые переменные: в массив ##filteredRec## будут записываться отфильтрованные рекомендации, а переменная ##count_recs## будет служить в качестве счётчика.
104 +1. Переберём все продукты и добавим в массив те из них, которые не были добавлены ранее (на случай, если модуль Loymax AI вернул один и тот же продукт дважды) и которые доступны для заказа в интернет-магазине.
105 +При добавлении продукта в массив отфильтрованных рекомендаций значение переменной-счётчика увеличивается на 1. Таким образом, есть два сценария выхода из цикла: либо мы перебрали все продукты, либо мы отобрали 9 подходящих для добавления в сообщение.
93 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}}
107 +{{code language="twig"}}
101 101  {% set count_recs=0 %}
102 102  {% set filteredRec=[] %}
103 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 %}
111 + {% if product not in filteredRec and product.eComAvailable=='Y' and count_recs < 9 %}
112 +  {% set filteredRec=filteredRec|merge([product]) %}
113 +  {% set count_recs=count_recs + 1 %}
114 + {% endif %}
108 108  {% endfor %}
109 109  {{/code}}
110 110  
111 -Теперь разобьём отфильтрованные рекомендации на группы по три.
118 +(% start="4" %)
119 +1. Разобьём отфильтрованные рекомендации на группы по три.
120 +1. Если в процессе фильтрации мы получили количество подходящих продуктов, не кратное 3, в последней группе будет меньше 3 продуктов (например, 7=3+3+1). Проверим и выведем в сообщение только те группы, в которых ровно три продукта.
121 +1. Для каждого продукта выведем наименование и изображение.
112 112  
113 -Если в процессе фильтрации мы получили количество подходящих продуктов, не кратное 3, в последней группе будет меньше 3 продуктов (например, 7=3+3+1). Проверим и выведем в сообщение только те группы, в которых ровно три продукта.
114 -
115 -Для каждого продукта выведем наименование и изображение.
116 -
117 -{{code}}
123 +{{code language="twig"}}
118 118  {% for batch in filteredRec|batch(3) %}
119 -    {% if batch|length==3 %}
120 -        {% for recommendation in batch %}}
121 - {{ recommendation.name }}
122 - {{ recommendation.image_url }}
125 +   {% if batch|length==3 %}
126 +      {% for recommendation in batch %}
127 + {{ recommendation.name }}
128 + {{ recommendation.image_url }}
123 123  {{/code}}
124 124  
125 -Далее реализуем такой сценарий:
131 +(% start="7" %)
132 +1. Далее реализуем такой сценарий:
133 +1*. если цена продукта менялась (значения полей текущей цены в интернет-магазине и старой цены не равны), выведем старую и новую цену;
134 +1*. если цена продукта не менялась и поле цены в интернет-магазине заполнено, выведем текущую цену;
135 +1*. если поле цены в интернет-магазине не заполнено, выведем "Цена уточняется".
126 126  
127 -* если цена продукта менялась (значения полей текущей цены в интернет-магазине и старой цены не равны), выведем старую и новую цену;
128 -* если цена продукта не менялась и поле цены в интернет-магазине заполнено, выведем текущую цену;
129 -* если поле цены в интернет-магазине не заполнено, выведем "Цена уточняется".
130 -
131 -{{code}}
137 +{{code language="twig"}}
132 132  {% if recommendation.priceim and recommendation.oldprice and recommendation.priceim != recommendation.oldprice %}
133 -  Цена: {{ recommendation.priceim }}
134 -  Старая цена: {{ recommendation.oldprice_19 }}
139 +   Цена: {{ recommendation.priceim }}
140  Старая цена: {{ recommendation.oldprice }}
135 135  {% elseif recommendation.priceim %}
136 -  Цена: {{ recommendation.priceim }}
142 +   Цена: {{ recommendation.priceim }}
137 137  {% else %}
138 -  Цена уточняется
144 +   Цена уточняется
139 139  {% endif %}
140 140  {% endfor %}
141 141  {{/code}}
... ... @@ -142,38 +142,36 @@
142 142  
143 143  В итоге получим следующую конструкцию:
144 144  
145 -{{showhide showmessage="Показать пример" hidemessage="Скрыть пример"}}
146 -{{code}}
151 +{{code language="twig"}}
147 147  {% set Rec=client.recommendations.sov_pok %}
148 148  {% if not Rec or Rec|length < 3 %}
149 - {% set Rec=client.recommendations.popular %}
154 + {% set Rec=client.recommendations.popular %}
150 150  {% endif %}
151 151  {% set count_recs=0 %}
152 152  {% set filteredRec=[] %}
153 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 %}
159 + {% if product not in filteredRec and product.eComAvailable=='Y' and count_recs < 9 %}
160 +  {% set filteredRec=filteredRec|merge([product]) %}
161 +  {% set count_recs=count_recs + 1 %}
162 + {% endif %}
158 158  {% endfor %}
159 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 +   {% if batch|length==3 %}
166 +      {% for recommendation in batch %}
167 + {{ recommendation.name }}
168 + {{ recommendation.image_url }}
169 + {% if recommendation.priceim and recommendation.oldprice and recommendation.priceim != recommendation.oldprice %}
165 165     Цена: {{ recommendation.priceim }}
166 -   Старая цена: {{ recommendation.oldprice_19 }}
167 - {% elseif recommendation.priceim %}
171 +   Старая цена: {{ recommendation.oldprice }}
172 + {% elseif recommendation.priceim %}
168 168     Цена: {{ recommendation.priceim }}
169 - {% else %}
174 + {% else %}
170 170     Цена уточняется
171 - {% endif %}
172 - {% endfor %}
173 - {% endif %}
176 + {% endif %}
177 + {% endfor %}
178 + {% endif %}
174 174  {% endfor %}
175 175  {{/code}}
176 -{{/showhide}}
177 177  
178 178  (% class="box" %)
179 179  (((
recommendation_manual.png
Размер
... ... @@ -1,1 +1,1 @@
1 -23.1 KB
1 +25.2 KB
Содержимое
6.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.arylov
Размер
... ... @@ -1,0 +1,1 @@
1 +1.1 KB
Содержимое

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