Model subskrypcji OpenCart (x miesięcy)

Tworzę witrynę handlu elektronicznego za pomocą OpenCart i chcę oferować subskrypcje. Szczególnie subskrypcje 3/6/12 miesięcy. Nie jestem zainteresowany powtarzaniem płatności (mam świadomość, że istnieją moduły dla PayPal i Authorize.net). Chcę, aby użytkownicy płacili raz z góry. Czy to przekłada się na 3 pseudo-produkty z punktu widzenia konfiguracji? Myślę, że jest to możliwe do tej pory, tylko z konfiguracją produktu. 3 produkty, każdy w jednej cenie.

Nadchodzi trudna część. Za każdy miesiąc, w którym użytkownicy płacili, mają dostęp do zamówienia produktu tylko raz w miesiącu, w ramach „cyklu rozliczeniowego”. Więc jeśli użytkownik płaci za 3-miesięczną subskrypcję 23/5:

może uzyskać jeden produkt w okresie 23 / 5-22 / 6,jeden w 23 / 6-22 / 7, ijeden w 23 / 7-22 / 8

Użytkownik nie powinien mieć możliwości zamawiania więcej niż jednego produktu miesięcznie i nie powinien mieć możliwości uzyskania żadnych produktów po 22/8, chyba że odnowi swoją subskrypcję. Co więcej, byłoby wspaniale, gdybym mógł wykonać zadanie crona, sprawdzić, czy użytkownik wykorzystał swoją subskrypcję na bieżący miesiąc, i wysłać e-mail przypominający „Hej, weź swój produkt na ten miesiąc”.

To jest mój pierwszy projekt OpenCart, dużo przeszedłem przez dokumentację i Googled, grałem z lokalną instalacją i próbuję się dowiedzieć, czy to, o co pytam, jest wykonalne bez modyfikacji kodu podstawowego, chciałbym unikaj tego. Jednakże, jeśli nie ma innego sposobu, rozumiem, że OpenCart jest strukturą MVC (+ L (anguage)), ale nie znalazłem żadnej solidnej dokumentacji na temat tego, jak dostosować jego funkcjonalność, tylko trochę odpowiadać konkretnym wymaganiom.

Jeśli mogę, chciałbym napisać, co mam na myśli, proszę poinformować, jeśli brzmi to dobrze:

Chciałbym dodać jeszcze jedną jednostkę (obiekt / model) do przechowywania subskrypcji, użytkownika, do którego należy, datę początkową i końcową oraz czy została ona wykorzystana. Zasadniczo subskrypcja jest normalnym zamówieniem i chciałbym, żeby była przechowywana jak jedna, po prostu muszę utrzymać kilka dodatkowych pól. Jak powiedziałem, muszę przeprowadzić dwie kontrole:Czy użytkownik korzystał z subskrypcji na bieżący miesiąc? W tym celu myślałem o posiadaniu pola „isUsed”, które można zresetować za pomocą zadania cron, za każdym razem, gdy użytkownik osiągnie datę rozliczenia. (w naszym przykładzie 23/6, 23/7). Alternatywnie mogę dodać 3 wpisy, po jednym dla każdego cyklu rozliczeniowego i odpowiednio je zaktualizować.Czy subskrypcja wygasła? Mogę sprawdzić przed datą wygaśnięcia subskrypcji.

Nie mam pojęcia, jak podłączyć tę funkcję w trakcie realizacji transakcji lub jak zacząć ją wdrażać.

Przeszedłem przez forum i Googled mocno, ale nie znalazłem jeszcze odpowiedzi. Jestem doświadczonym deweloperem Grails / Java EE, więc jestem dość techniczny, jeśli ten post stanie się zbyt techniczny :-)

Czy powyższy dźwięk jest wykonalny i czy jestem na dobrej drodze?

Twoje zdrowie,
Iraklis

questionAnswers(1)

yourAnswerToTheQuestion