Поддержка циклов в вёрстке
Условия if и for, фильтры и другие возможности шаблонизатора Jinja
Зачем нужны циклы и условия в вёрстке писем
При интеграции по SMTP часто возникает задача передать в письме не просто одну переменную (например, имя пользователя), а динамический контент. Это может быть список товаров в корзине, адреса ближайших пунктов выдачи или доступные размеры одежды.
Чтобы не формировать весь HTML-код на стороне отправителя, в SaM oTPravil реализована поддержка мощного шаблонизатора.
Шаблонизатор Jinja
Мы используем шаблонизатор Jinja (аналогично тому, как это реализовано в Mailganer). Это позволяет использовать логические конструкции прямо в коде письма.
Основные возможности
Циклы (for): позволяют итерироваться по массивам данных. Например, если вам нужно вывести список всех позиций в заказе.
Условия (if): позволяют отображать или скрывать блоки контента в зависимости от переданных данных.
Действия и фильтры: поддерживаются стандартные конструкции через вертикальную черту (|), например, приведение к числу (|int) или суммирование (|sum).
Сейчас доступно для методов
Отправка через API
Отправка XML v1
Отправка JSON v1
Пример реализации
Цикл в вёрстке. В HTML-коде письма конструкция будет выглядеть так:
<ul>
{% for item in items %}
<li>{{ item.name }} — {{ item.price }} руб.</li>
{% endfor %}
</ul> Передача данных в запросе. В самом запросе (JSON) вы передаете массив объектов, который шаблонизатор подставит в цикл:
{
"variables": {
"items": [
{"name": "Товар 1", "price": "100"},
{"name": "Товар 2", "price": "200"}
]
}
} Читайте подробнее в блоге Mailganer
Использование условий и циклов в вёрстке ›
Форматирование переменных ›
Использование Jinja в связке с SaM oTPravil дает разработчикам гибкость: вы передаете «сырые» данные, а сервис сам отрисовывает финальный HTML-вид письма. Это упрощает логику на стороне вашего приложения и позволяет дизайнерам править вёрстку без участия бэкенд-разработчиков.
Те, кто уже знаком с Jinja, смогут использовать весь потенциал шаблонизатора (фильтры, форматирование и сложные условия) «из коробки».
Мы используем куки и обрабатываем данные о посетителях сайта согласно политике. Настройки можно изменить в браузере.