Биллинг: различия между версиями
Kondin (обсуждение | вклад) |
Kondin (обсуждение | вклад) |
||
Строка 30: | Строка 30: | ||
Если в период указать 0, то за промежуток времени будет браться календарный месяц. С первого числа месяца и до последнего числа месяца.<br /> | Если в период указать 0, то за промежуток времени будет браться календарный месяц. С первого числа месяца и до последнего числа месяца.<br /> | ||
− | '''Ограничение на количество''' - данное поле служит для определения самого количества доступных объявлений для одного пользователя в выбранный период времени. | + | '''Ограничение на количество''' - данное поле служит для определения самого количества доступных объявлений для одного пользователя в выбранный период времени.<br /> |
+ | |||
+ | Пример строки для CRON. Это задание будет выполняться каждый день в 1:01 :<br /> | ||
+ | |||
+ | 1 1 * * * /usr/bin/wget -O /dev/null -q http://ваш_сайт/billing.php |
Версия 09:42, 11 сентября 2013
Прежде чем описать конфигурационные параметры биллинга хочу для начала рассказать об основной концепции данного приложения.
Для начала представьте себе временную шкалу. И объявления которые расположены на этой шкале. Задача биллинга состоит в том чтобы четко ограничивать время жизни той или иной функции на временной шкале по отношению к объявлению. Это относится как к длительности существования этой функции так и к количеству возможных объявлений на одном промежутке времени. И для того чтобы разделить длительность, количество и прочие параметры в биллинге введены такие сущности как услуги. Несколько услуг объединены в пакет. И этот пакет называется Тарифом.
Создавая наборы типовых услуг но с разными временными и количественными характеристиками мы можем объединять эти услуги в разные тарифы. Таким образом, мы добиваемся разных условий для пользователей, которые находятся на тарифе «Начальный» и тарифе «Профессионал». В тарифе «Профессионал» могут быть более выгодные условия размещения.
В текущей версии продукта пока нет стоимости тарифа. Поэтому администратору необходимо по факту оплаты устанавливать пользователям соответствующие тарифы. Либо блокировать этих пользователей. В будущей версии мы обязательно реализуем функцию автоматического подключения тарифов и их оплату через платежные шлюзы.
Биллинг имеет модуль, который необходимо запускать раз в сутки. Данный модуль выполняет несколько операций.
- Загружает список всех пользователей
- Затем проходит в цикле по каждому пользователю и определяет тариф этого пользователя.
- Для тарифа выполняется загрузка списка услуг. И в соответствии с названием услуги и ее параметрами применяются операции для объявлений пользователя.
Описание параметров Услуги
- Системное название – здесь необходимо указать латинскими буквами название услуги, которое будет распознаваться системой. Сейчас доступны следующие названия (limit_data, hotswitcher, upper_limit).
- Заголовок – понятное для человека название.
- Длительность в днях – данный параметр указывает на то, сколько будет действовать данный параметр. Причем длительность считается от момента размещения объявления.
- Период в днях – параметр указывает на то, за какой период времени система будет считать функцию. Например, количество объявлений за 7 дней (календарная неделя с понедельника по воскресенье) или за месяц (также календарный месяц с первого числа по последнее число месяца).
- Ограничение на количество – тут устанавливается сам ограничитель количества допустимых объявлений. За период в днях описанный выше.
- Метод программный в классе биллинга – в данном поле можно вписать название метода, который будет выполняться для данной услуги. Сейчас доступны следующие методы:
switch_off – выключение объявления из активных. Не будет доступно на сайте, но будет у пользователя в личном кабинете отображаться красным цветом.
switch_off_hot – отключение параметра «спецпредложения». Также при истечении срока действия спецпредложения оно выключается, но объявление при этом остается доступным на сайте.
Для выполнения процедур биллинга в корне сайта должен находится файл /billing.php
Необходимо вызывать этот скрипт из cron регулярно раз в день.
Настройка биллинга
Услуга limit_data - указывает на ограничение по количеству возможных объявлений для одного пользователя.
В данной услуге есть следующие параметры:
Период - если здесь указать 7, то лимит будет определяться недельными промежутками. Отсчет начинается с понедельника и заканчивается в воскресенье. На следующий понедельник счетчик уже будет считать начиная с этого нового понедельника количество объявлений.
Если в период указать 0, то за промежуток времени будет браться календарный месяц. С первого числа месяца и до последнего числа месяца.
Ограничение на количество - данное поле служит для определения самого количества доступных объявлений для одного пользователя в выбранный период времени.
Пример строки для CRON. Это задание будет выполняться каждый день в 1:01 :
1 1 * * * /usr/bin/wget -O /dev/null -q http://ваш_сайт/billing.php