НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
55 of 152 menu

Таблица oc_order_recurring

Таблица oc_order_recurring предназначена для управления подписками на регулярные платежи, которые были созданы из заказов. Она отслеживает статус, историю и параметры повторяющихся списаний.

Поля

Поле Тип данных Описание
order_recurring_id int Уникальный идентификатор подписки на регулярный платеж.
order_id int Идентификатор исходного заказа, из которого была создана подписка. Внешний ключ для таблицы oc_order.
reference varchar(255) Уникальный идентификатор подписки, присвоенный платежным шлюзом (например, PayPal, Stripe). Используется для взаимодействия с API платежной системы.
product_id int Идентификатор товара, для которого создана подписка. Внешний ключ для таблицы oc_product.
product_name varchar(255) Название товара на момент создания подписки. Сохраняется для исторической целостности.
product_quantity int Количество товара в подписке.
recurring_id int Идентификатор профиля регулярного платежа. Внешний ключ для таблицы oc_recurring.
recurring_name varchar(255) Название профиля регулярного платежа на момент создания подписки.
recurring_description varchar(255) Описание профиля регулярного платежа (например, "Ежемесячная оплата в течение 12 месяцев").
recurring_frequency varchar(25) Частота платежей (например, 'day', 'week', 'semi_month', 'month', 'year').
recurring_cycle int Количество единиц частоты между платежами (например, при frequency='month' и cycle=2 - платеж каждые 2 месяца).
recurring_duration int Общее количество платежей в подписке (0 = бесконечно).
recurring_price decimal(10,4) Стоимость одного регулярного платежа.
trial tinyint(1) Флаг trial-периода (1 - есть trial, 0 - нет trial).
trial_frequency varchar(25) Частота платежей в trial-периоде.
trial_cycle int Количество единиц частоты между платежами в trial-периоде.
trial_duration int Продолжительность trial-периода в количестве платежей.
trial_price decimal(10,4) Стоимость trial-периода.
status tinyint(4) Статус подписки (1 - активна, 2 - приостановлена, 3 - отменена, 4 - приостановлена до ответа, 5 - истекла).
date_added datetime Дата и время создания подписки.

Как это работает

Когда клиент оформляет заказ на товар с включенной опцией регулярных платежей, после успешной оплаты начального заказа в таблице oc_order_recurring создается запись. Эта запись содержит все параметры подписки: частоту, стоимость, продолжительность и ссылку на исходный заказ.

Поле reference критически важно, так как содержит идентификатор подписки в платежной системе. Этот идентификатор используется cron-задачей или модулем для автоматического списания средств согласно графику.

Статус подписки (status) отслеживает ее жизненный цикл. Администратор может вручную изменить статус в панели управления OpenCart в разделе "Продажи → Подписки".

Каждый успешный или неуспешный платеж по подписке регистрируется в связанной таблице oc_order_recurring_transaction, которая ссылается на order_recurring_id.

Пример SQL-запроса

Получить список всех активных подписок с информацией о заказе и клиенте:

SELECT orec.*, o.order_id, o.invoice_no, o.firstname as customer_firstname, o.lastname as customer_lastname, o.email as customer_email FROM oc_order_recurring orec LEFT JOIN oc_order o ON (orec.order_id = o.order_id) WHERE orec.status = 1;

Смотрите также

  • таблицу oc_order,
    которая хранит информацию о заказах
  • таблицу oc_order_recurring_transaction,
    которая хранит историю транзакций по подпискам
  • таблицу oc_recurring,
    которая содержит профили регулярных платежей
  • таблицу oc_product,
    которая содержит товары, доступные для подписки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить