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

Таблица oc_product_related

Таблица oc_product_related является простой связующей таблицей, которая определяет, какие товары показываются в блоке "Сопутствующие товары" на странице товара. Эта связь является взаимной: если товар A связан с товаром B, то товар B будет показан как сопутствующий для товара A, и наоборот.

Поля

Поле Тип данных Описание
product_id int ID основного товара. Внешний ключ, ссылается на oc_product.
related_id int ID товара, который является сопутствующим для основного. Также внешний ключ для таблицы oc_product.

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

Администратор магазина в карточке товара (вкладка "Связи") может указать другие товары, которые будут отображаться в качестве сопутствующих. При сохранении формы для каждой выбранной связи в таблицу oc_product_related добавляется запись, где product_id - это ID текущего товара, а related_id - ID выбранного сопутствующего товара.

Особенность реализации в OpenCart заключается в том, что связь является двусторонней. Это означает, что при отображении страницы товара X система ищет в этой таблице все записи, где product_id = X, и выводит товары с найденными related_id. При этом, если на странице товара Y (который является сопутствующим для X) также будут показаны сопутствующие товары, среди них будет и товар X.

Для оптимизации и избежания дублирования связей (X→Y и Y→X) обычно используется следующий подход: при добавлении связи X→Y система автоматически создает и обратную связь Y→X.

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

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

SELECT p.*, pd.name FROM oc_product_related pr LEFT JOIN oc_product p ON (pr.related_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) WHERE pr.product_id = 42 AND pd.language_id = 1;

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

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