Как работать с логическим типом параметров

Логический тип поля означает, что параметр может иметь значение «да» или «нет».
Так же значение может отсутствовать, то есть быть null.
Это надо учитывать при проверке параметра в письме.

Как проверить, что значение поля = «да»

@{if field}
@{end if}

Как проверить, что значение поля = «нет»

@{if not field}
@{end if}

Как проверить, что у поля есть значение

@{if field != null}
@{end if}

Вместо field подставляем параметр с логическим типом

Примеры

  • Пример 1

Есть дополнительное поле «Участвует в акции» (системное имя PartInPromo) с типом «Логическое».

Задача: при значении «да» вывести дату начала акции, в остальных случаях предложить принять в ней участие.

Что надо сделать: проверить, что у поля есть значение (не равно null) и что оно положительное.
Оставшимся можно вывести текст в помощью else.

Вёрстка:

@{if Recipient.CustomField.PartInPromo != null and Recipient.CustomField.PartInPromo}
Начало акции 1 февраля.
@{else}
Примите участие в акции.
@{end if}
  • Пример 2

Есть дополнительное поле «Посетит лекцию» (системное имя AttendLection).

Задача: при ответе «да» вывести дату и время лекции, при ответе «нет» уточнить, не передумал ли клиент, при отсутствии значения спросить, не хочет ли клиент пойти на лекцию.

Проверка на отсутствие значения должна идти первой (подробное объяснение — ниже в статье).

Вёрстка:

@{if Recipient.CustomField.AttendLection = null}
Не хотите ли посетить лекцию?
@{else if Recipient.CustomField.AttendLection}
Начало лекции 1 февраля в 19:00.
@{else if not Recipient.CustomField.AttendLection}
Ещё есть время передумать.
@{end if}

Подробнее о том, зачем нужна проверка на null.

При отсутствии значения поля с ним нельзя взаимодействовать.
А проверка на да/нет является таким взаимодействием.
Поэтому если мы начнём блок с @{if Recipient.CustomField.AttendLection}, а оно null, такое письмо упадёт, ведь мы пытались обратиться к значению поля и сравнить его с true.

В случае, если мы на уровне фильтра рассылки проверяем, что у всех получателей заполнено поле, проверку на отсутствие значения можно опустить.

Как ускорить верстку email-рассылок с помощью универсального шаблона