Модель подписки OpenCart (х месяцев)

Я настраиваю сайт электронной коммерции, используя OpenCart, и хочу предложить подписку. Конкретно 3/6/12 месяцев подписки. Я НЕ заинтересован в регулярном выставлении счетов (я знаю, что существуют модули для PayPal и Authorize.net). Я хочу, чтобы пользователи платили один раз заранее. Это переводит на 3 псевдопродукта с точки зрения конфигурации? Я думаю, что пока это возможно, только с помощью конфигурации продукта. 3 продукта, каждый по одной цене.

Здесь начинается сложная часть. За каждый месяц, когда пользователи платят, у них есть доступ к заказу товара, только один раз в месяц, в течение их «цикла выставления счетов». Итак, если пользователь оплачивает 3-месячную подписку 23/5:

he can get one product in the period 23/5-22/6, one in 23/6-22/7, and one in 23/7-22/8

Пользователь не должен иметь возможность заказывать более одного продукта в месяц, а также он не должен иметь возможность получать какие-либо продукты после 22 августа, если он не продлит свою подписку. Кроме того, было бы замечательно, если бы я мог получить работу cron, проверяя, использовал ли пользователь свою подписку на текущий месяц, и отправил "Привет, получи свой продукт на этот месяц". вид напоминания по электронной почте.

Это мой первый проект OpenCart, я просмотрел документацию и много гуглил, я играл с локальной установкой, и я пытаюсь выяснить, возможно ли то, что я спрашиваю, без изменения кода ядра, я бы хотел Избегайте этого. Однако, если нет другого пути, я понимаю, что OpenCart - это инфраструктура MVC (+ L (anguage)), но я не нашел какой-либо надежной документации о том, как настроить его функциональность, только кусочки и кусочки для конкретных требований.

Если можно, я хотел бы записать, что я имею в виду, пожалуйста, сообщите, если это звучит нормально:

I would like to add one more entity (object/model) for storing the subscription, the user to which it belongs, start and end date and whether it has been utilized. Basically, a subscription is a normal order and I would like it to be stored like one, I just need to persist a few more fields. As I said, I need to run two checks: Has the user utilized his subscription for the current month? For this I was thinking about having a flag "isUsed" field, which can be reset with a cron job, everytime a user reaches his billing date. (in our example 23/6, 23/7). Alternatively I could add 3 entries, one for each billing cycle and update them accordingly. Has the subscription expired? I could check against the expiry date of the subscription.

Я понятия не имею, как подключить эту функцию во время оформления заказа или как начать реализацию этого.

Я прошел через форум и много гуглил, но пока не нашел ответа. Я опытный разработчик Grails / Java EE, поэтому я достаточно техничен, если этот пост слишком техничный :-)

Означает ли вышесказанное осуществимость, и я на правильном пути?

Ура,
Ираклис

Ответы на вопрос(1)

Ваш ответ на вопрос