Инструкция

Как подставлять переменные в письма

Плюс список системных и пользовательских переменных
Что такое переменные и какие они бывают
Переменные — это поля, вместо которых в рассылке подставляются данные конкретного пользователя или другая информация.

Все переменные делятся на системные и пользовательские.

Системные переменные используются при вёрстке письма и позволяют «сказать» сервису, какие данные нужно подставить или какое действие совершить в том или ином случае. Например, добавить ссылку отписки в письмо.

Типы системных переменных в Mailganer:
В базе данных имейлов у каждого подписчика есть свой профиль. Содержащаяся в нём информация (имя, город и другие) называется пользовательскими переменными.

Пользовательские переменные нужны для лучшей персонализации писем. Они содержат в себе дополнительные сведения о подписчиках и добавляются каждым клиентом самостоятельно. Например, имя или дата рождения.

Пользовательские переменные бывают глобальные и локальные.
Локальные переменные
Локальные переменные существуют в конкретном списке и могут быть использованы только для подписчиков из указанного списка.

При этом один и тот же подписчик в разных списках может иметь разные значения для локальных переменных с одним и тем же именем.

Тип переменной указан в столбце «Уровень». Вот пример отображения локальных переменных в списке:
Глобальные переменные
Глобальные переменные существуют во всех списках аккаунта и для подписчика имеют одинаковое значение во всех списках.

При изменении значения глобальной переменной в любом из списков, её значение обновится во всех списках аккаунта.

В примере ниже — пример отображения в списке глобальной переменной Bonus_global.
Чтобы использовать пользовательские переменные в теме или вёрстке письма, нужно сначала занести их в Mailganer. Как это сделать написано в статье Как импортировать подписчиков
Где посмотреть переменные
В настройках списка
Все переменные, используемые в конкретном списке находятся в его настройках во вкладке «Переменные».
Там же есть кнопка «Добавить переменную», по клику на которую открывается окно добавления новой переменной, где можно задать название, тип данных и уровень.
В данных о подписчике
Если нужно посмотреть, какие переменные есть у конкретного контакта, то лучше сделать это в разделе информации о подписчике. Кликните на нужный адрес в разделе «Подписчики» — и вам откроется его полный профиль.

В нём будет указан список переменных и данных по каждой из них, если они есть. Пример отображения:
Как подставить переменную в письмо
Все переменные добавляются в письмо при помощи её названия в двойных фигурных скобках, например {{city}}.

При отправке письма система автоматически проверяет информацию по переменной и подставляет её значение из пользовательской базы.
Динамические условия

Можно поставить любую переменную в тему или контент письма и при помощи оператора "если" {% if %} проверить значение переменной.

Например, если известно имя пользователя — оно подставляется, если нет — то обращение будет «Дорогой подписчик»:

{% if name %} 
    {{name}} 
{% else %} 
    Дорогой подписчик 
{% endif %} 
Или, например, если известен пол подписчика, то подставляется соответствующее окончание, если нет — то нейтральное:

уважаем 
{% if gender == 'Муж' %} 
  ый 
{% elif gender == 'Жен' %} 
  ая 
{% else %} 
  ый 
{% endif %} 
Цикл for

Для упрощения работы с повторяющимися блоками Mailganer позволяет использовать конструкцию {% for %}.

Например, вы можете перебрать значения пользовательской переменной, если переменная является итерируемым объектом: списком или словарем.

Рассмотрим на примере.
Задача: разместить в виде таблицы данные из списка.

Теория

В HTML, чтобы создать таблицу, нужно использовать тэги:

  • <table> — создает контейнер для таблицы;
  • <tr> — строка в таблице;
  • <td> — ячейка в строке.
Простая верстка для примера:

<table>
    <tr>
        <td>Text 1</td>
        <td>Text 2</td>
        <td>Text 3</td>
    </tr>
</table>

<table>
    <tr>
        <td>Text 4</td>
        <td>Text 5</td>
        <td>Text 6</td>
    </tr>
</table>

<table>
    <tr>
        <td>Text 7</td>
        <td>Text 8</td>
        <td>Text 9</td>
    </tr>
</table>
На выходе вы получите следующую таблицу:
Цикл for позволяет вам не писать весь код выше вручную, а использовать конструкцию. Тогда Ваш код будет выглядеть так:

{% for i in array %}
<table>
	<tbody>
		<tr>
			<td>{{ i }}</td>
		</tr>
	</tbody>
</table>
{% endfor %}
Array — это итерируемый объект, например список вида ["Саша", "Маша", "Даша"], а i - это временная переменная, которая пробежится по списку. То есть на первом шаге i="Саша", на втором шаге i="Маша" итд.
Важно при подготовке вёрстки не вставлять опертары {% for %} или {% if %} между тегами <table> и <td>. Иначе при сохранении письма операторы автоматически переместятся перед <table> и вёрстка "поедет".
Переменные типа float и date

{{cost|floatformat:"0"}} сделает число целым.

Например: 45600,70 → 45600

Подробная информация по переменной float

{{birthday|date:"j l"}} превратит шаблонную дату в текст.

Например: 05.06.2003 → 5 июня

Подробная информация по переменной date