Изменения документа Товарные рекомендации
<
>
отредактировано Андрей Рылов
на 16/01/2026 07:38
на 16/01/2026 07:38
отредактировано Андрей Рылов
на 30/01/2026 10:24
на 30/01/2026 10:24
Изменить комментарий:
Загрузить новое изображение 6.png
Комментарий
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
-
Вложения (0 изменено, 1 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -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]]. ... ... @@ -16,7 +16,7 @@ 16 16 17 17 1. Маркетолог создаёт рекомендацию в АРМ. 18 18 1. Маркетолог вставляет код рекомендации в сообщение. 19 -1. При генерации сообщения Loymax Smart Communications отправляет в Loymax AI запрос, содержащий: 19 +1. При генерации сообщения Loymax Smart Communications отправляет в [[Loymax AI>>doc:Main.General_information.Loymax_AI.WebHome]] запрос, содержащий: 20 20 1*. идентификатор клиента, 21 21 1*. название алгоритма рекомендации, 22 22 1*. параметры алгоритма (например, сколько продуктов рекомендовать). ... ... @@ -25,11 +25,11 @@ 25 25 26 26 == Настройка рекомендаций == 27 27 28 -Чтобы просмотреть список созданных рекомендаций, на панели слева нажмитенаузел**Рекомендации**.28 +Чтобы просмотреть список созданных рекомендаций, на панели слева перейдите в раздел **Рекомендации**. 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 ... ... @@ -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##).88 +Рассмотрим пример добавления рекомендаций в сообщения. Мы хотим отправить клиентам 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}} 90 +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"]]. 91 + 92 +{{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 %} 95 + {% set Rec=client.recommendations.popular %} 88 88 {% endif %} 89 89 90 90 {{/code}} 91 91 92 -Теперь переменная ##Rec## хранит массив объектов Продукт (##product##), подобранных по алгоритму //Совместные покупки//, а если клиент не совершил достаточного количества покупок, то по алгоритму //Популярные товары//. 100 +(% start="2" %) 101 +1. Отфильтруем массив рекомендованных продуктов, оставив только те, которые можно купить в интернет-магазине (значение логического пользовательского [[поля>>doc:Main.Using.Smart_Communications.Settings_SC.Data_field.WebHome]] ##eComAvailable## — ##true##). Кроме того, для вывода в сообщение нам понадобится не более 9 продуктов (три ряда по три продукта). 102 +Для этого определим две новые переменные: в массив ##filteredRec## будут записываться отфильтрованные рекомендации, а переменная ##count_recs## будет служить в качестве счётчика. 103 +1. Переберём все продукты и добавим в массив те из них, которые не были добавлены ранее (на случай, если модуль Loymax AI вернул один и тот же продукт дважды) и которые доступны для заказа в интернет-магазине. 104 +При добавлении продукта в массив отфильтрованных рекомендаций значение переменной-счётчика увеличивается на 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}} 106 +{{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 %} 110 + {% if product not in filteredRec and product.eComAvailable=='Y' and count_recs < 9 %} 111 + {% set filteredRec=filteredRec|merge([product]) %} 112 + {% set count_recs=count_recs + 1 %} 113 + {% endif %} 108 108 {% endfor %} 109 109 {{/code}} 110 110 111 -Теперь разобьём отфильтрованные рекомендации на группы по три. 117 +(% start="4" %) 118 +1. Разобьём отфильтрованные рекомендации на группы по три. 119 +1. Если в процессе фильтрации мы получили количество подходящих продуктов, не кратное 3, в последней группе будет меньше 3 продуктов (например, 7=3+3+1). Проверим и выведем в сообщение только те группы, в которых ровно три продукта. 120 +1. Для каждого продукта выведем наименование и изображение. 112 112 113 -Если в процессе фильтрации мы получили количество подходящих продуктов, не кратное 3, в последней группе будет меньше 3 продуктов (например, 7=3+3+1). Проверим и выведем в сообщение только те группы, в которых ровно три продукта. 114 - 115 -Для каждого продукта выведем наименование и изображение. 116 - 117 -{{code}} 122 +{{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 }}124 + {% if batch|length==3 %} 125 + {% for recommendation in batch %} 126 + {{ recommendation.name }} 127 + {{ recommendation.image_url }} 123 123 {{/code}} 124 124 125 -Далее реализуем такой сценарий: 130 +(% start="7" %) 131 +1. Далее реализуем такой сценарий: 132 +1*. если цена продукта менялась (значения полей текущей цены в интернет-магазине и старой цены не равны), выведем старую и новую цену; 133 +1*. если цена продукта не менялась и поле цены в интернет-магазине заполнено, выведем текущую цену; 134 +1*. если поле цены в интернет-магазине не заполнено, выведем "Цена уточняется". 126 126 127 -* если цена продукта менялась (значения полей текущей цены в интернет-магазине и старой цены не равны), выведем старую и новую цену; 128 -* если цена продукта не менялась и поле цены в интернет-магазине заполнено, выведем текущую цену; 129 -* если поле цены в интернет-магазине не заполнено, выведем "Цена уточняется". 130 - 131 -{{code}} 136 +{{code language="twig"}} 132 132 {% if recommendation.priceim and recommendation.oldprice and recommendation.priceim != recommendation.oldprice %} 133 - Цена: {{ recommendation.priceim }} 134 - Старая цена: {{ recommendation.oldprice _19}}138 + Цена: {{ recommendation.priceim }} 139 + Старая цена: {{ recommendation.oldprice }} 135 135 {% elseif recommendation.priceim %} 136 - Цена: {{ recommendation.priceim }} 141 + Цена: {{ recommendation.priceim }} 137 137 {% else %} 138 - Цена уточняется 143 + Цена уточняется 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}} 150 +{{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 %} 153 + {% 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 %} 158 + {% if product not in filteredRec and product.eComAvailable=='Y' and count_recs < 9 %} 159 + {% set filteredRec=filteredRec|merge([product]) %} 160 + {% set count_recs=count_recs + 1 %} 161 + {% 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 %}164 + {% if batch|length==3 %} 165 + {% for recommendation in batch %} 166 + {{ recommendation.name }} 167 + {{ recommendation.image_url }} 168 + {% if recommendation.priceim and recommendation.oldprice and recommendation.priceim != recommendation.oldprice %} 165 165 Цена: {{ recommendation.priceim }} 166 - Старая цена: {{ recommendation.oldprice _19}}167 - {% elseif recommendation.priceim %}170 + Старая цена: {{ recommendation.oldprice }} 171 + {% elseif recommendation.priceim %} 168 168 Цена: {{ recommendation.priceim }} 169 - {% else %}173 + {% else %} 170 170 Цена уточняется 171 - {% endif %}172 - {% endfor %}173 - {% endif %}175 + {% endif %} 176 + {% endfor %} 177 + {% endif %} 174 174 {% endfor %} 175 175 {{/code}} 176 -{{/showhide}} 177 177 178 178 (% class="box" %) 179 179 (((
- 6.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.arylov - Размер
-
... ... @@ -1,0 +1,1 @@ 1 +1.1 KB - Содержимое