РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
26 of 152 menu

Таблица oc_category_filter

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

Поля

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

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

В админ-панели OpenCart, при редактировании категории (раздел "Каталог" → "Категории"), существует вкладка "Фильтры". В этой вкладке администратор может выбрать из списка существующие фильтры и назначить их для данной категории.

Каждая такая операция связывания создает новую запись в таблице oc_category_filter, где category_id - ID выбранной категории, а filter_id - ID выбранного фильтра.

На витрине магазина, когда покупатель заходит в категорию, к которой привязаны фильтры, в боковой колонке (обычно слева) отображается блок "Фильтры". Пользователь может выбирать значения этих фильтров, и система будет динамически обновлять список товаров, показывая только те, которые соответствуют выбранным критериям.

Важно отметить, что сами фильтры и их значения хранятся в других таблицах: oc_filter, oc_filter_description, oc_filter_group и oc_filter_group_description. Таблица oc_category_filter лишь устанавливает связь между категорией и фильтром.

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

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

SELECT fgd.name as group_name, fd.name as filter_name FROM oc_category_filter cf LEFT JOIN oc_filter f ON (cf.filter_id = f.filter_id) LEFT JOIN oc_filter_description fd ON (f.filter_id = fd.filter_id) LEFT JOIN oc_filter_group fg ON (f.filter_group_id = fg.filter_group_id) LEFT JOIN oc_filter_group_description fgd ON (fg.filter_group_id = fgd.filter_group_id) WHERE cf.category_id = 25 AND fd.language_id = 1 AND fgd.language_id = 1 ORDER BY fg.sort_order, f.sort_order;

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

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