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

Материал из CMS Sitebill Wiki
Перейти к навигации Перейти к поиску
Строка 73: Строка 73:
 
|-
 
|-
 
| upperlimit || Количество подъемов в учетный период || Период в котором производится учет поднятий || -
 
| upperlimit || Количество подъемов в учетный период || Период в котором производится учет поднятий || -
 +
|-
 +
| bpack_prem || Количество включенных премиальных статусов в учетный период || Период в котором производится учет использования премиальных статусов || -
 +
|-
 +
| bpack_vip || Количество включенных VIP-статусов в учетный период || Период в котором производится учет использования VIP-статусов || -
 +
|-
 +
| bpack_bold || Количество включенных выделенных статусов в учетный период || Период в котором производится учет использования выделенных статусов || -
 
|}
 
|}
  

Версия 21:47, 21 сентября 2016

Общая информация

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

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

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

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

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

Установка

  • Распакуйте архив дистрибутива billing.zip
  • Загрузите каталоги tariff, billing, service, upper в /apps/ по фтп на сайт
  • billing.php надо загрузить в корень сайта
  • Теперь нужно зайти в обновления и обновить все доступные приложения. В архиве не всегда успеваем создавать свежие версии, поэтому лучше перепроверить их обновления.
  • Зайти приложения - Тарифы и нажать установить
  • Зайти приложения - Биллинг
  • В настройках - включить тарифы, биллинг
  • Создать тарифы (смотрите ниже)
  • Добавить в редакторе форм в таблицу data поля vip_status_end, premium_status_end, bold_status_end. Эти поля все должны быть тип: date, хранить в базе и доступ только для группы администраторов

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

  • Системное название – здесь необходимо указать латинскими буквами название услуги, которое будет распознаваться системой. Сейчас доступны следующие названия (limit_data, hotswitcher, upper_limit).

Системное название услуги состоит из формальной неизменяемой части и идентифицирующей части. Формальная часть должна идти в начале системного имени услуги и иметь одно из предопределенных значений limit_data, upper_limit, advlimit_data. Идентифицирующая часть следует за формально, отделенная знаком подчеркивания и может иметь произвольную форму, позволяющую по ней понять о какой именно услуге из набора подобных идет речь. На роботу биллинга эта часть не оказывает никакого влияния. Обычно, в качестве идентифицирующей части используется краткое имя тарифа, к которому эта услуга прикрепляется. Прмеры названия услуги:

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

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

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

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

Услуги биллинга

limit_data

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

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

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

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

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

advlimit_data

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

upperlimit

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

Название услуги Ограничение на количество Период Длительность в днях
advlimit_data Максимальное количество существующих объявлений - -
limit_data Максимальное количество добавленных объявлений Период в котором производится учет добавленных объявлений -
upperlimit Количество подъемов в учетный период Период в котором производится учет поднятий -
bpack_prem Количество включенных премиальных статусов в учетный период Период в котором производится учет использования премиальных статусов -
bpack_vip Количество включенных VIP-статусов в учетный период Период в котором производится учет использования VIP-статусов -
bpack_bold Количество включенных выделенных статусов в учетный период Период в котором производится учет использования выделенных статусов -

Настройка абонентской платы для тарифа

Для любого тарифа можно назначить абонентскую плату. Абонентская плата взымается с пользователя 1 раз в месяц (в начале месяца).

Для того чтобы начала списываться абонетсткая плата, нужно завести услугу с ключевым словом abonent - в названии, например abonent_pro.

Примерные значения параметров этой услуги приведены ниже:

Системное название = abonent_pro

Заголовок = Абонентская плата для тарифа ПРО

Длительность в днях = 30 (этот параметр не важен)

Период в днях = 30 (этот период также не важен для услуги)

Ограничение на количество шт. = 0 (параметр не важен для услуги)

Метод программный в классе биллинга = abonent (Единственное допустимое значение.)

Стоимость = 200 (именно эта сумма будет списываться со счета пользователя в начале месяца)

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

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

Также пользователю, которого система переключает на другой тариф отправляется уведомление на email.

Настройка CRON-задачи

Пример строки для 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></li>