{{% set parts = [] %} {% if user['$name'] is defined %} {% set _ = parts.append("вас зовут " + user['$name']) %} {% endif %} {% if user['$email'] is defined %} {% set _ = parts.append("адрес вашей почты " + user['$email']) %} {% endif %} {% if user['$phone'] is defined %} {% set _ = parts.append("номер телефона " + user['$phone']) %} {% endif %} Здравствуйте{% if parts|length > 0 %}. Вы указали, что {{ parts|join(' и ') }}{% endif %}, всё верно?
if user['$name'] is defined
: Проверяет, определено ли имя пользователя.if user['$email'] is defined
: Проверяет, определен ли email пользователя.if user['$phone'] is defined
: Проверяет, определен ли номер телефона пользователя.Здравствуйте! Вот товары, которые вы смотрели в нашем каталоге: {% set itemsArray = [] %} {% set massViewedName = [] %} {% for e in get_last_events('$product_viewed') %} {% set product_name = e.props['$name'].lower().strip() %} {% if product_name not in massViewedName %} {% set _ = itemsArray.append(e) %} {% set _ = massViewedName.append(product_name) %} {% endif %} {% endfor %} {% for b in itemsArray[:3] %} {% set url = b.props['$url'] %} {% set name = b.props['$name'] %} {% set amount = b.props['$amount'] %} {{ name }} {{ amount }} ₽ {% endfor %} Вам не нужно будет искать их снова, когда решите оформить заказ.
for e in get_last_events('$product_viewed')
: Проходит по всем событиям, связанным с просмотром товаров.product_name = e.props['$name'].lower().strip()
: Извлекает и нормализует имя товара (приводит к нижнему регистру и убирает пробелы по краям).if product_name not in massViewedName
: Проверяет, добавлено ли уже это имя товара в massViewedName.for b in itemsArray[:3]
: Проходит по первым трем уникальным событиям из itemsArray.url
, name
, и amount
для каждого товара.{% if user['$email'] is defined and (user['$last_payment'] >= 10000 or user['$orders_count'] >= 3) %} TRUE {% else %} FALSE {% endif %}
user['$email'] is defined
проверяет, определен ли email пользователя.user['$last_payment'] >= 10000
: Проверяет, был ли последний платеж пользователя больше или равен 10 000.user['$orders_count'] >= 3
: Проверяет, сделал ли пользователь три или более заказов.and
, что означает, что оба условия должны быть истинными для выполнения блока True
.True
или False
.{% set device = event['$device_type'] %} {% set os = event['$os'] %} {% if device == 'pc' and 'Windows' in os %} TRUE {% else %} FALSE {% endif %}
device
и os
:device
получает значение типа устройства из события.os
получает значение операционной системы из события.device == 'pc'
) и содержит ли операционная система строку 'Windows' ('Windows' in os
).TRUE
.FALSE
.Другие статьи про Jinja:
Базовый синтаксис Jinja
Структура данных в Jinja
Фильтры в Jinja
Персонализация с помощью Jinja