Loymax, 2026

From version 14.1
edited by Andrej Rylov
on 2026/02/11 08:30
Change comment: There is no comment for this version
To version 13.1
edited by Andrej Rylov
on 2026/02/11 07:38
Change comment: Renamed from xwiki:Main.General_information.Loymax_Loyalty.Recommendation_systems.Commercial_recommendations.WebHome

Summary

Details

Page properties
Parent
... ... @@ -1,1 +1,1 @@
1 -Main.General_information.Loymax_AI.WebHome
1 +Main.General_information.Loymax_Loyalty.Recommendation_systems.WebHome
Content
... ... @@ -46,17 +46,46 @@
46 46  
47 47  Currently, 5 algorithms are available for generating product recommendations:
48 48  
49 -* **[[Popular Products>>doc:||anchor="01"]]**
50 -* **[[Popular Products in Category>>doc:||anchor="02"]]**
51 -* **[[Bought Together>>doc:||anchor="03"]]**
52 -* **[[Similar Products>>doc:||anchor="04"]]**
53 -* **[[Personalized Product Recommendations>>doc:||anchor="05"]]**
49 +(% class="table-bordered table-sticky" %)
50 +(% class="info" %)|(% style="text-align:center; width:58px" %)**No.**|(% style="text-align:center; width:409px" %)**Name**|(% style="text-align:center; width:495px" %)**Metavariable/macro for use in [[Smart Communications campaigns>>doc:Main.Smart_Communications.SMC_Use.Mass_messaging.WebHome]]**|(% style="text-align:center; width:477px" %)**Example of macro output in final message (shown for email)**
51 +|(% style="width:58px" %)1.|(% style="width:409px" %)**[[Popular Products>>doc:||anchor="01"]]**|(% style="width:495px" %){% set clientRecommendation = client.recommendations('**Popular**') %}
52 +{% for recommendation in clientRecommendation~|get(3) %}
53 +<br>~{~{recommendation.name}} 
54 +{% endfor %}|(% style="width:477px" %)(((
55 +Product Name 1
56 +Product Name 2
57 +Product Name 3
58 +)))
59 +|(% style="width:58px" %)2.|(% style="width:409px" %)**[[Popular Products in Category>>doc:||anchor="02"]]**|(% style="width:495px" %){% set clientRecommendation = client.recommendations('**PopularsCategory**') %}
60 +{% for recommendation in clientRecommendation~|get(3) %}
61 +<br>~{~{recommendation.name}} 
62 +{% endfor %}|(% style="width:477px" %)Product Name 1
63 +Product Name 2
64 +Product Name 3
65 +|(% style="width:58px" %)3.|(% style="width:409px" %)**[[Bought Together>>doc:||anchor="03"]]**|(% style="width:495px" %){% set clientRecommendation = client.recommendations('**BoughtTogether**') %}
66 +{% for recommendation in clientRecommendation~|get(3) %}
67 +<br>~{~{recommendation.name}} 
68 +{% endfor %}|(% style="width:477px" %)Product Name 1
69 +Product Name 2
70 +Product Name 3
71 +|(% style="width:58px" %)4.|(% style="width:409px" %)**[[Similar Products>>doc:||anchor="04"]]**|(% style="width:495px" %){% set clientRecommendation = client.recommendations('**SimilarProducts**') %}
72 +{% for recommendation in clientRecommendation~|get(3) %}
73 +<br>~{~{recommendation.name}} 
74 +{% endfor %}|(% style="width:477px" %)Product Name 1
75 +Product Name 2
76 +Product Name 3
77 +|(% style="width:58px" %)5.|(% style="width:409px" %)**[[Personalized Product Recommendations>>doc:||anchor="05"]]**|(% style="width:495px" %){% set clientRecommendation = client.recommendations('**RelatedPurchases**') %}
78 +{% for recommendation in clientRecommendation~|get(3) %}
79 +<br>~{~{recommendation.name}} 
80 +{% endfor %}|(% style="width:477px" %)Product Name 1
81 +Product Name 2
82 +Product Name 3
54 54  
55 55  (% class="box infomessage" %)
56 56  (((
57 57  **Notes:**
58 58  
59 -1. Since the product recommendation macro operates on a list of recommendations, specific items are inserted into the message body using the control structures shown in the table above. See an example of the **Product Recommendations** module control structure [[here>>doc:Main.Smart_Communications.SMC_Use.Recommendations.WebHome||anchor="HDisplayingrecommendationsinmessages"]].
88 +1. Since the product recommendation macro operates on a list of recommendations, specific items are inserted into the message body using the control structures shown in the table above. See an example of the **Product Recommendations** module control structure [[here>>doc:Main.General_information.Loymax_AI.Commercial_recommendations.Control_structure.WebHome]].
60 60  1. API methods for integration into client-facing services ([[Mobile Application>>doc:Main.General_information.Additional_services.Mobile_app.WebHome]], [[Personal Account>>doc:Main.General_information.Additional_services.Personal_account.WebHome]]) are provided upon separate request to Loymax staff.
61 61  )))
62 62  
... ... @@ -88,17 +88,17 @@
88 88  
89 89  (% class="table-bordered" style="width:1218px" %)
90 90  (% class="info" %)|(% style="text-align:center; width:399px" %)**Campaign**|(% style="text-align:center; width:370px" %)**Trigger**|(% style="text-align:center; width:446px" %)**Use Case**
91 -|(% style="width:399px" %)[[**Abandoned View**>>doc:Main.Smart_Communications.SMC_Use.Campaigns.Triggers.WebHome||anchor="abandonedview"]]|(% style="width:370px" %)Product viewed but not purchased|(% style="width:446px" %)(((
120 +|(% style="width:399px" %)[[**Abandoned View**>>doc:Main.Usage.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41144043E44843543D43D44B43943F44043E44143C43E442440"]]|(% style="width:370px" %)Product viewed but not purchased|(% style="width:446px" %)(((
92 92  Customer viewed a product page and then left the site.
93 93  
94 94  After a defined time interval (t), send an email featuring the most popular products.
95 95  )))
96 -|(% style="width:399px" %)[[**Abandoned Category View**>>doc:Main.Usage.Smart_Communications.Campaigns.Triggers.WebHome||anchor="abandonedcatview"]]|(% style="width:370px" %)Category viewed but nothing purchased|(% style="width:446px" %)(((
125 +|(% style="width:399px" %)[[**Abandoned Category View**>>doc:Main.Usage.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41144043E44843543D43D44B43943F44043E44143C43E44244043A43044243543343E440438438"]]|(% style="width:370px" %)Category viewed but nothing purchased|(% style="width:446px" %)(((
97 97  Customer browsed a product category and then left the site.
98 98  
99 99  After a defined time interval (t), send an email featuring the most popular products.
100 100  )))
101 -|(% style="width:399px" %)[[**Abandoned Cart**>>doc:Main.Usage.Smart_Communications.Campaigns.Triggers.WebHome||anchor="abandonedcart"]]|(% style="width:370px" %)Product added to cart but not purchased|(% style="width:446px" %)(((
130 +|(% style="width:399px" %)[[**Abandoned Cart**>>doc:Main.Usage.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41144043E44843543D43D43044F43A43E44043743843D430"]]|(% style="width:370px" %)Product added to cart but not purchased|(% style="width:446px" %)(((
102 102  Customer added a product to the cart and then left the site.
103 103  
104 104  After a defined time interval (t), send a reminder email about the abandoned cart along with the most popular products.
... ... @@ -108,11 +108,11 @@
108 108  
109 109  (% class="table-bordered" style="width:1218px" %)
110 110  (% class="info" %)|(% style="text-align:center; width:399px" %)**Campaign**|(% style="text-align:center; width:370px" %)**Trigger**|(% style="text-align:center; width:446px" %)**Use Case**
111 -|(% style="width:399px" %)[[**Website Homepage**>>doc:Main.Usage.Smart_Communications.Campaigns.Triggers.WebHome||anchor="site_visit"]]|(% style="width:370px" %)Website visit|(% style="width:446px" %)**Popular Products** section.
140 +|(% style="width:399px" %)[[**Website Homepage**>>doc:Main.Usage.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41A43B43843543D44243F43E44143544243843B441430439442"]]|(% style="width:370px" %)Website visit|(% style="width:446px" %)**Popular Products** section.
112 112  Customer is on the homepage. The most popular products are displayed.
113 -|(% style="width:399px" %)[[**Current Product Page View**>>doc:Main.Usage.Smart_Communications.Campaigns.Triggers.WebHome||anchor="product_view"]]|(% style="width:370px" %)Product view|(% style="width:446px" %)**Popular Products** section.
142 +|(% style="width:399px" %)[[**Current Product Page View**>>doc:Main.Usage.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41A43B43843543D44243F43E44143C43E44244043543B43F44043E43444343A442A043D430441430439442435"]]|(% style="width:370px" %)Product view|(% style="width:446px" %)**Popular Products** section.
114 114  Customer is viewing a product. The most popular products are displayed.
115 -|(% style="width:399px" %)[[**Current Category Page View**>>doc:Main.Usage.Smart_Communications.Campaigns.Triggers.WebHome||anchor="product_view"]]|(% style="width:370px" %)Category view|(% style="width:446px" %)**Popular Products** section.
144 +|(% style="width:399px" %)[[**Current Category Page View**>>doc:Main.Usage.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41A43B43843543D44243F43E44143C43E44244043543B43F44043E43444343A44243E43244344E43A43044243543343E44043844EA043D430441430439442435"]]|(% style="width:370px" %)Category view|(% style="width:446px" %)**Popular Products** section.
116 116  Customer is browsing a category. The most popular products are displayed.
117 117  
118 118  ==== 4. General concept of the Popular Products algorithm ====
... ... @@ -140,8 +140,8 @@
140 140  
141 141  (% class="table-bordered" style="width:1218px" %)
142 142  (% class="info" %)|(% style="text-align:center; width:399px" %)**Campaign**|(% style="text-align:center; width:370px" %)**Trigger**|(% style="text-align:center; width:446px" %)**Use Case**
143 -|(% style="width:399px" %)[[**Abandoned View**>>doc:Main.Smart_Communications.SMC_Use.Campaigns.Triggers.WebHome||anchor="abandonedview"]]|(% style="width:370px" %)Product viewed but not purchased|(% style="width:446px" %)Send an email after X days recommending the most popular products in the same category.
144 -|(% style="width:399px" %)[[**Abandoned Cart**>>doc:Main.Usage.Smart_Communications.Campaigns.Triggers.WebHome||anchor="abandonedcart"]]|(% style="width:370px" %)Product added to cart but not purchased|(% style="width:446px" %)Send an email after X days recommending the most popular products in the same category.
172 +|(% style="width:399px" %)[[**Abandoned View**>>doc:Main.Usage.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41144043E44843543D43D44B43943F44043E44143C43E442440"]]|(% style="width:370px" %)Product viewed but not purchased|(% style="width:446px" %)Send an email after X days recommending the most popular products in the same category.
173 +|(% style="width:399px" %)[[**Abandoned Cart**>>doc:Main.Usage.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41144043E44843543D43D43044F43A43E44043743843D430"]]|(% style="width:370px" %)Product added to cart but not purchased|(% style="width:446px" %)Send an email after X days recommending the most popular products in the same category.
145 145  
146 146  ==== 3. Use cases for the Popular Products in Category algorithm in website personalization ====
147 147  
... ... @@ -149,7 +149,7 @@
149 149  
150 150  (% class="table-bordered" style="width:1218px" %)
151 151  (% class="info" %)|(% style="text-align:center; width:399px" %)**Campaign**|(% style="text-align:center; width:369px" %)**Trigger**|(% style="text-align:center; width:447px" %)**Use Case**
152 -|(% style="width:399px" %)[[**Current Product Page View**>>doc:Main.Usage.Smart_Communications.Campaigns.Triggers.WebHome||anchor="product_view"]]|(% style="width:369px" %)Product view|(% style="width:447px" %)**Compared With This Product** section.
181 +|(% style="width:399px" %)[[**Current Product Page View**>>doc:Main.Usage.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41A43B43843543D44243F43E44143C43E44244043543B43F44043E43444343A442A043D430441430439442435"]]|(% style="width:369px" %)Product view|(% style="width:447px" %)**Compared With This Product** section.
153 153  Recommend popular products from the same category based on the currently viewed item.
154 154  
155 155  ==== 4. General concept of the algorithm ====
... ... @@ -174,14 +174,14 @@
174 174  
175 175  (% class="table-bordered" style="width:1218px" %)
176 176  (% class="info" %)|(% style="text-align:center; width:399px" %)**Campaign**|(% style="text-align:center; width:370px" %)**Trigger**|(% style="text-align:center; width:446px" %)**Use Case**
177 -|(% style="width:399px" %)[[**Abandoned View**>>doc:Main.Usage.Smart_Communications.Campaigns.Triggers.WebHome||anchor="abandonedview"]]|(% style="width:370px" %)Product viewed but not ordered|(% style="width:446px" %)Send an email after X days with alternative products similar to those viewed by the customer.
178 -|(% style="width:399px" %)[[**Abandoned Cart**>>doc:Main.Usage.Smart_Communications.Campaigns.Triggers.WebHome||anchor="abandonedcart"]]|(% style="width:370px" %)Product added to cart but not purchased|(% style="width:446px" %)Send an email after X days with alternative products similar to those viewed by the customer.
206 +|(% style="width:399px" %)[[**Abandoned View**>>doc:Main.Usage.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41144043E44843543D43D44B43943F44043E44143C43E442440"]]|(% style="width:370px" %)Product viewed but not ordered|(% style="width:446px" %)Send an email after X days with alternative products similar to those viewed by the customer.
207 +|(% style="width:399px" %)[[**Abandoned Cart**>>doc:Main.Usage.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41144043E44843543D43D43044F43A43E44043743843D430"]]|(% style="width:370px" %)Product added to cart but not purchased|(% style="width:446px" %)Send an email after X days with alternative products similar to those viewed by the customer.
179 179  
180 180  ==== 3. Use cases for the Similar Products algorithm in website personalization ====
181 181  
182 182  (% class="table-bordered" style="width:1218px" %)
183 183  (% class="info" %)|(% style="text-align:center; width:399px" %)**Campaign**|(% style="text-align:center; width:369px" %)**Trigger**|(% style="text-align:center; width:447px" %)**Use Case**
184 -|(% style="width:399px" %)[[**Current Product Page View**>>doc:Main.Usage.Smart_Communications.Campaigns.Triggers.WebHome||anchor="product_view"]]|(% style="width:369px" %)Product view|(% style="width:447px" %)**You Might Like** section.
213 +|(% style="width:399px" %)[[**Current Product Page View**>>doc:Main.Usage.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41A43B43843543D44243F43E44143C43E44244043543B43F44043E43444343A442A043D430441430439442435"]]|(% style="width:369px" %)Product view|(% style="width:447px" %)**You Might Like** section.
185 185  Recommend alternative products similar to the one currently viewed by the customer.
186 186  
187 187  ==== 4. General concept of the algorithm ====
... ... @@ -206,17 +206,17 @@
206 206  
207 207  (% class="table-bordered" style="width:1218px" %)
208 208  (% class="info" %)|(% style="text-align:center; width:399px" %)**Campaign**|(% style="text-align:center; width:370px" %)**Trigger**|(% style="text-align:center; width:446px" %)**Use Case**
209 -|(% style="width:399px" %)[[**Abandoned View**>>doc:Main.Usage.Smart_Communications.Campaigns.Triggers.WebHome||anchor="abandonedview"]]|(% style="width:370px" %)Product viewed but not ordered|(% style="width:446px" %)Send an email after X days with products most frequently bought together with the item viewed by the customer.
210 -|(% style="width:399px" %)[[**Abandoned Cart**>>doc:Main.Usage.Smart_Communications.Campaigns.Triggers.WebHome||anchor="abandonedcart"]]|(% style="width:370px" %)Product added to cart but not purchased|(% style="width:446px" %)Send an email after X days with products most frequently bought together with the items in the customer’s cart.
211 -|(% style="width:399px" %)[[**Thank You for Your Purchase!**>>doc:Main.Usage.Smart_Communications.Campaigns.Triggers.WebHome||anchor="order_complete"]]|(% style="width:370px" %)Customer made a purchase|(% style="width:446px" %)Send an email after X days with products most frequently bought together with the items in the customer’s order.
238 +|(% style="width:399px" %)[[**Abandoned View**>>doc:Main.Usage.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41144043E44843543D43D44B43943F44043E44143C43E442440"]]|(% style="width:370px" %)Product viewed but not ordered|(% style="width:446px" %)Send an email after X days with products most frequently bought together with the item viewed by the customer.
239 +|(% style="width:399px" %)[[**Abandoned Cart**>>doc:Main.Usage.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41144043E44843543D43D43044F43A43E44043743843D430"]]|(% style="width:370px" %)Product added to cart but not purchased|(% style="width:446px" %)Send an email after X days with products most frequently bought together with the items in the customer’s cart.
240 +|(% style="width:399px" %)[[**Thank You for Your Purchase!**>>doc:Main.Usage.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H42143443543B43043D43743043A430437"]]|(% style="width:370px" %)Customer made a purchase|(% style="width:446px" %)Send an email after X days with products most frequently bought together with the items in the customer’s order.
212 212  
213 213  ==== 3. Use cases for the Bought Together algorithm in website personalization ====
214 214  
215 215  (% class="table-bordered" style="width:1218px" %)
216 216  (% class="info" %)|(% style="text-align:center; width:399px" %)**Campaign**|(% style="text-align:center; width:369px" %)**Trigger**|(% style="text-align:center; width:447px" %)**Use Case**
217 -|(% style="width:399px" %)[[**Current Product Page View**>>doc:Main.Usage.Smart_Communications.Campaigns.Triggers.WebHome||anchor="product_view"]]|(% style="width:369px" %)Product view|(% style="width:447px" %)**Frequently Bought Together** section.
246 +|(% style="width:399px" %)[[**Current Product Page View**>>doc:Main.Usage.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41A43B43843543D44243F43E44143C43E44244043543B43F44043E43444343A442A043D430441430439442435"]]|(% style="width:369px" %)Product view|(% style="width:447px" %)**Frequently Bought Together** section.
218 218  Recommend complementary products.
219 -|(% style="width:399px" %)[[**Product Added to Cart**>>doc:Main.Usage.Smart_Communications.Campaigns.Triggers.WebHome||anchor="container_add"]]|(% style="width:369px" %)Product added to cart|(% style="width:447px" %)**Frequently Bought Together** section.
248 +|(% style="width:399px" %)[[**Product Added to Cart**>>doc:Main.Usage.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41443E43143043243B43543D44243E43243044043243A43E43D44243543943D435440"]]|(% style="width:369px" %)Product added to cart|(% style="width:447px" %)**Frequently Bought Together** section.
220 220  Recommend complementary products.
221 221  
222 222  ==== 4. General concept of the Bought Together algorithm ====
... ... @@ -270,22 +270,22 @@
270 270  (% class="table-bordered" style="width:1218px" %)
271 271  (% class="info" %)|(% style="text-align:center; width:399px" %)**Campaign**|(% style="text-align:center; width:370px" %)**Trigger**|(% style="text-align:center; width:446px" %)**Use Case**
272 272  |(% style="width:399px" %)(((
273 -[[**Abandoned View**>>doc:Main.Usage.Smart_Communications.Campaigns.Triggers.WebHome||anchor="abandonedview"]]
302 +[[**Abandoned View**>>doc:Main.Usage.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41144043E44843543D43D44B43943F44043E44143C43E442440"]]
274 274  
275 275  
276 276  )))|(% style="width:370px" %)Product viewed but not ordered|(% style="width:446px" %)Send an email X hours after viewing.
277 -|(% style="width:399px" %)[[**Abandoned Cart**>>doc:Main.Usage.Smart_Communications.Campaigns.Triggers.WebHome||anchor="abandonedcart"]]|(% style="width:370px" %)Product added to cart but not purchased|(% style="width:446px" %)Send an email X days after adding to cart.
278 -|(% style="width:399px" %)**Purchase Recommendations**|(% style="width:370px" %)[[Customer made a purchase>>doc:Main.Usage.Smart_Communications.Campaigns.Triggers.WebHome||anchor="order_complete"]]|(% style="width:446px" %)Send an email X days after purchase.
306 +|(% style="width:399px" %)[[**Abandoned Cart**>>doc:Main.Usage.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41144043E44843543D43D43044F43A43E44043743843D430"]]|(% style="width:370px" %)Product added to cart but not purchased|(% style="width:446px" %)Send an email X days after adding to cart.
307 +|(% style="width:399px" %)**Purchase Recommendations**|(% style="width:370px" %)[[Customer made a purchase>>doc:Main.Usage.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H42143443543B43043D43743043A430437"]]|(% style="width:446px" %)Send an email X days after purchase.
279 279  |(% style="width:399px" %)**Declining Purchase Amount**|(% style="width:370px" %)Customer’s purchase amount decreased by X% over a period|(% style="width:446px" %)If purchase amount drops by X%, send an email with personalized product recommendations.
280 -|(% style="width:399px" %)[[**Declining Website Visits**>>doc:Main.Usage.Smart_Communications.Campaigns.Triggers.WebHome||anchor="time_since_visit"]]|(% style="width:370px" %)Customer hasn’t visited the site|(% style="width:446px" %)Send an email if the customer hasn’t visited the site in X days.
309 +|(% style="width:399px" %)[[**Declining Website Visits**>>doc:Main.Usage.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41F44043E44843B43E43443D43543944143F43E44143B43543443D43543343E43F43E44143544943543D43844F441430439442430"]]|(% style="width:370px" %)Customer hasn’t visited the site|(% style="width:446px" %)Send an email if the customer hasn’t visited the site in X days.
281 281  
282 282  ==== 3. Use cases for the Personalized Product Recommendations algorithm in website personalization ====
283 283  
284 284  (% class="table-bordered" style="width:1227px" %)
285 285  (% class="info" %)|(% style="text-align:center; width:399px" %)**Campaign**|(% style="text-align:center; width:369px" %)**Trigger**|(% style="text-align:center; width:452px" %)**Use Case**
286 -|(% style="width:399px" %)[[**Current Product Page View**>>doc:Main.Usage.Smart_Communications.Campaigns.Triggers.WebHome||anchor="product_view"]]|(% style="width:369px" %)Product page view|(% style="width:452px" %)**You Might Like** or **Just for You** section.
315 +|(% style="width:399px" %)[[**Current Product Page View**>>doc:Main.Usage.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41A43B43843543D44243F43E44143C43E44244043543B43F44043E43444343A442A043D430441430439442435"]]|(% style="width:369px" %)Product page view|(% style="width:452px" %)**You Might Like** or **Just for You** section.
287 287  Recommendations related to the viewed product.
288 -|(% style="width:399px" %)[[**Website Login**>>doc:Main.Usage.Smart_Communications.Campaigns.Triggers.WebHome||anchor="site_visit"]]|(% style="width:369px" %)Authorized customer login|(% style="width:452px" %)**You Might Like** or **Just for You** section.
317 +|(% style="width:399px" %)[[**Website Login**>>doc:Main.Usage.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41A43B43843543D44243F43E44143544243843B441430439442"]]|(% style="width:369px" %)Authorized customer login|(% style="width:452px" %)**You Might Like** or **Just for You** section.
289 289  Recommendations related to the viewed product.
290 290  
291 291  ==== 4. General concept of the Personalized Product Recommendations algorithm ====