Таблица oc_recurring
Таблица oc_recurring предназначена для управления регулярными (рекуррентными) платежами в OpenCart. Она хранит информацию о подписках клиентов на товары с периодической оплатой.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
recurring_id |
int |
Уникальный идентификатор профиля регулярного платежа (первичный ключ). |
price |
decimal(10,4) |
Стоимость одного цикла подписки. |
frequency |
enum('day','week','semi_month','month','year') |
Частота платежей: день, неделя, полмесяца, месяц, год. |
duration |
int |
Продолжительность подписки в циклах. 0 означает бессрочную подписку.
|
cycle |
int |
Количество единиц frequency между платежами (например, 2 и month = раз в 2 месяца).
|
trial_status |
tinyint(1) |
Флаг наличия пробного периода: 1 - есть, 0 - нет.
|
trial_price |
decimal(10,4) |
Стоимость пробного периода. |
trial_frequency |
enum('day','week','semi_month','month','year') |
Частота платежей в пробном периоде. |
trial_duration |
int |
Продолжительность пробного периода в циклах. |
trial_cycle |
int |
Количество единиц trial_frequency между платежами в пробном периоде.
|
status |
tinyint(4) |
Статус активности профиля: 1 - активен, 0 - неактивен.
|
sort_order |
int |
Порядок сортировки при отображении профилей в административной панели. |
Как это работает
Таблица oc_recurring служит шаблоном для создания регулярных платежей. Когда клиент покупает товар с подпиской, система создает запись в таблице oc_order_recurring, которая ссылается на recurring_id из этой таблицы.
Профиль регулярного платежа определяет все параметры подписки: стоимость, частоту платежей, продолжительность и параметры пробного периода. Это позволяет гибко настраивать различные типы подписок для товаров.
Связь между товарами и профилями регулярных платежей осуществляется через таблицу oc_product_recurring, где указывается, какие профили доступны для конкретного товара.
Платежные модули (такие как PayPal Standard, Authorize.Net CIM и другие) используют информацию из этой таблицы для настройки регулярных платежей на стороне платежного шлюза.
Пример SQL-запроса
Получить все активные профили регулярных платежей с пробным периодом:
SELECT *
FROM oc_recurring
WHERE status = 1
AND trial_status = 1
ORDER BY sort_order;
Смотрите также
-
таблицу
oc_order_recurring,
которая хранит активные подписки клиентов -
таблицу
oc_product_recurring,
которая связывает товары с профилями регулярных платежей -
таблицу
oc_order,
которая хранит информацию о заказах -
таблицу
oc_product,
которая содержит информацию о товарах