Таблица oc_product_option
Таблица oc_product_option является связующей таблицей между товарами (oc_product) и их опциями (oc_option). Она определяет, какие опции доступны для конкретного товара и как они должны вести себя на странице товара.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
product_option_id |
int |
Уникальный идентификатор связи товара с опцией (первичный ключ). |
product_id |
int |
Идентификатор товара. Внешний ключ, ссылается на oc_product.
|
option_id |
int |
Идентификатор опции. Внешний ключ, ссылается на oc_option.
|
value |
text |
Значение по умолчанию для опции. Используется преимущественно для опций типа "Текст" или "Текстовая область". |
required |
tinyint(1) |
Флаг, указывающий, является ли опция обязательной для выбора при добавлении товара в корзину (1 - да, 0 - нет).
|
Как это работает
Когда администратор добавляет опцию к товару в панели управления OpenCart, в таблице oc_product_option создается новая запись. Эта запись устанавливает связь между product_id и option_id.
Поле required определяет, должен ли покупатель обязательно выбрать значение этой опции перед добавлением товара в корзину. Если опция обязательна, система не позволит добавить товар без ее выбора.
Для опций, которые имеют предопределенные значения (радиокнопки, чекбоксы, select), сами значения хранятся в отдельной таблице oc_product_option_value, которая ссылается на product_option_id из этой таблицы.
Важно понимать разницу: таблица oc_product_option отвечает за связь "товар-опция" и ее общие настройки, а таблица oc_product_option_value отвечает за конкретные значения, которые может принимать эта опция для данного товара (включая наценку, количество и т.д.).
Пример SQL-запроса
Получить все опции для товара с ID 42, включая их названия:
SELECT po.*, od.name as option_name
FROM oc_product_option po
LEFT JOIN oc_option_description od ON (po.option_id = od.option_id)
WHERE po.product_id = 42 AND od.language_id = 1;
Смотрите также
-
таблицу
oc_option,
которая хранит определение типов опций -
таблицу
oc_product_option_value,
которая хранит значения опций для товаров -
таблицу
oc_option_value,
которая хранит предопределенные значения для опций -
таблицу
oc_product,
которая содержит основные данные о товарах