billing:preferences:apps:sender

Модуль рассылки Sender

Модуль рассылки Sender - логическая тарнсформация скрипта рассылки от ForBill, который долгие годы успешно использовался и используется нашими клиентами. Данный модуль включил в себя многие пожелания и идеии клиентов которые были собраны за время эксплуатации скрипта. Одно из главных новшеств это то что модуль получил гибкий интерфейс настроек рассылки из админки.

Основные новшества:

  • Рассылка по событиям (пополнение счета, крон, смена тарифа, и т.д)
  • Возможность составлять свои шаблоны текстовых сообщений
  • "Правильная" рассылка за n-дней до отключения с учетом всей бизнесс логики биллинга
  • Возможность составлять сложные шаблоны рассылки с помощью конструктора. К примеру "на балансе < 10" + "активна услуга смс рассылка"
  • шаблоны - справочник загаотовленных текстовых шаблонов используемых для рассылки сообщений. Подерживаются переменные которые можно использовать в тексте.
  • условия - конструктор условий согласно которым будет происходить рассылка
  • событие - событие в жизни абонента которое служит тригером для проверки условия на рассылку.
  • задание - подготовленные к рассылке записи в базе данных с успешно сработанными "условиями"
  • обработчик рассылки - консольная команда которая запускает обработчик "заданий".
  • обработчик создания условий - консольная команда которая запускает создание "заданий" и обработку "условий" с типом событие "Без события. CRON". Используется к примеру для рассылки за "n-дней"
  • sender_create_jobs - обработчик создания заданий с типом событие "Без события. CRON". Данная команда добавит задания на рассылку для команды sender_run_jobs
  • sender_run_jobs - обработчик который запускает рассылку сообщений по ранее подготовленным заданиям. Фактически она будет рассылать подготовленные тексты смс сообщения из заданий
sender_run_jobs - данную команду можно ставить в 5-ти минутный CRON.
sender_create_jobs - данную команду можно ставить в CRON на 9:00 -10:00 утра когда вы планируете выполнить рассылку по абонентам, к примеру за "n-дней".

Рассылка в модуле происходит следующим образом: команда sender_run_jobs запускает в работу подготовленные ранее задания.

Задания могут быть созданы двумя способами:

  • В ручную - запуском команды sender_create_jobs которая обработает условия констрокторов с типом события "Без События.CRON"
  • Автоматически - срабатыванием события у абонента с последующей проверкой на соотвествие условий конструктора по конкретному абоненту. К примеру: Абонент пополнил счет. Срабатывает событие "Пополнение счета", модуль ищет все шаблоны с данным типом условия, проверяет условия, если условия удовлетворяются создается запись в задание на рассылку.


  • Без события. CRON - данный тип события обрабатывается запуском в ручную команды sender_create_jobs
  • Пополнение счета - пополнение счета абонента
  • Подключение подписки - подключения подписки (услуги)
  • Подключение Real IP - подключение услуги "Реальный IP"
  • Смена тарифа - смена тарифного плана у абонента
  • Смена тарифа. С большей абонплатой" - смена тарифного плана абонента с большей абонплатой
  • Смена тарифа. С меньшей абонплатой" - смена тарифного плана абонента с большей абонплатой



Данный справочник создан для шаблонов текстовых сообщений.

Пример шаблона:

Уважаемый абонент, услуга Интернет будет отключена через %left_day%-дня. На вашем счете %deposit% %currency%. Пополните свой счет.

Поддерживаемые переменные:

  • %service_name% - Название подписки. Значение передается только для события "Подключение подписки"
  • %new_packet% - Название нового тарифа. Значение передается только для события "Смена тарифа"
  • %old_packet% - Названине старого тарифа. Значение передается только для события "Смена тарифа"
  • %left_day% - кол-во дней дней до отключения интернета
  • %pay_amount% - сумма пополнения счета. Значение передается только для события "Пополнение счета"
  • %rec_summa% - рекомендованная сумма пополнения
  • %uid% - UID абонента
  • %fio% - ФИО абонента
  • %deposit% - значение текущего баланса абонента
  • %credit% - значение текущего кредита абонента
  • %login% - логин абонента
  • %dogovor% - номер договора абонента
  • %currency% - валюта (из настроек биллинга)


Данный справочник предназнчен для создания условий на рассылку.


  • Активировать - опция отвечающая за то, что будет или нет обработчик модуля обрабатывать данное условие
  • Название - название условия
  • Событие - событие по которому данное условие будет срабатывать
  • Период - период за который будет производится проверка кол-во раз выполнения условия для абонента
  • Кол-во раз за период - кол-во раз выполнения данного условия у абонента. Полезна когда есть необходимость к примеру ограничить кол-во рассылок определенного типа в день/месяц/неделю/год. Для того чтобы отключить проверку на "кол-во раз за период" необходимо указать значение равное = 0
  • Шаблон - текстовый шаблон рассылки из справочника "Sender Шаблоны"
  • Условия - дополнительные условия


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


Сущности:

  • Дата договора (прошло дней) - кол-во дней прощедшие со дня заключения договора
  • Сумма пополнения - сумма пополнения счета. Данный параметр передается только при событии "Пополнение счета", во всех других случаях значение равно 0
  • ID тарифа. Текущий - ID текущего тарифа абонента, из справочника Тарифов
  • ID тарифа. Старый - ID тарифа который был до смены тарифа. Данный параметр передается только при событии "Смена тарифа", во всех других случаях значение равно 0
  • ID подключаемой подписки - ID подключаемой подписки. Данный параметр передается только при событии "Подключение подписки", во всех других случаях значение равно 0
  • ID активной подписки из … - ID активной(оплаченной) подписки абонента. В данной сущности будут работать только операторы сравнения IN(…) и NOT IN(…)
  • Баланс пользователя - значение текущего баланса абонента
  • Интернет включен (1/0) - текущее состояние галочки "Интернет" в карточке абонента
  • Дата. Текущее число месяца - текущее число месяца
  • Кол-во дней предоплаты - кол-во дней предоплаты абонентом при пополнениии счета. Данный параметр зависит от суммы пополнения счета и передается только при событии "Пополнение счета", во всех других случаях значение равно 0
  • Состояние договора (0,1,2,3) - текущее состояние договора в карточке абонента: 0- нет данных, 1- действует, 2- приостановлен, 3- закрыт
  • Статус абонента - статус абонента. Возможные значения: 1-обычный, 2-замороженный, 3-отключенный, 4-удаленный
  • Интернет отключится через (дней) - кол-во дней через которые отключится интернет. Значение берется из карточки абонента
  • UID абонента - UID абонента
  • ID субпровайдера - ID субпровайдера, если абонент не пренадлежит субпровайдеру значение равно 0


Операторы сравнения:

  • > - больше
  • >= - больше или равно
  • = - равно
  • != - не равно
  • - меньше или равно
  • < - меньше
  • IN(…) - значение входит в список. Значения перечисляются через запятую
  • NOT IN(…) - значения не входят в список. Значения перечисляются через запятую

Задание: Выполнять смс оповещение о пополнение счета при активной подписке "Пополнение счета"

Решение: Создаем условие на рассылку где ID подписки "Смс информирование" равно = 123.

Итог: При пополнении счета и наличии активной подписки с ID=123, абоненту будет создавать задание на рассылку с текстом из указанного шаблона.

Задание: Выполнять смс оповещение об отключении абонета за 3 дня

Решение: Создаем условие на рассылку где значение "Кол-во дней до отключения" равно = 3 и событие "Нет события. CRON"

Итог: При запуске обработчика условий без события командой sender_create_jobs будет создано задание на рассылку всем абонентам у которых кол-во дней до отключения соответствует 3 дням.

  • billing/preferences/apps/sender.txt
  • Последнее изменение: 7 нед. назад
  • Максим Ступаков