Транзакционные письма это мощный инструмент для отправки писем с кастомной логикой. В письмо можно передавать переменные и зашивать различную логику. Такие письма бывают 2 типов: сервисные и маркетинговые. Сервисный тип письма игнорирует статус подписки пользователя, и традиционно используется для отправки служебных писем:
- восстановление пароля
- подтверждение подписки (double opt-in (DOI))
- подтверждение регистрации
- процессы, связанные с оплатой (счёт на оплату, чек, возврат денег на счёт, проблемы с оплатой и др.)
Один пользователь может получить не более 5 сервисных писем за 1 час
Маркетинговый тип письма используется для маркетинговых рассылок, например:
- рассылки купонов
- уникальные скидки и товарные предложения для постоянных клиентов
Пользователь может отписаться от маркетинговых кампаний и больше не сможет получать письма, пока не подпишется снова
отписка распространяется на триггерные рассылки
Использование переменных в верстке письма
Тело запроса – JSON объект с данными, которые должны использоваться в письме. Пример для письма о подтверждении заказа:
{
"TransactionId": "123",
"Products": [{
"Id": 123,
"Name": "Sample Product Name",
"Url": "http://example.com/product1",
"PictureUrl": "http://example.com/product1image.png",
"Price": 13130,
"OldPrice": 14500
}, {
"Id": 321,
"Name": "Another product name",
"Url": "http://example.com/product2",
"PictureUrl": "http://example.com/product2image.gif",
"Price": 16120,
"OldPrice":""
}]
}
Доступ к переменным из тела запроса осуществляется при помощи обращения к объекту CampaignProcess.Data. Пример верстки письма:
{% if CampaignProcess.Data %}
<h2>Состав заказа:</h2>
{% for product in CampaignProcess.Data.Products %}
<p>{{product.Name}}</p>
{% endfor %}
{% assign productIds = CampaignProcess.Data.Products | map : "Id" | join : ","%}
{% assign reco = Products.Related.productIds %}
{% assign recoSize = Products.Related.productIds | size %}
{% if recoSize > 0 %}
<h2>Рекоммендации к заказу:</h2>
{% for product in reco %}
<p>{{product.Name}}</p>
{% endfor %}
{%endif%}
{% else %}
{{ Message | cancel : "No data" }}
{%endif%}
<a target="_blank" href="{{Message.CancelThisSubscriptionUrl}}">Отписаться</a>
Для расширения функционала шаблонизации, в письмах Retail Rocket используется язык Liquid. Liquid позволяет внедрять в шаблон дополнительные данные о подписчиках и товарах, формулировать условия «если», обращаться к циклам и применять стандартные фильтры.
Справочная информация: