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

Таблица oc_subscription_transaction

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

Поля

Поле Тип данных Описание
subscription_transaction_id int Уникальный идентификатор транзакции подписки.
subscription_id int Внешний ключ, связывающий транзакцию с конкретной подпиской. Ссылается на таблицу oc_subscription.
order_id int Внешний ключ, идентифицирующий заказ, к которому привязана подписка. Ссылается на таблицу oc_order.
order_product_id int Внешний ключ, указывающий на конкретный товар в заказе, для которого оформлена подписка. Ссылается на таблицу oc_order_product.
description text Описание транзакции: тип операции (платеж, возврат, ошибка), детали списания, информация о периоде подписки.
amount decimal(15,4) Сумма транзакции. Может быть положительной (списание) или отрицательной (возврат).
type varchar(255) Тип транзакции: 1 - создание, 2 - продление, 3 - изменение, 4 - отмена, 5 - ошибка платежа.
payment_method varchar(255) Метод оплаты, использованный для данной транзакции.
payment_code varchar(255) Код платежного метода (модуля оплаты), через который была проведена транзакция.
date_added datetime Дата и время создания записи о транзакции.

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

Когда клиент оформляет заказ с товаром-подпиской, система создает запись в таблице oc_subscription. При каждом периодическом списании средств за продление подписки в таблицу oc_subscription_transaction добавляется новая запись.

Процесс работы с таблицей включает:

  • Фиксацию успешных платежей с указанием суммы, метода оплаты и описания операции
  • Запись неудачных попыток списания с указанием причины ошибки
  • Отслеживание истории всех финансовых операций по каждой подписке
  • Формирование отчетов о доходах от подписок

Поле type позволяет categorizeровать транзакции для последующего анализа. Система использует эту таблицу для определения даты следующего списания, отслеживания проблем с оплатой и управления статусом подписки.

Связь с таблицами oc_order и oc_order_product обеспечивает полную прослеживаемость от транзакции к исходному заказу и конкретному товару.

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

Получить историю транзакций для конкретной подписки можно следующим запросом:

SELECT st.*, o.invoice_no, op.name as product_name FROM oc_subscription_transaction st LEFT JOIN oc_order o ON (st.order_id = o.order_id) LEFT JOIN oc_order_product op ON (st.order_product_id = op.order_product_id) WHERE st.subscription_id = 42 ORDER BY st.date_added DESC;

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

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