Шаблонизатор Liquid, разработанный Shopify, используется для обработки объектов и массивов подстановок с помощью циклов, условий и фильтров. Это позволяет создавать универсальные шаблоны писем, которые автоматически наполняются динамическими данными, передаваемыми в теле запроса методов email/send и template/set. Использование сложных подстановок также снижает объем шаблонов, ускоряет обработку запросов и помогает создавать более гибкие email-кампании с минимальными усилиями.
Подстановки можно использовать в следующих параметрах методов email/send и template/set:
- body.html
- body.plaintext
- body.amp
- subject
- headers
- from_name
- options.unsubscribe_url
Сценарии использования Liquid
1. Обращение к вложенным объектам
Позволяет обращаться к переменным, находящимся внутри объекта подстановок. Это удобно для структурированных данных: пользователь, заказ, адрес и т. д.
Пример подстановки в запросе (параметр global_substitutions — email/send, template/set; substitutions — email/send):
|
Пример использования в письме (параметры body.html, body.plaintext, body.amp, subject, headers, options.unsubscribe_url, from_name — email/send, template/set):
"html":"<p>Здравствуйте, {{ person.name }} {{ person.secondName }}!</p></h1>" |
2. Циклы: вывод массива
Позволяют динамически вывести список элементов — например, товары в заказе, рекомендации, участников мероприятия, ответы в опросе и пр.
Запрос:
|
Шаблон:
|
3. Генерация ссылок
Используется для создания динамических ссылок на основе данных — например, имени пользователя, идентификатора, названия товара. Полезно для генерации кнопок, каталогов и списков.
Запрос:
|
Шаблон:
|
4. Условные конструкции
Позволяют отображать разные блоки контента в зависимости от значений переменных — например, показывать уникальное приветствие новым пользователям или скидку постоянным.
Запрос:
|
Шаблон:
|
5. Фильтры
Применяются для форматирования данных прямо в шаблоне: изменение регистра текста, добавление префиксов, замена строк, работа с числами и датами.
Фильтр |
Пример JSON-запроса |
Шаблон в HTML-письме |
Что увидит получатель |
capitalize — делает первую букву строки заглавной |
{ "name": "анна" } |
Привет, {{ Trigger.name | capitalize }}! |
Привет, Анна! |
upcase — переводит строку в верхний регистр |
{ "promo": "лето2025" } |
Ваш промокод: {{ Trigger.promo | upcase }} |
Ваш промокод: ЛЕТО2025 |
downcase — переводит строку в нижний регистр |
{ "promo": "ЛЕТО2025" } |
Ваш промокод:{{ Trigger.promo | downcase }} |
Ваш промокод: лето2025 |
replace — заменяет часть переменной на другую |
{ "phone": "+7 (999) 123-45-67" } |
Телефон: {{ Trigger.phone | replace: "+7", "8" }} |
Телефон: 8 (999) 123-45-67 |
default — подставляет значение по умолчанию, если переменная пустая |
{ "name": "" } |
Привет, {{ Trigger.name | default: "клиент" }}! |
Привет, клиент! |
date — форматирует дату |
{ "delivery_date": "2025-05-01" } |
Дата доставки: {{ Trigger.delivery_date | date: "%d.%m.%Y" }} |
Дата доставки: 01.05.2025 |
Пример готового запроса email/send с шаблоном на Liquid
Ниже представлен полный рабочий пример запроса:
|
|
Подробнее про шаблонизатор Liquid можно прочитать в документации Shopify.