Последние авторы
1 (% class="lead" %)
2 Шаблонизатор позволяет кастомизировать текст сообщений (email, SMS, push) в [[массовых рассылках>>doc:Main.Using.Smart_Communications.Mass_mailings.WebHome]] и [[кампаниях>>doc:Main.Using.Smart_Communications.Campaign_list.WebHome]]. Каждый клиент увидит в сообщении информацию, которая относится именно к нему.
3
4 (% class="box successmessage" %)
5 (((
6 Шаблонизатор построен на базе языка шаблонов Twig. В данной статье описаны наиболее часто используемые конструкции. Полную информацию о возможностях шаблонизатора см. на [[сайте проекта Twig>>https://twig.symfony.com/doc/3.x/]].
7 )))
8
9 **Содержание:**
10
11 {{toc depth="4" start="2"/}}
12
13 == Персонализация ==
14
15 Персонализация позволяет адаптировать рассылки под каждого клиента. [[Loymax Smart Communications>>doc:Main.Using.Smart_Communications.WebHome]] адаптирует текст сообщения и строит актуальное для клиента предложение, при необходимости выбирая подходящий момент отправки сообщения.
16 **Пример:**
17 В рамках одной и той же рассылки по рекомендуемым товарам:
18
19 * Один клиент получит сообщение (на основе истории покупок) с предложением купить сменные лезвия для бритвы и с блоком о том, что в торговых точках его города действует акция "3 по цене 2".
20 * Другой клиент получит сообщение (на основе истории покупок) с предложением купить зарядное устройство и с промо-блоком о том, что в его городе открылся новый пункт выдачи заказов.
21
22 В Loymax Smart Communications есть инструменты для персонализации:
23
24 * Конструкции шаблонизатора;
25 * [[Товарные рекомендации>>doc:Main.Using.Smart_Communications.Recommendations.WebHome]].
26
27 == Шаблонизатор ==
28
29 Шаблонизатор включает в себя:
30
31 * [[Переменные>>doc:||anchor="H41F43544043543C43543D43D44B435432A0SmartCommunications"]] — данные о клиенте, его чеках и продуктах в чеке. Например, с помощью переменной можно вывести в текст сообщения имя клиента;
32 * [[Макросы>>doc:||anchor="H41C43043A44043E44144B"]] — функции, позволяющие вывести информацию о промокодах, опросах и т. д.;
33 * [[Управляющие конструкции>>doc:||anchor="H42343F44043043243B44F44E44943843543A43E43D44144244044343A446438438"]] — циклы, условия, фильтры.
34
35 Пример использования переменной в тексте сообщения:
36
37 (% class="box" %)
38 (((
39 ##Добрый день, ~{~{client.properties.full_name}}.##
40 )))
41
42 При отправке сообщения переменная будет заменена на значение, например:
43
44 (% class="box" %)
45 (((
46 Добрый день, Иванов Иван Иванович.
47 )))
48
49 == Переменные в Smart Communications ==
50
51 Переменные позволяют подставлять в текст сообщения (а для писем — и в тему письма) данные:
52
53 * Из [[профиля клиента>>doc:Main.Using.Smart_Communications.Customers.All_clients.WebHome||anchor="Profile"]]:
54 ** Атрибуты и метрики клиента;
55 ** Ссылки для [[управления подпиской>>doc:Main.Using.Smart_Communications.Mass_mailings.Mailing_Loyalty_SC.WebHome]];
56 ** Атрибуты и содержимое из последнего чека и/или заказа;
57 ** Даты;
58 ** И любые другие атрибуты;
59 * О чеках клиента;
60 * О продуктах в чеке;
61 * О категории продукта.
62
63 Переменные бывают:
64
65 * [[Системные>>doc:||anchor="H42143844144243543C43D44B43543F43544043543C43543D43D44B435"]] — служат для доступа к системным полям;
66 * [[Пользовательские>>doc:||anchor="H41F43E43B44C43743E43243044243543B44C44143A43843543F43544043543C43543D43D44B435"]] — для доступа к пользовательским полям. Подробнее о полях можно прочитать [[здесь>>doc:Main.Using.Smart_Communications.Settings_SC.Data_field.WebHome]].
67
68 Формат записи переменной:
69
70 (% class="box" %)
71 (((
72 ##~{~{наименование_переменной}}##
73 )))
74
75 === Системные переменные ===
76
77 В Smart Communications доступны следующие системные переменные:
78
79 (% class="table-bordered" %)
80 |=(((
81 Переменная
82 )))|=(((
83 Назначение
84 )))
85 |(((
86 ##~{~{client.properties.full_name}}##
87 )))|(((
88 Полное имя клиента
89 )))
90 |(((
91 ##~{~{client.properties.last_name}}##
92 )))|(((
93 Фамилия клиента
94 )))
95 |(((
96 ##~{~{client.properties.first_name}}##
97 )))|(((
98 Имя клиента
99 )))
100 |(((
101 ##~{~{client.properties.middle_name}}##
102 )))|(((
103 Отчество клиента
104 )))
105 |(((
106 ##~{~{client.properties.register_date}}##
107 )))|(((
108 Дата регистрации клиента
109 )))
110 |(((
111 ##~{~{client.properties.city}}##
112 )))|(((
113 Город клиента
114 )))
115 |(((
116 ##~{~{client.properties.zip}}##
117 )))|(((
118 Индекс клиента
119 )))
120 |(((
121 ##~{~{client.properties.email}}##
122 )))|(((
123 E-mail клиента
124 )))
125 |(((
126 ##~{~{client.properties.password}}##
127 )))|(((
128 Пароль клиента
129 )))
130 |(((
131 ##~{~{client.properties.phone}}##
132 )))|(((
133 Номер телефона клиента
134 )))
135 |(((
136 ##~{~{client.properties.order_cnt}}##
137 )))|(((
138 Количество чеков клиента
139 )))
140 |(((
141 ##~{~{client.properties.order_sum}}##
142 )))|(((
143 Общая сумма всех чеков клиента
144 )))
145 |(((
146 ##~{~{client.orders.first.date}}##
147 )))|(((
148 Дата первого чека клиента
149 )))
150 |(((
151 ##~{~{client.orders.last.date}}##
152 )))|(((
153 Дата последнего чека клиента
154 )))
155 |(((
156 ##~{~{client.orders.last.number}}##
157 )))|(((
158 Номер последнего чека
159 )))
160 |(((
161 ##~{~{client.properties.rating}}##
162 )))|(((
163 Скоринг клиента
164 )))
165 |(((
166 ##~{~{client.links.profile}}##
167 )))|(((
168 Ссылка на профиль клиента на Платформе
169 )))
170 |(((
171 ##~{~{client.links.unsubscribe}}##
172 )))|(((
173 Ссылка на [[управление подписками>>doc:Main.Using.Smart_Communications.Mass_mailings.Mailing_Loyalty_SC.WebHome]]
174 )))
175 |(((
176 ##~{~{client.links.web_version}}##
177 )))|(((
178 Ссылка на веб-версию письма
179 )))
180 |(((
181 ##~{~{client.properties.bonus_active}}##
182 )))|(((
183 Количество активных бонусов
184 )))
185 |(((
186 ##~{~{client.properties.bonus_expect_activate}}##
187 )))|(((
188 Количество бонусов, которые ожидают активации
189 )))
190 |(((
191 ##~{~{client.properties.bonus_expect_deactivate}}##
192 )))|(((
193 Количество бонусов, которые ожидают деактивации
194 )))
195 |(((
196 ##~{~{client.properties.bonus_expect_deactivate_date}}##
197 )))|(((
198 Дата деактивации бонусов
199 )))
200 |(((
201 ##~{~{client.properties.bonus_expect_deactivate_next}}##
202 )))|(((
203 Количество бонусов, которые будут деактивированы в ближайшее время
204 )))
205 |(((
206 ##~{~{client.eventContext.<код_поля>}}##
207 )))|(((
208 Данные из [[контекста события>>doc:Main.Using.Smart_Communications.Events.WebHome||anchor="H41A43E43D44243543A44144244143E43144B442438439"]]
209 )))
210 |(((
211 ##~{~{client.containers.webcart.items}}##
212 )))|(((
213 Содержимое корзины
214 )))
215 |##~{~{client.properties.eorder_cnt}}##|Количество заказов клиента
216 |##~{~{client.properties.eorder_sum}}##|Общая сумма всех заказов клиента
217 |##~{~{client.eorders.first.date}}##|Дата первого заказа клиента
218 |##~{~{client.eorders.last.date}}##|Дата последнего заказа клиента
219 |##~{~{client.eorders.first.number}}##|Номер первого заказа клиента
220 |##~{~{client.eorders.last.number}}##|Номер последнего заказа клиента
221 |##~{~{client.eorders.first.<код поля>}}##|Значение атрибута в первом заказе клиента
222 |##~{~{client.eorders.last.<код поля>}}##|Значение атрибута в последнем заказе клиента
223 |##~{~{client.eorders.first.items}}##|Содержимое первого заказа
224 |##~{~{client.eorders.last.items}}##|Содержимое последнего заказа
225
226 === Пользовательские переменные ===
227
228 Доступ к пользовательским полям **Клиент/Чек/Строка чека/Категория продукта** осуществляется по их коду с помощью конструкции вида ##~{~{client.properties.<код_поля>}}##. Например:
229
230 (% class="box" %)
231 (((
232 ##~{~{client.properties.eye_color}}##
233 )))
234
235 Узнать код поля можно в разделе **Настройки >** [[Поля>>doc:Main.Using.Smart_Communications.Settings_SC.Data_field.WebHome]] во вкладках **Клиенты/Транзакции/Строки транзакций/Категории**.** **Например, код атрибута чека "Статус оплаты" — "payment_status_name".
236
237 {{lightbox image="Code_example.png"/}}
238
239 Для формирования переменной необходимо использовать формат:
240
241 * ##~{~{client.properties.<код поля>}}## — значение атрибута в **профиле** клиента;
242 * ##~{~{client.orders.first.<код поля>}}## — значение атрибута в **первом чеке** клиента;
243 * ##~{~{client.orders.last.<код поля>}}## — значение атрибута в **последнем чеке** клиента.
244
245 Для вывода значений атрибутов продуктов в [[брошенной корзине>>doc:Main.Using.Smart_Communications.Campaign_list.Abandoned_cart.WebHome]], первом и последнем чеке, категории продукта необходимо использовать [[(% class="wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink" %)циклы>>doc:||anchor="H42643843A43B44B"]](%%).
246
247 === Значение по умолчанию ===
248
249 Для атрибутов с типом **строка** можно установить значение по умолчанию. Это значение будет выведено в тексте сообщения, если атрибут не заполнен. Например, в сообщении можно обратиться к клиенту по имени, а если имя неизвестно — использовать значение по умолчанию:
250
251 (% class="box" %)
252 (((
253 ##~{~{client.properties.full_name|default ('Уважаемый клиент')}##
254 )))
255
256 == Макросы ==
257
258 Макросы — это небольшие команды, которые позволяют выполнять заскриптованные действия в Системе. Например, макрос ##~{~{client.promocode('группа промокода')}}## находит и возвращает промокод из группы.
259
260 === Системные макросы ===
261
262 В Smart Communications доступны макросы:
263
264 (% class="table-bordered" %)
265 |=(((
266 Макрос
267 )))|=(((
268 Назначение
269 )))
270 |(((
271 ##~{~{"now"|date('формат')}}##
272 )))|(((
273 Текущая дата
274 )))
275 |(((
276 ##~{~{client.promocode('группа промокода')}}##
277 )))|(((
278 Выдать промокод клиенту из группы промокодов
279 )))
280 |(((
281 ##~{~{client.last_promocode('группа промокода')}}##
282 )))|(((
283 Последний выданный клиенту промокод из группы
284 )))
285 |(((
286 ##~{~{client.last_campaign_promocode('группа промокода')}}##
287 )))|(((
288 Последний промокод из группы, выданный клиенту в рамках этой кампании
289 )))
290 |(((
291 ##~{~{client.template_constant('наименование')}}##
292 )))|(((
293 Константа региона
294 )))
295 |(((
296 ##~{~{client.poll('POLL-идентификатор_опроса')}}##
297 )))|(((
298 Ссылка на опрос
299 )))
300 |(((
301 ##~{~{client.loyaltyCard.lastActive.number}}##
302 )))|(((
303 Информация по активной карте лояльности клиента
304 )))
305
306 === Формат дат ===
307
308 Поля с типом **дата** можно выводить в разном формате. Для обозначения формата можно использовать любые комбинации следующих значений:
309
310 * Год:
311 ** y — 2 цифры (например, 97, 20);
312 ** Y — 4 цифры (например, 1997, 2020);
313 * m — месяц (в формате от 01 до 12);
314 * d — день (в формате от 01 до 31);
315 * h — час;
316 * i — минута;
317 * s — секунда.
318
319 **Пример 1. Вывод даты в сообщении**
320
321 При заданном формате 'Y-m-d' дата будет выведена в виде '2020-10-20'. При формате 'd.m.Y h:i' — в виде '20.10.2020 11:56'.
322
323 Пример использования макроса **Благодарность клиенту за последний заказ**:
324
325 (% class="box" %)
326 (((
327 ##Спасибо за заказ от ~{~{client.orders.last.date|date('d.m.Y')}}!##
328 )))
329
330 Клиент получит сообщение со строкой вида:
331
332 (% class="box" %)
333 (((
334 Спасибо за заказ от 29.06.2020!
335 )))
336
337 **Пример 2. Вывод даты на несколько дней позже текущей**
338
339 Чтобы вывести в сообщение дату, которая на несколько дней позже текущей, используйте такой макрос:
340
341 (% class="box" %)
342 (((
343 ##~{~{"now"|date_modify('+1 day')|date('Y-m-d')}}##
344 )))
345
346 В сообщении для клиента будет выведена завтрашняя дата.
347
348 **Пример 3. Вывод даты —** **через месяц после даты регистрации клиента**
349
350 Вывод даты +1 месяц от даты регистрации клиента.
351
352 (% class="box" %)
353 (((
354 ##~{~{client.properties.register_date|date_modify('+1 month')|date('Y-m-d')}}##
355 )))
356
357 === Склонение существительных ===
358
359 Шаблонизатор сообщений позволяет автоматически образовывать множественное число русских существительных, ставить имена в указанную падежную форму и производить другие преобразования. В таблице ниже приведены выражения, которые можно для этого использовать.
360
361 В качестве подставляемых значений (аргументов выражений) можно использовать как конкретные числа/строки (при этом строки нужно обязательно заключать в кавычки), так и переменные или значения [[полей>>doc:Main.Using.Smart_Communications.Settings_SC.Data_field.WebHome]] объектов.
362
363 (% class="table-bordered" %)
364 |=(% style="text-align: center;" %)Выражение|=(% style="text-align: center;" %)Аргументы|=(% style="text-align: center;" %)Пример
365 |(((
366 ##~{~{ <текст>|plural(<число>) }}##
367
368 Преобразует **текст** в форму множественного числа, соответствующую указанному **числу.**
369 )))|(((
370 * **Текст** — строка, для которой нужно образовать множественное число.
371 Существительное или прилагательное + существительное.
372 * **Число** — число, для которого нужно образовать форму множественного числа.
373 )))|(((
374 Предположим, что персональные предложения клиентов записываются в мультивитрину с кодом ##offers##. В таком случае код ниже...
375
376 {{code language="twig"}}
377 {% set offers_count = client.multimarts.offers.items|length %}
378 Для вас {{ 'персональное предложение'|plural(offers_count) }}.
379 {{/code}}
380
381 ...даст такой результат в зависимости от числа записей в мультивитрине:
382
383 {{box}}
384 Для вас 8 персональных предложений.
385 Для вас 3 персональных предложения.
386 Для вас 1 персональное предложение.
387 {{/box}}
388 )))
389 |(((
390 ##~{~{ <имя>|name(<пол>, <падеж>) }}##
391
392 Преобразует **имя** в форму указанного **падежа**.
393 )))|(((
394 * **Имя** — имя, которое требуется поставить в указанный падеж. Можно передавать как полное, так и неполное имя. Для наиболее надёжного результата рекомендуем порядок фамилия, имя, отчество.
395 * **Пол** — пол, в соответствии с которым требуется просклонять имя. Допустимые варианты: ##m##, ##f##, ##null##.
396 Необязательный аргумент.
397 Если аргумент пропущен или передано значение ##null##, шаблонизатор определит пол автоматически.
398 * **Падеж** — падеж, в который требуется поставить имя.
399 Допустимые варианты: ##именительный##, ##родительный##, ##дательный##, ##винительный##, ##творительный##, ##предложный##.
400 )))|(((
401 Для клиента с полным именем "Петрова Наталья" поздравление с достижением может выглядеть так:
402
403 {{code language="twig"}}
404 {% set gender = client.properties.sex %}
405 О {{ client.properties.full_name|name(gender, 'предложный') }}
406 будут слагать легенды!
407 {{/code}}
408
409 {{box}}
410 О Петровой Наталье будут слагать легенды!
411 {{/box}}
412 )))
413 |(((
414 ##~{~{ <число>|ordinal(<пол>) }}##
415
416 Образует от **числа** порядковое числительное.
417 )))|(((
418 * **Число** — число, от которого требуется образовать порядковое числительное.
419 * **Пол** — пол, в который требуется поставить порядковое числительное. Допустимые варианты: ##m##, ##f##, ##n##.
420 )))|(((
421 Предположим, что в Компании действует программа лояльности, имеющая несколько уровней, и текущий уровень клиента записывается в пользовательское поле ##tier##. В таком случае поздравление с переходом на новый уровень может выглядеть так:
422
423 {{code language="twig"}}
424 {% set tier = client.properties.tier %}
425 Поздравляем! Вы вышли на {{ tier|ordinal('m') }} уровень.
426 {{/code}}
427
428 {{box}}
429 Поздравляем! Вы вышли на второй уровень.
430 {{/box}}
431 )))
432 |(((
433 ##~{~{ <число>|money(<валюта>) }}##
434
435 Образует от **числа** сумму в указанной **валюте**.
436 )))|(((
437 * **Число** — число, которое требуется преобразовать в денежный формат.
438 * **Валюта** — требуемая валюта. Допустимые варианты: ##₽, $, €, £##.
439 )))|(((
440 Вывод в сообщение суммы скидки по последнему заказу клиента может выглядеть так:
441
442 {{code language="twig"}}
443 {% set discount = client.eorders.last.payment_discount %}
444 Сумма скидки по заказу составила {{ discount|money('₽') }}.
445 {{/code}}
446
447 {{box}}
448 Сумма скидки по заказу составила 932 рубля 50 копеек.
449 {{/box}}
450
451 В рамках кампании вы также можете обращаться к заказу, [[вызвавшему срабатывание>>||anchor="H41844143F43E43B44C43743E43243043D43843543443043D43D44B44543843743A43E43D44243543A441442430442440438433433435440430"]] триггера.
452 )))
453
454 == Вставка переменной или макроса в сообщение ==
455
456 В редакторах для всех видов сообщений есть кнопка с изображением флажка, при нажатии на которую раскрывается список доступных системных переменных и макросов:
457
458 |(% style="border-color:white; text-align:center" %){{lightbox image="Editor.png"/}}
459
460 Для вставки пользовательской переменной необходимо напечатать ее вручную.
461
462 == Предварительный просмотр ==
463
464 |(% style="border-color:white; width:1115px" %)(((
465 Чтобы посмотреть, как будет выглядеть сообщение с переменными и макросами, замененными на их значение, используйте кнопку **Предпросмотр сообщения**.
466 )))|(% style="border-color:white; width:324px" %){{lightbox image="Preview.png"/}}
467 |(% style="border-color:white; width:1115px" %)(((
468 Можно увидеть предпросмотр письма для конкретного клиента. Для этого в поле **Клиент** необходимо ввести Фамилию/Имя/Номер телефона/email/идентификатор клиента (local_id). Чтобы результаты поиска были однозначны, рекомендуется искать по номеру телефона/email/локальному идентификатору клиента.
469
470 (% class="box infomessage" %)
471 (((
472 Поиск в поле **Клиент **— регистрозависимый. Имя и фамилию клиента необходимо вводить с заглавной буквы.
473 )))
474 )))|(% style="border-color:white; width:324px" %){{lightbox image="Client3.png"/}}
475
476 == Управляющие конструкции ==
477
478 С помощью управляющих конструкций можно создавать более сложные шаблоны на основе переменных и макросов. Управляющие конструкции включают в себя for-циклы, условия (if/elseif/else) и фильтры. Управляющие конструкции выводятся внутри блоков {% ... %}.
479
480 === Переменные ===
481
482 Чтобы несколько раз использовать в сообщении одно и то же выражение, можно ввести переменную. Например, введем переменную ##webcart## для массива элементов в корзине:
483
484 (% class="box" %)
485 (((
486 ##{% set webcart = client.containers.webcart.items %}##
487 )))
488
489 === Циклы ===
490
491 В следующих случаях необходимо использовать циклы:
492
493 * Вывод атрибутов продуктов в первом/последнем чеке клиента;
494 * Вывод атрибутов продуктов в корзине;
495 * Вывод атрибутов категории продукта;
496 * Вывод информации по всем активным картам клиента, если их больше одной.
497
498 Например, можно вывести названия всех продуктов в последнем чеке клиента:
499
500 (% class="box" %)
501 (((
502 ##{% for item in client.orders.last.items%}
503 ~{~{item.name}}
504 {% endfor %}##
505 )))
506
507 Вывести название и цвет для всех продуктов из корзины:
508
509 (% class="box" %)
510 ##{% set webcart = client.containers.webcart.items %}
511 {% for item in webcart %}
512 ~{~{item.name}}
513 ~{~{item.color}}
514 {% endfor %}##
515
516 Вывести название категории для всех продуктов в последнем заказе:
517
518 (% class="box" %)
519 (((
520 ##{% for item in client.orders.last.items%}
521 ~{~{item.category.name}}
522 {% endfor %}##
523 )))
524
525 Вывести информацию по всем активным картам клиента:
526
527 (% class="box" %)
528 (((
529 ##{% for card in client.loyaltyCard.items %}
530 ~{~{card.number}}
531 {% endfor %}##
532 )))
533
534 === Условия ===
535
536 Можно вывести в сообщении только те данные, для которых выполняется заданное условие. Например, можно выдать [[промокод>>doc:Main.Using.Smart_Communications.Promo_codes.WebHome]] только клиентам из Екатеринбурга:
537
538 (% class="box" %)
539 (((
540 ##{% if client.properties.city == 'Екатеринбург' %}
541 ~{~{client.promocode('группа промокода')}}
542 {% endif %}##
543 )))
544
545 Вот несколько вариантов условий:
546
547 * {% If client.properties.city == 'Екатеринбург' %} — если клиент из Екатеринбурга;
548 * {% If client.properties.city %} — если у клиента указан город;
549 * {% If not client.properties.city %} — если у клиента не указан город;
550 * {% If client.properties.city == 'Екатеринбург' OR client.properties.city == 'Пермь' %} — если клиент из Екатеринбурга или из Перми;
551 * {% If client.properties.city == 'Екатеринбург' AND client.properties.first_name == 'Мария' %} — если клиент из Екатеринбурга и его зовут Мария.
552
553 === Фильтры ===
554
555 Для массивов доступны фильтры:
556
557 * sortArray — позволяет отсортировать массив данных по значению атрибутов:
558 ** sortArray('date', true) — сортировка по дате по убыванию;
559 ** sortArray('date', false) — сортировка по дате по возрастанию (сортировать элементы можно не только по дате, но и по другим атрибутам);
560 * get — выводит заданное количество элементов:
561 ** get(10) — вывести первые 10 элементов массива;
562 * date_diff('date') — выводит количество дней между двумя датами. Например, можно вывести, сколько дней прошло с **2020-11-11** до текущей даты:
563
564 (% class="box" %)
565 (((
566 ##~{~{"now"|date('Y-m-d')|date_diff('2020-11-11')}}##
567 )))
568
569 **Вывод информации из корзины**
570
571 Пример использования фильтров: вывести название, изображение и цену для 10 продуктов из корзины, которые были добавлены первыми.
572
573 (% class="box" %)
574 (((
575 ##{% set webcart = client.containers.webcart.items|sortArray('date', false)|get(10) %}
576 {% for item in webcart %}
577 ~{~{item.name}}
578 ~{~{item.image_url}}
579 ~{~{item.price}}
580 {% endfor %}##
581 )))
582
583 Чтобы название продукта было ссылкой, используйте тег <a> с атрибутом href:
584
585 (% class="box" %)
586 (((
587 ##<a href ="~{~{item.product_url}}">~{~{item.name}}</a>##
588 )))
589
590 == Подстановка данных из витрин ==
591
592 Loymax Smart Communications позволяет подставлять в текст сообщения значения полей [[витрин>>doc:Main.Using.Smart_Communications.Settings_SC.Data_field.WebHome||anchor="H41243844244043843D44B"]]. Для подстановки данных из витрин, организованных по принципу "один к одному" используйте следующий синтаксис:
593
594 (% class="box" %)
595 (((
596 ##~{~{client.marts.<код витрины>.<код поля>}}##
597 )))
598
599 Для подстановки данных объектов, хранящихся в мультивитрине, используйте цикл:
600
601 (% class="box" %)
602 (((
603 ##{% set items = client.multimarts.<код витрины>.items %}
604 {% for item in items %}
605 ~{~{item.<код поля 1>}}
606 ~{~{item.<код поля 2>}}
607 ~{~{item.<код поля 3>}}
608 {% endfor %}##
609 )))
610
611 == Использование данных из контекста триггера ==
612
613 Когда срабатывает [[триггер>>doc:Main.Using.Smart_Communications.Campaign_list.Triggers.WebHome]] кампании, в контекст триггера записывается информация об объекте или наборе (коллекции) объектов, вызвавших срабатывание. В зависимости от вида триггера это может быть товар, заказ, категория и т.п. Контекст всегда привязан к конкретному клиенту и может быть использован для персонализации коммуникации.
614
615 В рассылках, отправленных в рамках кампании, можно использовать значения [[полей>>doc:Main.Using.Smart_Communications.Settings_SC.Data_field.WebHome]] объекта из контекста триггера. Структура данных в контексте триггера соответствует модели данных соответствующего объекта, т.е. содержит все поля, настроенные для этого типа объекта.
616
617 Контекст любого триггера содержит объект ##client## (Клиент). Обращаясь к этому объекту, можно получить содержимое любого поля [[профиля клиента>>doc:Main.Using.Smart_Communications.Customers.All_clients.WebHome||anchor="H41F44043E44443843B44C43A43B43843543D442430"]] — как системного, так и пользовательского. Для обращения к полям профиля клиента используйте следующий синтаксис: ##~{~{trigger.client.properties.<код поля>}}##
618
619 В некоторых триггерах помимо объекта ##client## передаётся другой объект. Перечень таких триггеров см. в таблице ниже.
620
621 (% class="table-bordered" %)
622 |=Триггеры|=Объекты в контексте|=Комментарий
623 |(((
624 * [[Дней с чека>>doc:Main.Using.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41443D43543944144743543A430"]]
625 * [[Наступление даты для чека>>doc:Main.Using.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41D43044144244343F43B43543D43843543443044244B43443B44F44743543A430"]]
626 * [[Пробит чек>>doc:Main.Using.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41F44043E43143844244743543A"]]
627 )))|(((
628 * ##client ##(Клиент)
629 * ##order ##(Чек)
630 )))|(((
631 (% id="cke_bm_68121S" style="display:none" %) (%%)Для обращения к полям чека используйте следующий синтаксис: ##~{~{trigger.order.<код поля чека>}}##
632
633 Для обращения ко всем строкам чека используйте цикл:
634
635 {{code}}
636 {% for item in trigger.order.items %}
637 {{item.<код поля строки чека>}}
638 {% endfor %}
639 {{/code}}
640
641 Строки чека также содержат поле ##category##, заполненное полями категории, к которой относится соответствующий продукт. Вы можете обращаться к полям категории, используя следующий синтаксис: ##~{~{item.category.<код поля категории>}}##
642
643 )))
644 |(((
645 * [[Дней с заказа>>doc:Main.Using.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41443D43543944143743043A430437430"]]
646 * [[Заказан продукт>>doc:Main.Using.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41743043A43043743043D43F44043E43444343A442"]]
647 * [[Заказан продукт из категории>>doc:Main.Using.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41743043A43043743043D43F44043E43444343A44243843743A43044243543343E440438438"]]
648 * [[Изменился статус заказа>>doc:Main.Using.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41843743C43543D43843B44144F44144243044244344143743043A430437430"]]
649 * [[Наступление даты для заказа>>doc:Main.Using.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41D43044144244343F43B43543D43843543443044244B43443B44F43743043A430437430"]]
650 * [[Сделан заказ>>doc:Main.Using.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H42143443543B43043D43743043A430437"]]
651 )))|(((
652 * ##client ##(Клиент)
653 * ##eorder## (Заказ)
654 )))|(((
655 (% id="cke_bm_74915S" style="display:none" %) (%%)Для обращения к полям заказа используйте следующий синтаксис ##~{~{trigger.eorder.<код поля заказа>}}##
656
657 Для обращения ко всем строкам заказа используйте цикл:
658
659 {{code}}
660 {% for item in trigger.eorder.items %}
661 {{item.<код поля строки заказа>}}
662 {% endfor %}
663 {{/code}}
664
665 Строки заказа также содержат поле ##category##, заполненное полями категории, к которой относится соответствующий продукт. Вы можете обращаться к полям категории, используя следующий синтаксис: ##~{~{item.category.<код поля категории>}}##
666 )))
667 |[[Добавлен товар в контейнер>>doc:Main.Using.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41443E43143043243B43543D44243E43243044043243A43E43D44243543943D435440"]]|(((
668 * ##client ##(Клиент)
669 * ##product ##(Продукт)
670 )))|Для обращения к полям продукта используйте следующий синтаксис: ##~{~{trigger.product.<код поля продукта>}}##
671 |(((
672 * [[Изменилась цена на просмотренный товар>>doc:Main.Using.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41843743C43543D43843B43044144C44643543D43043D43043F44043E44143C43E44244043543D43D44B43944243E432430440"]]
673 * [[Изменилась цена продукта>>doc:Main.Using.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41843743C43543D43843B43044144C44643543D43043F44043E43444343A442430"]]
674 )))|(((
675 * ##client ##(Клиент)
676 * ##products ##(коллекция объектов Продукт)
677 )))|(((
678 Для обращения ко всем продуктам в коллекции используйте цикл:
679
680 {{code}}
681 {% for product in trigger.products %}
682 {{product.<код поля продукта>}}
683 {% endfor %}
684 {{/code}}
685 )))
686 |[[Брошенный просмотр категории>>doc:Main.Using.Smart_Communications.Campaign_list.Triggers.WebHome||anchor="H41144043E44843543D43D44B43943F44043E44143C43E44244043A43044243543343E440438438"]]|(((
687 * ##client ##(Клиент)
688 * ##category ##(Категория продуктов)
689 )))|(((
690 Поскольку триггер обрабатывает события за последние двое суток, за этот период может быть зарегистрировано большое количество событий **Просмотр категории **(##view_category##). В контекст триггера записывается только две категории: последняя просмотренная и самая часто просматриваемая.
691
692 Для обращения к последней просмотренной категории используйте следующий синтаксис: ##~{~{trigger.last_category.<код поля категории>}}##
693
694 Для обращения к самой часто просматриваемой категории используйте следующий синтаксис: ##~{~{trigger.frequent_category.<код поля категории>}}##
695 )))
696
697 {{showhide showmessage="Пример обращения к контексту триггера ~"Сделан заказ~"" hidemessage="Скрыть пример"}}
698 |(% style="width:50%" %)(((
699 **Код:**
700
701 (% class="box" %)
702 (((
703 ##~{~{trigger.client.properties.full_name}}##,
704 ##~{~{trigger.eorder.date}}## вы оформили заказ ##~{~{trigger.eorder.number}}## на сумму ##~{~{trigger.eorder.items_sum}}## с доставкой в г. ##~{~{trigger.eorder.delivery_city}}.##
705
706 Состав заказа:
707
708 ##{% for item in trigger.eorder.items %}##
709 Название товара: ##~{~{item.name}}##
710 Количество товара: ##~{~{item.cnt}}##
711 Цена товара: ##~{~{item.price}}##
712 Скидка: ##~{~{item.discount}}##
713 Стоимость товара: ##~{~{item.cnt}} x (~{~{item.price}} - ~{~{item.discount}})= ~{~{item.sum}}##
714 {% endfor %}
715 )))
716
717
718 )))|(% style="width:50%" %)(((
719 **Результат обработки:**
720
721 Константин Константиновский,
722 01.01.2025 вы оформили заказ EO-12345 на сумму 5100 с доставкой в г. Санкт-Петербург.
723
724 Состав заказа:
725
726 Название товара: Лейка садовая
727 Количество товара: 2
728 Цена товара: 1500
729 Скидка: 100
730 Стоимость товара: 2 x (1500 - 100)= 2800
731
732 Название товара: Лопата штыковая
733 Количество товара: 1
734 Цена товара: 2500
735 Скидка: 200
736 Стоимость товара: 1 x (2500 - 200)= 2300
737 )))
738 {{/showhide}}
739
740 (% class="box" %)
741 (((
742 **Читайте также:**
743
744 * [[Кампании>>doc:Main.Using.Smart_Communications.Campaign_list.WebHome]]
745 * [[Триггеры>>doc:Main.Using.Smart_Communications.Campaign_list.Triggers.WebHome]]
746 * [[Поля>>doc:Main.Using.Smart_Communications.Settings_SC.Data_field.WebHome]]
747 )))

Новости
Обновления
Облако тегов
Словарь
Наш блог
YouTube и Rutube
Telegram