Мы только на стадии планирования веб-приложения, которое предлагает подписки для наших клиентов.Периоды подписки могут варьироваться и могут быть продлены нашими клиентами на неопределенный срок, но всегда составляют не менее одного месяца (30 дней).
Когда клиент регистрируется, информация о клиенте (платежный адрес, номер телефона и т. Д.)хранятся в таблице customers
, а в таблице subscriptions
создается подписка:
id | start_date | end_date | customer_id
--------------------------------------------------------
1 | 2010-12-31 | 2011-01-31 | 1
Каждый месяц мы будем циклически проходить по таблице subscriptions
(предпочтительно cronjob) и создавать счета дляпрошедший период подписки, который размещен в собственной таблице - invoices
.В зависимости от клиента счета-фактуры распечатываются вручную и отправляются по почте или просто отправляются клиенту по электронной почте.
В зависимости от характера наших клиентов и продукта, мы должны предложить различные варианты оплаты, включаябанковский перевод и платежи по карте, поэтому некоторые счета могут потребоваться обрабатывать вручную и регистрировать как оплаченные нашими сотрудниками.
15-го числа каждого месяца таблица invoices
проходит циклически, и если для фактического счета-фактуры не было отмечено никакой оплаты, соответствующая подписка будет удалена.Если зарегистрирован зарегистрированный платеж, end_date
в таблице subscriptions
увеличивается еще на 30 дней (или на то, что сейчас наш период выбрал наш клиент).
Смотрим ли мы на головные боли, увеличивая даты вперед иназад, чтобы справиться с неоплачиваемыми клиентами и продлением подписки?Было бы лучше добавить новые подписки, поскольку клиенты продлевают свою подписку?