Биллинг: различия между версиями

Материал из CMS Sitebill Wiki
Перейти к навигации Перейти к поиску
Строка 37: Строка 37:
 
Также пользователю, которого система переключает на другой тариф отправляется уведомление на email.<br/>
 
Также пользователю, которого система переключает на другой тариф отправляется уведомление на email.<br/>
 
<br/>
 
<br/>
=== Настройка биллинга ===
+
= Настройка биллинга =
 
'''<big>Настройка биллинга</big>'''<br />
 
'''<big>Настройка биллинга</big>'''<br />
 
Услуга '''limit_data''' - указывает на ограничение по количеству возможных добавленных объявлений для одного пользователя в одном временном промежутке. Используйте ее, если Вам необходимо ограничить количество добавляемых пользователем объявлений на одном временном отрезке.<br />
 
Услуга '''limit_data''' - указывает на ограничение по количеству возможных добавленных объявлений для одного пользователя в одном временном промежутке. Используйте ее, если Вам необходимо ограничить количество добавляемых пользователем объявлений на одном временном отрезке.<br />

Версия 12:52, 10 сентября 2015

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

Для начала представьте себе временную шкалу. И объявления которые расположены на этой шкале. Задача биллинга состоит в том чтобы четко ограничивать время жизни той или иной функции на временной шкале по отношению к объявлению. Это относится как к длительности существования этой функции так и к количеству возможных объявлений на одном промежутке времени. И для того чтобы разделить длительность, количество и прочие параметры в биллинге введены такие сущности как услуги. Несколько услуг объединены в пакет. И этот пакет называется Тарифом.

Создавая наборы типовых услуг но с разными временными и количественными характеристиками мы можем объединять эти услуги в разные тарифы. Таким образом, мы добиваемся разных условий для пользователей, которые находятся на тарифе «Начальный» и тарифе «Профессионал». В тарифе «Профессионал» могут быть более выгодные условия размещения.

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

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

  • Загружает список всех пользователей
  • Затем проходит в цикле по каждому пользователю и определяет тариф этого пользователя.
  • Для тарифа выполняется загрузка списка услуг. И в соответствии с названием услуги и ее параметрами применяются операции для объявлений пользователя.

Описание параметров Услуги

  • Системное название – здесь необходимо указать латинскими буквами название услуги, которое будет распознаваться системой. Сейчас доступны следующие названия (limit_data, hotswitcher, upper_limit).
  • Заголовок – понятное для человека название.
  • Длительность в днях – данный параметр указывает на то, сколько будет действовать данный параметр. Причем длительность считается от момента размещения объявления.
  • Период в днях – параметр указывает на то, за какой период времени система будет считать функцию. Например, количество объявлений за 7 дней (календарная неделя с понедельника по воскресенье) или за месяц (также календарный месяц с первого числа по последнее число месяца).
  • Ограничение на количество – тут устанавливается сам ограничитель количества допустимых объявлений. За период в днях описанный выше.
  • Метод программный в классе биллинга – в данном поле можно вписать название метода, который будет выполняться для данной услуги. Сейчас доступны следующие методы:

switch_off – выключение объявления из активных. Не будет доступно на сайте, но будет у пользователя в личном кабинете отображаться красным цветом.
switch_off_hot – отключение параметра «спецпредложения». Также при истечении срока действия спецпредложения оно выключается, но объявление при этом остается доступным на сайте.

Для выполнения процедур биллинга в корне сайта должен находится файл /billing.php

Необходимо вызывать этот скрипт из cron регулярно раз в день.

Настройка абонентской платы для тарифа
Для любого тарифа можно назначить абонентскую плату. Абонентская плата взымается с пользователя 1 раз в месяц (в начале месяца).
Для того чтобы начала списываться абонетсткая плата, нужно завести услугу с ключевым словом abonent - в названии, например abonent_pro.
Например, вот такие параметры этой услуги
Системное название = anonent_pro
Заголовок = Абонентская плата для тарифа ПРО
Длительность в днях = 30 (этот параметр не важен)
Период в днях = 30 (этот период также не важен для услуги)
Ограничение на количество шт. = 0 (параметр не важен для услуги)
Метод программный в классе биллинга = abonent (это важно)
Стоимость = 200 (именно эта сумма будет списываться со счета пользователя в начале месяца)

Затем нужно добавить эту услугу в соответствующий тариф.

Если при начислении абонентской платы в начале месяца у пользователя будет недостаточно средств, тогда система переключит его тариф на тот, что указан в настройках во вкладке Биллинг в поле Идентификатор тарифа на который переключать пользователей, если у них на счету нет денег для продления текущего тарифа (apps.billing.default_tariff_id). Или если там значение 0, то просто выключит тариф на значение "Не выбран".
Также пользователю, которого система переключает на другой тариф отправляется уведомление на email.

Настройка биллинга

Настройка биллинга
Услуга limit_data - указывает на ограничение по количеству возможных добавленных объявлений для одного пользователя в одном временном промежутке. Используйте ее, если Вам необходимо ограничить количество добавляемых пользователем объявлений на одном временном отрезке.

В данной услуге есть следующие параметры:

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

Если в период указать 0, то за промежуток времени будет браться календарный месяц. С первого числа месяца и до последнего числа месяца.

Ограничение на количество - данное поле служит для определения самого количества доступных объявлений для одного пользователя в выбранный период времени.

Услуга advlimit_data - указывает на ограничение по общему количеству объявлений для одного пользователя (При расчете учитываются все объявления, в том числе и неактивные). Используйте ее, если Вам необходимо ограничить общее количество объявлений пользователя.
Услуга advlimit_data поддерживает следующие параметры:
Ограничение на количество - данное поле служит для определения максимального количества доступных объявлений для одного пользователя.
Период - это значение для данной услуги не используется

Пример строки для CRON. Это задание будет выполняться каждый день в 1:01 :

1 1 * * * /usr/bin/wget -O /dev/null -q http://ваш_сайт/billing.php

Настройка пользователей
После того, как вы создали тарифы и услуги нужно добавить поле для выбора тарифа у пользователя.
Для этого в таблицу user через Редактор форм добавляем колонку tariff_id - описание полей можно увидеть на этой картинке http://sitebill.ru/storage/scr/user_tariff.png
Сами пользователи смогут покупать себе тарифы из личного кабинета, для этого нужно добавить пункт меню Мои тарифы и ссылка на /billing/tarifflist - тут находится список тарифов и кнопки для их покупки
Меню пользователя находится тут /template/frontend/ваш_шаблон/user_menu.tpl

Пункт меню может выглядеть так <li > <a href="{$estate_folder}/billing/tarifflist" class="logout">Мои тарифы</a>