Таблица oc_product_subscription
Таблица oc_product_subscription является ключевым элементом системы подписок в OpenCart. Она связывает товары с планами подписки, позволяя покупателям приобретать товары по подписке с автоматическим регулярным списанием средств.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
product_subscription_id |
int |
Уникальный идентификатор связи товара с подпиской. |
product_id |
int |
Внешний ключ, который связывает подписку с конкретным товаром. Ссылается на таблицу oc_product.
|
subscription_plan_id |
int |
Внешний ключ, который связывает товар с планом подписки. Ссылается на таблицу oc_subscription_plan.
|
customer_group_id |
int |
ID группы покупателей, для которой доступна данная подписка. Ссылается на таблицу oc_customer_group.
|
Как это работает
Администратор создает планы подписки в разделе "Каталог → Подписки", где настраивает периодичность (ежедневно, еженедельно, ежемесячно, ежегодно), продолжительность, цену и другие параметры.
При редактировании товара в админ-панели на вкладке "Подписка" можно связать товар с одним или несколькими планами подписки. Для каждой связи указывается группа покупателей, что позволяет предлагать разные условия подписки разным категориям клиентов.
При оформлении заказа покупатель видит доступные варианты подписки для товара и может выбрать подходящий план. Информация о выбранной подписке сохраняется в таблице oc_order_subscription.
Система регулярных платежей (cron) автоматически обрабатывает активные подписки согласно их расписанию, создавая новые заказы и списывая средства с привязанных платежных методов покупателей.
Пример SQL-запроса
Получить все подписки для конкретного товара с информацией о планах подписки:
SELECT ps.*, sp.name as plan_name, cg.name as group_name
FROM oc_product_subscription ps
LEFT JOIN oc_subscription_plan sp ON (ps.subscription_plan_id = sp.subscription_plan_id)
LEFT JOIN oc_customer_group cg ON (ps.customer_group_id = cg.customer_group_id)
WHERE ps.product_id = 42;
Смотрите также
-
таблицу
oc_subscription_plan,
которая хранит планы подписок -
таблицу
oc_order_subscription,
которая содержит информацию о подписках в заказах -
таблицу
oc_product,
которая содержит основные данные о товарах -
таблицу
oc_customer_group,
которая хранит группы покупателей