Язык шаблонизатора MULTIPUSHED
Введение
Язык шаблонизатора MULTIPUSHED позволяет создавать динамические шаблоны для push-уведомлений. С его помощью вы можете персонализировать сообщения, вставляя динамические данные, использовать условные выражения и циклы для создания сложных шаблонов.
Основные возможности
Шаблонизатор MULTIPUSHED поддерживает три основные функции:
- Вставка переменных
- Условные выражения
- Циклы обработки коллекций
Синтаксис
Вставка переменных
Для вставки значения переменной используйте двойные фигурные скобки:
Здравствуйте, {{name}}!
При обработке шаблона {{name}}
будет заменено на соответствующее значение из переданных данных.
Можно использовать вложенные свойства объектов, обращаясь к ним через точку:
Ваш заказ №{{order.id}} на сумму {{order.amount}} руб. оформлен.
Условные выражения
Для добавления условной логики используйте конструкцию @if...@else...@endif
:
@if(user.isVip)
Благодарим за лояльность! Ваша скидка составляет {{discount}}%.
@else
Оформите заказ сегодня и получите скидку 5%!
@endif
Поддерживаются следующие операторы сравнения:
==
- равно!=
- не равно>
- больше<
- меньше>=
- больше или равно<=
- меньше или равно
Логические операторы:
&&
- И||
- ИЛИ
Примеры использования:
@if(order.amount > 5000 && order.isRepeated)
Ваша скидка на следующий заказ составит 10%!
@endif
@if(user.lastVisit < "2023-01-01")
Мы скучали по вам! Возвращайтесь в наш магазин.
@else
Спасибо, что вы с нами!
@endif
Циклы
Для обработки коллекций данных используйте конструкцию @for...@endfor
:
Вы заказали:
@for item in order.items
- {{item.name}}: {{item.quantity}} шт. - {{item.price}} руб.
@endfor
Итого: {{order.total}} руб.
Внутри цикла вы можете обращаться к элементу коллекции, используя имя переменной, указанное после @for
.
Примеры использования
Простой шаблон с переменными
Здравствуйте, {{user.name}}!
Ваш заказ №{{order.id}} успешно оформлен.
Ожидаемая дата доставки: {{order.deliveryDate}}.
С уважением,
Команда MULTIPUSHED
Шаблон с условной логикой
Здравствуйте, {{user.name}}!
@if(order.status == "completed")
Ваш заказ №{{order.id}} успешно выполнен!
@else
Статус вашего заказа №{{order.id}}: {{order.status}}.
@endif
@if(order.amount > 10000)
Вам начислено {{order.bonusPoints}} бонусных баллов!
@endif
С уважением,
Команда MULTIPUSHED
Шаблон с циклом
Здравствуйте, {{user.name}}!
Спасибо за ваш заказ №{{order.id}}!
Состав заказа:
@for product in order.products
• {{product.name}} - {{product.price}} руб. ({{product.quantity}} шт.)
@endfor
Общая сумма: {{order.total}} руб.
@if(order.discount > 0)
Ваша скидка: {{order.discount}}%.
Сумма к оплате: {{order.finalAmount}} руб.
@endif
С уважением,
Команда MULTIPUSHED
Передача данных в шаблон
При отправке push-уведомления вы можете передать данные для шаблона в формате JSON. Например:
{
"user": {
"name": "Иван Петров",
"isVip": true
},
"order": {
"id": "ORD-12345",
"status": "completed",
"amount": 12500,
"discount": 10,
"finalAmount": 11250,
"bonusPoints": 125,
"deliveryDate": "15.06.2023",
"products": [
{
"name": "Смартфон XYZ",
"price": 10000,
"quantity": 1
},
{
"name": "Защитное стекло",
"price": 1000,
"quantity": 2
},
{
"name": "Чехол",
"price": 500,
"quantity": 1
}
]
}
}
Ограничения
Ограничение длины: Учитывайте, что push-уведомления имеют ограничение по длине. Не создавайте слишком длинные шаблоны, особенно при использовании циклов.
Значения по умолчанию: Всегда проверяйте данные на наличие значения. Если переменная не определена, шаблонизатор заменит её пустой строкой.