Изменения документа Товарные рекомендации
<
>
отредактировано Андрей Рылов
на 29/12/2025 10:52
на 29/12/2025 10:52
отредактировано Андрей Рылов
на 23/12/2025 09:36
на 23/12/2025 09:36
Изменить комментарий:
Загрузить новое изображение 3.png
Комментарий
-
Свойства страницы (2 изменено, 0 добавлено, 0 удалено)
-
Вложения (0 изменено, 0 добавлено, 4 удалено)
Подробности
- Свойства страницы
-
- Название
-
... ... @@ -1,1 +1,1 @@ 1 - Рекомендации1 +Recommendations - Содержимое
-
... ... @@ -1,17 +1,10 @@ 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 - 15 15 Общий процесс генерации рекомендаций выглядит следующим образом: 16 16 17 17 1. Маркетолог создаёт рекомендацию в АРМ. ... ... @@ -21,159 +21,8 @@ 21 21 1*. название алгоритма рекомендации, 22 22 1*. параметры алгоритма (например, сколько продуктов рекомендовать). 23 23 1. Loymax AI возвращает массив продуктов, сформированный по указанному алгоритму. 24 -1. Loymax Smart Communications отправляет персонализированное сообщение с рекомендациями.17 +1. Loymax Smart Communications отправляет сообщение с рекомендациями. 25 25 26 26 == Настройка рекомендаций == 27 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 будет брать продукты (для расчёта рекомендаций по алгоритмам //Совместные покупки//, //Похожие товары//) или категории (для расчёта рекомендаций по алгоритму //Популярные товары в категории//). 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 -Для полей с типами данных "строка" и "логическое" всегда требуется точное соответствие. 75 - 76 -Если флажок **Точное соответствие** снят, продукт попадёт в рекомендации, если он отличается от целевого продукта по значению атрибута не более чем на 15%. 77 -{{/success}} 78 -)))|(% style="border-color:white; text-align:center; width:30%" %){{lightbox image="recommendation_manual.png" width="400"/}} 79 - 80 -== Подстановка рекомендаций в сообщение == 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 -Отфильтруем массив рекомендованных продуктов, оставив только те, которые можно купить в интернет-магазине (значение логического пользовательского поля ##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}} 21 +
- 4.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.arylov - Размер
-
... ... @@ -1,1 +1,0 @@ 1 -1.4 KB - Содержимое
- 5.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.arylov - Размер
-
... ... @@ -1,1 +1,0 @@ 1 -1.4 KB - Содержимое
- recommendation_edit.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.arylov - Размер
-
... ... @@ -1,1 +1,0 @@ 1 -9.5 KB - Содержимое
- recommendation_manual.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.arylov - Размер
-
... ... @@ -1,1 +1,0 @@ 1 -23.1 KB - Содержимое