Стажировка на реальных проектах:
наполнение портфолио, помощь с работой и заказами, пробные собеседования. Жми для подробностей→
64 of 152 menu
Бесплатный курс по Верстке. От новичка до продвинутого верстальщика! Начало 11 ноября. Жми для записи!

Таблица oc_coupon_category

Таблица oc_coupon_category служит для установления связи между купонами (таблица oc_coupon) и категориями товаров (таблица oc_category). Эта связь определяет ограничение действия купона: скидка или фиксированная сумма будет применена только в том случае, если в корзине покупателя присутствует товар из указанной категории.

Поля

Поле Тип данных Описание
coupon_id int Идентификатор купона. Внешний ключ, который ссылается на поле coupon_id в таблице oc_coupon.
category_id int Идентификатор категории товаров. Внешний ключ, который ссылается на поле category_id в таблице oc_category.

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

При создании купона в админ-панели OpenCart (Раздел "Маркетинг" → "Купоны") администратор может выбрать тип ограничения "Toвар" или "Категория". Если выбрано ограничение по категории, то в интерфейсе появляется возможность выбрать одну или несколько категорий товаров.

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

Важно отметить, что данная таблица используется только для создания ограничений. Если для купона не задано ни одной категории в этой таблице, то купон будет действовать на все товары в корзине (при условии, что выполнены другие возможные ограничения, например, по сумме заказа или количеству использований).

Одна запись в таблице представляет собой одну связь "купон-категория". Один купон может быть связан с несколькими категориями, и наоборот, одна категория может быть связана с несколькими купонами.

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

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

SELECT ccd.name as category_name FROM oc_coupon_category cc LEFT JOIN oc_category_description ccd ON (cc.category_id = ccd.category_id) WHERE cc.coupon_id = 5 AND ccd.language_id = 1;

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

  • таблицу oc_coupon,
    которая хранит основную информацию о купонах
  • таблицу oc_category,
    которая хранит информацию о категориях товаров
  • таблицу oc_coupon_product,
    которая устанавливает связь купонов с конкретными товарами
  • таблицу oc_coupon_history,
    которая отслеживает историю использования купонов