Изменения документа Товарные рекомендации
<
>
отредактировано Андрей Рылов
на 24/12/2025 06:27
на 24/12/2025 06:27
отредактировано Андрей Рылов
на 16/01/2026 10:13
на 16/01/2026 10:13
Изменить комментарий:
К данной версии нет комментариев
Комментарий
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
-
Вложения (1 изменено, 3 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -1,24 +1,31 @@ 1 1 (% class="lead" %) 2 -Функционал рекомендаций позволяет выводить в текст сообщений товары, подобранные по одному из поддерживаемых алгоритмов на основе пр ошлых действийданногоклиента.2 +Функциональность рекомендаций позволяет выводить в текст сообщений товары, подобранные по одному из поддерживаемых алгоритмов на основе предпочтений клиентов. 3 3 4 4 {{info}} 5 -Функционал рекомендаций поддерживается только при настроенной интеграции с модулем Loymax AI. 5 +Функциональность рекомендаций поддерживается только при настроенной интеграции с модулем [[Loymax AI>>doc:Main.General_information.Loymax_AI.WebHome]]. 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. Маркетолог создаёт рекомендацию в АРМ. 11 11 1. Маркетолог вставляет код рекомендации в сообщение. 12 -1. При генерации сообщения Loymax Smart Communications отправляет в Loymax AI запрос, содержащий: 19 +1. При генерации сообщения Loymax Smart Communications отправляет в [[Loymax AI>>doc:Main.General_information.Loymax_AI.WebHome]] запрос, содержащий: 13 13 1*. идентификатор клиента, 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 21 -Чтобы просмотреть список созданных рекомендаций, на панели слева нажмитенаузел**Рекомендации**.28 +Чтобы просмотреть список созданных рекомендаций, на панели слева перейдите в раздел **Рекомендации**. 22 22 23 23 |(% style="border-color:#ffffff; text-align:center" %){{lightbox image="recommendations.png" width="660"/}} 24 24 ... ... @@ -31,7 +31,147 @@ 31 31 По нажатию кнопки создания новой или редактирования существующей рекомендации откроется окно редактирования рекомендации. 32 32 33 33 |(% style="border-color:white; width:70%" %)((( 34 -аа 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"]]). 35 35 )))|(% style="border-color:white; text-align:center; width:30%" %){{lightbox image="recommendation_edit.png" width="400"/}} 36 36 37 -аа 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 +)))
- recommendations.png
-
- Размер
-
... ... @@ -1,1 +1,1 @@ 1 - 14.2 KB1 +23.1 KB - Содержимое
- 4.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.arylov - Размер
-
... ... @@ -1,0 +1,1 @@ 1 +1.4 KB - Содержимое
- 5.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.arylov - Размер
-
... ... @@ -1,0 +1,1 @@ 1 +1.4 KB - Содержимое
- recommendation_manual.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.arylov - Размер
-
... ... @@ -1,0 +1,1 @@ 1 +23.1 KB - Содержимое