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

Таблица oc_subscription_history

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

Поля

Поле Тип данных Описание
subscription_history_id int Уникальный идентификатор записи в истории подписки.
subscription_id int Внешний ключ, который связывает запись истории с конкретной подпиской. Ссылается на таблицу oc_subscription.
subscription_status_id int ID статуса, на который была изменена подписка. Ссылается на таблицу oc_subscription_status.
notify tinyint(1) Флаг, указывающий, было ли отправлено уведомление клиенту о смене статуса (1 - да, 0 - нет).
comment text Комментарий к изменению статуса. Может содержать дополнительную информацию для клиента или администратора о причине смены статуса.
date_added datetime Дата и время добавления записи в историю (смены статуса подписки).

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

Когда в системе создается подписка (например, клиент оформляет заказ с товаром, у которого включена опция рекуррентных платежей), в таблице oc_subscription создается основная запись. Изначально подписка получает статус, например, "Ожидание" (Pending).

При каждом изменении статуса подписки (вручную администратором или автоматически платежной системой) в таблицу oc_subscription_history добавляется новая запись. Эта запись фиксирует:

  • Какой статус был установлен (subscription_status_id)
  • Было ли отправлено уведомление клиенту (notify)
  • Комментарий к изменению (comment)
  • Toчную дату и время изменения (date_added)

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

Поле notify управляет отправкой email-уведомлений. Если администратор при смене статуса в админ-панели отмечает галочку "Уведомить клиента", в это поле записывается 1, и система отправляет письмо клиенту по шаблону, соответствующему новому статусу подписки.

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

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

SELECT sh.date_added, ss.name as status_name, sh.notify, sh.comment FROM oc_subscription_history sh LEFT JOIN oc_subscription_status ss ON (sh.subscription_status_id = ss.subscription_status_id) WHERE sh.subscription_id = 123 ORDER BY sh.date_added DESC;

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

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