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

Таблица oc_option_value

Таблица oc_option_value является ключевым элементом системы опций товаров в OpenCart. Она содержит предопределенные значения для различных типов опций (select, radio, checkbox), которые затем присваиваются конкретным товарам через таблицу oc_product_option_value.

Поля

Поле Тип данных Описание
option_value_id int Уникальный идентификатор значения опции. Автоинкремент.
option_id int Внешний ключ, связывающий значение с конкретной опцией. Ссылается на oc_option.
image varchar(255) Путь к изображению, которое представляет это значение опции (например, изображение цвета или варианта). Часто используется для опций типа "Радиокнопка с изображением".
sort_order int Порядок сортировки для отображения значений опции в списке.

Многоязычные названия

Названия значений опций хранятся в связанной таблице oc_option_value_description, которая содержит поля:

  • option_value_id - ссылка на запись в oc_option_value
  • language_id - идентификатор языка
  • name - название значения опции на конкретном языке

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

Администратор сначала создает опцию (например, "Цвет") в таблице oc_option. Затем для этой опции создаются возможные значения ("Красный", "Синий", "Зеленый") в таблице oc_option_value, где каждое значение связано с опцией через option_id.

После этого эти значения можно присвоить конкретным товарам. Связь между товаром и значением опции устанавливается в таблице oc_product_option_value, где указывается дополнительная информация: цена, количество, вес и т.д.

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

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

Получить все значения для опции "Цвет" на русском языке:

SELECT ovd.name, ov.image, ov.sort_order FROM oc_option_value ov LEFT JOIN oc_option_value_description ovd ON (ov.option_value_id = ovd.option_value_id) LEFT JOIN oc_option o ON (ov.option_id = o.option_id) LEFT JOIN oc_option_description od ON (o.option_id = od.option_id) WHERE od.name = 'Цвет' AND ovd.language_id = 1 ORDER BY ov.sort_order;

Получить все опции и их значения:

SELECT o.type, od.name as option_name, ovd.name as value_name, ov.image FROM oc_option o LEFT JOIN oc_option_description od ON (o.option_id = od.option_id) LEFT JOIN oc_option_value ov ON (o.option_id = ov.option_id) LEFT JOIN oc_option_value_description ovd ON (ov.option_value_id = ovd.option_value_id) WHERE od.language_id = 1 AND ovd.language_id = 1 ORDER BY o.sort_order, ov.sort_order;

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

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