OpenCart-Abonnementmodell (x Monate)

Ich richte mit OpenCart eine E-Commerce-Site ein und möchte Abonnements anbieten. Speziell Abonnements für 3/6/12 Monate. Ich bin NICHT an wiederkehrenden Abrechnungen interessiert (mir ist bekannt, dass es Module für PayPal und Authorize.net gibt). Ich möchte, dass Benutzer einmal im Voraus bezahlen. Entspricht dies aus Konfigurationssicht 3 Pseudoprodukten? Ich denke, dies ist nur mit der Produktkonfiguration möglich. 3 Produkte zu je einem Preis.

Hier kommt der schwierige Teil. Für jeden Monat, den die Benutzer bezahlt haben, können sie innerhalb ihres "Abrechnungszyklus" nur einmal im Monat ein Produkt bestellen. Wenn ein Benutzer am 23.5. Ein 3-Monats-Abonnement bezahlt:

er kann ein Produkt in der Periode 23 / 5-22 / 6 bekommen,eine in 23 / 6-22 / 7 undeine in 23 / 7-22 / 8

Ein Benutzer sollte nicht in der Lage sein, mehr als ein Produkt pro Monat zu bestellen, und er sollte auch nach dem 22. August keine Produkte mehr erhalten können, es sei denn, er verlängert sein Abonnement. Darüber hinaus wäre es fantastisch, wenn ich einen Cron-Job hätte und prüfen könnte, ob ein Benutzer sein Abonnement für den aktuellen Monat genutzt hat, und eine Art Erinnerungs-E-Mail mit dem Betreff "Hey, hol dein Produkt für diesen Monat" senden könnte.

Dies ist mein erstes OpenCart-Projekt, ich habe die Dokumentation durchgearbeitet und viel gegoogelt, ich habe mit einer lokalen Installation gespielt und ich versuche herauszufinden, ob das, was ich verlange, machbar ist, ohne den Kerncode zu ändern vermeide das. Wenn es keine andere Möglichkeit gibt, verstehe ich, dass OpenCart ein MVC (+ L (Anguage)) - Framework ist, aber ich habe keine solide Dokumentation gefunden, wie man seine Funktionalität anpasst, nur Kleinigkeiten für bestimmte Anforderungen.

Wenn ich darf, möchte ich aufschreiben, was ich vorhabe, bitte raten, ob dies in Ordnung klingt:

Ich möchte eine weitere Entität (Objekt / Modell) zum Speichern des Abonnements hinzufügen, den Benutzer, zu dem es gehört, Start- und Enddatum und ob es verwendet wurde. Grundsätzlich handelt es sich bei einem Abonnement um eine normale Bestellung, und ich möchte, dass es wie eine gespeichert wird. Ich muss nur ein paar weitere Felder beibehalten. Wie gesagt, ich muss zwei Prüfungen durchführen:Hat der Benutzer sein Abonnement für den aktuellen Monat genutzt? Aus diesem Grund habe ich darüber nachgedacht, ein Flag "isUsed" -Feld zu haben, das mit einem Cron-Job jedes Mal zurückgesetzt werden kann, wenn ein Benutzer sein Rechnungsdatum erreicht. (in unserem Beispiel 23/6, 23/7). Alternativ könnte ich 3 Einträge hinzufügen, einen für jeden Abrechnungszyklus, und diese entsprechend aktualisieren.Ist das Abonnement abgelaufen? Ich konnte das Ablaufdatum des Abonnements überprüfen.

Ich habe keine Ahnung, wie ich diese Funktionalität beim Auschecken einbinden oder wie ich mit der Implementierung beginnen soll.

Ich bin durch das Forum gegangen und habe heftig gegoogelt, aber ich habe noch keine Antwort gefunden. Ich bin ein erfahrener Grails / Java EE-Entwickler, daher bin ich ziemlich technisch, falls dieser Beitrag zu technisch wird :-)

Hört sich das machbar an und bin ich auf dem richtigen Weg?

Prost,
Iraklis

Antworten auf die Frage(1)

Ihre Antwort auf die Frage