Софтплюс

Вы здесь

Разработка рассылок для 1С-Битрикс.

Триггеры - специальные функции, которые срабатывают по наступлению определенного события. В CMS Битрикс триггеры используются в основном для рассылки цепочек почтовых сообщений, например, для подтверждения регистрации, после оформления нового заказа в интернет магазине и т.д.
В этой статье мы разберем, как работают почтовые триггеры и как разработать свой триггер для почтовых рассылок.

Как работает триггерная рассылка

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

На этапе отправки писем триггер проверяет, соответствуем ли получатель следующим требованиям:

  • Подписан ли получатель на рассылку
  • Не запущена ли рассылка для одного получателя параллельно.

Рассылка отмечается завершенной для получателя после:

  • Отправки всех писем.
  • После выполнения целевого действия получателем.

Как создать свой триггер

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

  • Для какого модуля будет разрабатываться триггер
  • Определить в каких событиях будет задействован триггер

В 1C-Битрикс у каждого модуля есть свои события, для которых подключаются триггеры, тем самым обеспечивая взаимосвязь с другими модулями и компонентами. Более подробно ознакомится с событиями модулей можно на страницах официальной документации системы управления контентом.

Далее, необходимо создать класс триггер.

class SenderTrigger extends \Bitrix\Sender\Trigger {
   public function getName() {
      return 'My trigger'; // Название триггера
   }
   public function getCode() {
      return "my_trigger"; // Код триггера
   }
   public function getEventModuleId() {
      return 'blog'; // Имя модуля, в котором находятся необходимые нам события
   }
   public function getEventType() {
      return "OnCommentAdd"; // Код события
   }
   public function getRecipient() {
      return array(); // Выборка получателей
   }
   public function filter() {
      return true; // Логика разрешения отправки e-mail
   }
}

После создания класса триггера необходимо подключить его в модулю отправки писем (sender).

AddEventHandler("sender", "OnTriggerList", array("MySenderEvent","onTriggerList"));
class MySenderEvent {
   public static function onTriggerList($data) {
      require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/php_interface/trigger.php');
      $data['TRIGGER'] = 'SenderTrigger';
      return $data;
   }
}

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