Исходный код вики Рекомендации
Скрыть последних авторов
| author | version | line-number | content |
|---|---|---|---|
| |
1.1 | 1 | (% class="lead" %) |
| |
16.1 | 2 | Функциональность рекомендаций позволяет выводить в текст сообщений продукты, подобранные по одному из поддерживаемых алгоритмов на основе предпочтений клиентов. |
| |
1.1 | 3 | |
| 4 | {{info}} | ||
| |
13.1 | 5 | Функциональность рекомендаций поддерживается только при настроенной интеграции с модулем [[Loymax AI>>doc:Main.General_information.Loymax_AI.WebHome]]. |
| |
1.1 | 6 | {{/info}} |
| 7 | |||
| |
10.1 | 8 | (% class="box" %) |
| 9 | ((( | ||
| 10 | **Содержание:** | ||
| 11 | |||
| 12 | {{toc depth="3" start="2"/}} | ||
| 13 | ))) | ||
| 14 | |||
| |
1.1 | 15 | Общий процесс генерации рекомендаций выглядит следующим образом: |
| 16 | |||
| 17 | 1. Маркетолог создаёт рекомендацию в АРМ. | ||
| 18 | 1. Маркетолог вставляет код рекомендации в сообщение. | ||
| |
14.2 | 19 | 1. При генерации сообщения Loymax Smart Communications отправляет в [[Loymax AI>>doc:Main.General_information.Loymax_AI.WebHome]] запрос, содержащий: |
| |
1.1 | 20 | 1*. идентификатор клиента, |
| 21 | 1*. название алгоритма рекомендации, | ||
| 22 | 1*. параметры алгоритма (например, сколько продуктов рекомендовать). | ||
| 23 | 1. Loymax AI возвращает массив продуктов, сформированный по указанному алгоритму. | ||
| |
11.1 | 24 | 1. Loymax Smart Communications отправляет персонализированное сообщение с рекомендациями. |
| |
1.1 | 25 | |
| |
20.1 | 26 | == Создание рекомендаций с использованием алгоритмов Loymax AI == |
| |
1.1 | 27 | |
| |
14.2 | 28 | Чтобы просмотреть список созданных рекомендаций, на панели слева перейдите в раздел **Рекомендации**. |
| |
5.2 | 29 | |
| 30 | |(% style="border-color:#ffffff; text-align:center" %){{lightbox image="recommendations.png" width="660"/}} | ||
| 31 | |||
| |
16.1 | 32 | В разделе **Рекомендации** доступны следующие действия: |
| |
5.2 | 33 | |
| |
6.2 | 34 | * Создать новую рекомендацию ([[image:1.png]]). |
| 35 | * Отсортировать таблицу по содержимому любого столбца ([[image:2.png]]). | ||
| 36 | * Редактировать, копировать или удалить рекомендацию ([[image:3.png]]). Вы также можете редактировать рекомендацию по клику на её код или наименование. | ||
| 37 | |||
| 38 | По нажатию кнопки создания новой или редактирования существующей рекомендации откроется окно редактирования рекомендации. | ||
| 39 | |||
| 40 | |(% style="border-color:white; width:70%" %)((( | ||
| |
6.3 | 41 | Заполните обязательные поля рекомендации: |
| 42 | |||
| |
10.1 | 43 | * **Код рекомендации** — короткий код, который будет использоваться для добавления рекомендаций в сообщения. |
| |
6.3 | 44 | * **Наименование рекомендации** — человекочитаемое имя, которое будет отображаться в списке настроенных рекомендаций. |
| |
16.1 | 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. | ||
| |
6.3 | 52 | |
| 53 | Настройте параметры рекомендации. Набор доступных параметров зависит от выбранного алгоритма. | ||
| 54 | |||
| 55 | * **Количество рекомендаций** — количество продуктов, которые будет возвращать модуль Loymax AI. | ||
| |
13.1 | 56 | * **Рассчитывать на основе** — источник, из которого 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"]]). |
| |
6.2 | 57 | )))|(% style="border-color:white; text-align:center; width:30%" %){{lightbox image="recommendation_edit.png" width="400"/}} |
| 58 | |||
| |
20.1 | 59 | == Создание ручных рекомендаций == |
| |
10.1 | 60 | |
| 61 | |(% style="border-color:white; width:70%" %)((( | ||
| 62 | Ручные рекомендации отличаются от всех остальных алгоритмов тем, что расчёт рекомендаций полностью осуществляется на стороне Loymax Smart Communications. Ручные рекомендации рассчитываются раз в сутки в соответствии с настроенными параметрами. | ||
| 63 | |||
| |
20.1 | 64 | При расчёте ручных рекомендаций Система проверяет заданный источник (поле **Рассчитывать на основе**) на наличие продуктов, относящихся к заданной **Целевой категории**. Затем Система подбирает продукты из **Рекомендованных категорий**, которые чаще всего присутствуют в чеках вместе с целевым продуктом. Алгоритм вернёт N наиболее популярных продуктов, где N — значение, заданное в поле **Количество**. |
| |
10.1 | 65 | |
| 66 | Рекомендации можно дополнительно ограничить: если заданы **Продвинутые настройки соответствия**, алгоритм будет предлагать только продукты, у которых значения заданных параметров соответствуют значениям параметров целевого продукта. | ||
| 67 | |||
| 68 | Для ручных рекомендаций доступны следующие настройки: | ||
| 69 | |||
| |
19.1 | 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]]). Нажмите **+ Добавить соответствие** в правой части окна, чтобы добавить поле, по которому требуется отфильтровать выдачу алгоритма. Продвинутые настройки соответствия задаются отдельно для каждой целевой категории (т.е. распространяются на все рекомендуемые категории). | ||
| |
10.1 | 77 | |
| 78 | {{success}} | ||
| |
20.1 | 79 | * Для полей с числовыми типами данных, а также с типом данных **дата** доступен флажок **Точное соответствие**. Если он установлен, продукт будет рекомендован только при полном совпадении значения со значением соответствующего атрибута целевого продукта. |
| 80 | * Для полей с типами данных **строка** и **логическое** всегда требуется точное соответствие. | ||
| |
13.1 | 81 | * Если флажок **Точное соответствие** снят, продукт попадёт в рекомендации, если он отличается от целевого продукта по значению атрибута не более чем на 15%. |
| |
10.1 | 82 | {{/success}} |
| 83 | )))|(% style="border-color:white; text-align:center; width:30%" %){{lightbox image="recommendation_manual.png" width="400"/}} | ||
| 84 | |||
| |
6.3 | 85 | == Подстановка рекомендаций в сообщение == |
| |
10.1 | 86 | |
| 87 | Для отображения рекомендаций в сообщениях необходимо использовать конструкции [[шаблонизатора>>doc:Main.Using.Smart_Communications.Mass_mailings.Template_builder.WebHome]]. | ||
| 88 | |||
| |
20.1 | 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##). |
| |
10.1 | 90 | |
| |
20.1 | 91 | Вёрстка письма предполагает размещение от 3 до 9 карточек продукта — от одного до трёх рядов по три карточки. Рекомендовать можно только те продукты, которые можно заказать в Интернет-магазине. Также необходимо вывести в сообщение цену продукта, а если цена менялась — старую и новую цену. |
| 92 | |||
| |
16.1 | 93 | 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"]]. |
| 94 | |||
| 95 | {{code language="twig"}} | ||
| |
10.1 | 96 | {% set Rec=client.recommendations.sov_pok %} |
| 97 | {% if not Rec or Rec|length < 3 %} | ||
| |
16.1 | 98 | {% set Rec=client.recommendations.popular %} |
| |
10.1 | 99 | {% endif %} |
| 100 | |||
| 101 | {{/code}} | ||
| 102 | |||
| |
16.1 | 103 | (% start="2" %) |
| |
20.1 | 104 | 1. Отфильтруем массив рекомендованных продуктов, оставив только те, которые можно купить в интернет-магазине (значение логического пользовательского [[поля>>doc:Main.Using.Smart_Communications.Settings_SC.Data_field.WebHome]] ##eComAvailable## — ##true##). Для этого определим переменную ##filteredRec##, в которую будут записываться отфильтрованные рекомендации. |
| 105 | 1. Для вывода в сообщение понадобится не более 9 продуктов (три ряда по три продукта). Определим переменную ##count_recs##, которая будет служить в качестве счётчика: при каждом добавлении продукта в массив отфильтрованных рекомендаций значение счётчика будет увеличиваться на 1. | ||
| 106 | 1. Переберём все продукты и добавим в массив те из них, которые не были добавлены ранее (на случай, если модуль Loymax AI вернул один и тот же продукт дважды) и которые доступны для заказа в интернет-магазине. Также проверим значение счётчика и добавим продукт, только если ещё не набралось 9 рекомендаций. | ||
| |
10.1 | 107 | |
| |
16.1 | 108 | {{code language="twig"}} |
| |
11.1 | 109 | {% set count_recs=0 %} |
| 110 | {% set filteredRec=[] %} | ||
| 111 | {% for product in Rec %} | ||
| |
16.1 | 112 | {% if product not in filteredRec and product.eComAvailable=='Y' and count_recs < 9 %} |
| 113 | {% set filteredRec=filteredRec|merge([product]) %} | ||
| 114 | {% set count_recs=count_recs + 1 %} | ||
| 115 | {% endif %} | ||
| |
11.1 | 116 | {% endfor %} |
| 117 | {{/code}} | ||
| |
10.1 | 118 | |
| |
20.1 | 119 | (% start="5" %) |
| |
16.1 | 120 | 1. Разобьём отфильтрованные рекомендации на группы по три. |
| |
20.1 | 121 | 1. Если в процессе фильтрации получилось количество подходящих продуктов, не кратное 3, в последней группе будет меньше 3 продуктов (например, 7=3+3+1). Проверим и выведем в сообщение только те группы, в которых ровно три продукта. |
| |
16.1 | 122 | 1. Для каждого продукта выведем наименование и изображение. |
| |
10.1 | 123 | |
| |
16.1 | 124 | {{code language="twig"}} |
| |
11.1 | 125 | {% for batch in filteredRec|batch(3) %} |
| |
16.1 | 126 | {% if batch|length==3 %} |
| 127 | {% for recommendation in batch %} | ||
| 128 | {{ recommendation.name }} | ||
| 129 | {{ recommendation.image_url }} | ||
| |
11.1 | 130 | {{/code}} |
| |
10.1 | 131 | |
| |
20.1 | 132 | (% start="8" %) |
| |
16.1 | 133 | 1. Далее реализуем такой сценарий: |
| 134 | 1*. если цена продукта менялась (значения полей текущей цены в интернет-магазине и старой цены не равны), выведем старую и новую цену; | ||
| 135 | 1*. если цена продукта не менялась и поле цены в интернет-магазине заполнено, выведем текущую цену; | ||
| 136 | 1*. если поле цены в интернет-магазине не заполнено, выведем "Цена уточняется". | ||
| |
10.1 | 137 | |
| |
16.1 | 138 | {{code language="twig"}} |
| |
11.1 | 139 | {% if recommendation.priceim and recommendation.oldprice and recommendation.priceim != recommendation.oldprice %} |
| |
16.1 | 140 | Цена: {{ recommendation.priceim }} |
| 141 | Старая цена: {{ recommendation.oldprice }} | ||
| |
11.1 | 142 | {% elseif recommendation.priceim %} |
| |
16.1 | 143 | Цена: {{ recommendation.priceim }} |
| |
11.1 | 144 | {% else %} |
| |
16.1 | 145 | Цена уточняется |
| |
11.1 | 146 | {% endif %} |
| 147 | {% endfor %} | ||
| 148 | {{/code}} | ||
| |
10.1 | 149 | |
| |
11.1 | 150 | В итоге получим следующую конструкцию: |
| 151 | |||
| |
16.1 | 152 | {{code language="twig"}} |
| |
11.1 | 153 | {% set Rec=client.recommendations.sov_pok %} |
| 154 | {% if not Rec or Rec|length < 3 %} | ||
| |
16.1 | 155 | {% set Rec=client.recommendations.popular %} |
| |
11.1 | 156 | {% endif %} |
| 157 | {% set count_recs=0 %} | ||
| 158 | {% set filteredRec=[] %} | ||
| 159 | {% for product in Rec %} | ||
| |
16.1 | 160 | {% if product not in filteredRec and product.eComAvailable=='Y' and count_recs < 9 %} |
| 161 | {% set filteredRec=filteredRec|merge([product]) %} | ||
| 162 | {% set count_recs=count_recs + 1 %} | ||
| 163 | {% endif %} | ||
| |
11.1 | 164 | {% endfor %} |
| 165 | {% for batch in filteredRec|batch(3) %} | ||
| |
16.1 | 166 | {% if batch|length==3 %} |
| 167 | {% for recommendation in batch %} | ||
| 168 | {{ recommendation.name }} | ||
| 169 | {{ recommendation.image_url }} | ||
| 170 | {% if recommendation.priceim and recommendation.oldprice and recommendation.priceim != recommendation.oldprice %} | ||
| |
11.1 | 171 | Цена: {{ recommendation.priceim }} |
| |
16.1 | 172 | Старая цена: {{ recommendation.oldprice }} |
| 173 | {% elseif recommendation.priceim %} | ||
| |
11.1 | 174 | Цена: {{ recommendation.priceim }} |
| |
16.1 | 175 | {% else %} |
| |
11.1 | 176 | Цена уточняется |
| |
16.1 | 177 | {% endif %} |
| 178 | {% endfor %} | ||
| 179 | {% endif %} | ||
| |
11.1 | 180 | {% endfor %} |
| 181 | {{/code}} | ||
| |
12.1 | 182 | |
| 183 | (% class="box" %) | ||
| 184 | ((( | ||
| 185 | **Читайте также:** | ||
| 186 | |||
| 187 | * [[Рекомендации>>doc:Main.General_information.Loymax_Loyalty.recommendation_systems.Commercial_recommendations.WebHome]] | ||
| 188 | * [[Шаблонизатор сообщений>>doc:Main.Using.Smart_Communications.Mass_mailings.Template_builder.WebHome]] | ||
| 189 | ))) |