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

Таблица oc_subscription_status

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

Поля

Поле Тип данных Описание
subscription_status_id int Уникальный идентификатор статуса подписки. Первичный ключ таблицы.
language_id int Идентификатор языка, для которого предоставлено название статуса. Внешний ключ для таблицы oc_language.
name varchar(32) Название статуса подписки на конкретном языке (например, "Active", "Suspended", "Cancelled", "Expired", "Pending", "Failed").

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

Система подписок (Recurring Payments) позволяет продавать товары или услуги с периодическими платежами. Каждая созданная подписка в таблице oc_subscription ссылается на один из статусов в этой таблице через поле subscription_status_id.

Поскольку OpenCart является многоязычной системой, каждый статус должен иметь перевод для каждого установленного в системе языка. Поэтому для одного и того же subscription_status_id в таблице будет несколько записей с разными language_id, но одинаковым смысловым значением.

Например, статус с subscription_status_id = 1 будет иметь запись с language_id = 1 (английский) и name = "Active", а также запись с language_id = 2 (русский) и name = "Активна". Это позволяет корректно отображать статус подписки в панели администратора и в личном кабинете клиента в зависимости от выбранного языка.

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

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

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

SELECT ss.subscription_status_id, ss.name FROM oc_subscription_status ss WHERE ss.language_id = (SELECT language_id FROM oc_language WHERE code = 'ru');

Посмотреть все переводы для конкретного статуса:

SELECT ss.subscription_status_id, l.name as language, ss.name as status_name FROM oc_subscription_status ss LEFT JOIN oc_language l ON (ss.language_id = l.language_id) WHERE ss.subscription_status_id = 1 ORDER BY l.sort_order;

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

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