Jesteśmy dopiero na etapie planowania aplikacji internetowej, która oferuje subskrypcje dla naszych klientów. Okresy subskrypcji są różne i mogą być przedłużane przez naszych klientów na czas nieokreślony, ale zawsze trwają co najmniej jeden miesiąc (30 dni).Logika aplikacji do fakturowania i subskrypcji?
Gdy klient podpisze górę, informacje o klientach (adres rozliczeniowy, numer telefonu i tak dalej) są przechowywane w customers
stole i subskrypcja jest tworzony w subscriptions
tabeli:
id | start_date | end_date | customer_id
--------------------------------------------------------
1 | 2010-12-31 | 2011-01-31 | 1
Co miesiąc” Przejdź przez tabelę subscriptions
(najlepiej cronjob) i utwórz faktury za poprzedni okres subskrypcji, które znajdują się w ich własnej tabeli - invoices
. W zależności od klienta faktury są drukowane ręcznie i wysyłane pocztą lub po prostu wysyłane pocztą elektroniczną do klienta.
Ze względu na charakter naszych klientów i produktu, musimy oferować wiele różnych metod płatności, w tym przelewy i płatności kartą, dlatego niektóre faktury mogą wymagać ręcznego przetworzenia i zarejestrowania jako opłacone przez nasz personel.
Piętnaście każdego miesiąca, tabela invoices
jest zapętlona, a jeśli żadna płatność nie została zaznaczona dla rzeczywistej faktury, odpowiedni abonament zostanie usunięty. Jeśli zarejestrowana jest płatność, tabela end_date
w tabeli subscriptions
zwiększa się o kolejne 30 dni (lub co teraz oznacza nasz okres, który wybrał nasz klient).
Czy patrzymy na bóle głowy, zwiększając daty do przodu i do tyłu, aby obsłużyć niepłacących klientów i przedłużając subskrypcje? Czy byłoby lepszym pomysłem dodawanie nowych subskrypcji, gdy klienci przedłużą subskrypcję?
Czy nie sądzisz, że pojawią się problemy z nakładaniem się nowych/starych subskrypcji? – Industrial