Таблица oc_option_description

Таблица oc_option_description является частью системы многоязычности OpenCart и предназначена для хранения переводов названий и других текстовых данных опций товаров. Каждая опция (например, "Цвет", "Размер", "Материал") может иметь свои названия на разных языках, установленных в магазине.

Поля

Поле Тип данных Описание
option_id int Идентификатор опции. Внешний ключ, связывающий описание с основной записью опции в таблице oc_option.
language_id int Идентификатор языка. Внешний ключ, связывающий описание с языком из таблицы oc_language. Определяет, для какого языка предназначено данное название опции.
name varchar(128) Название опции на конкретном языке. Это то название, которое видят покупатели в карточке товара (например, "Color" для английского и "Цвет" для русского).

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

В админ-панели OpenCart при создании или редактировании опции товара (Раздел "Каталог" → "Опции") администратор заполняет поле "Название опции". Система автоматически создает запись в таблице oc_option, а затем для каждого активного языка в системе создает соответствующую запись в таблице oc_option_description, куда сохраняет введенное название.

На витрине магазина, когда пользователь выбирает язык, система при отображении опций товара ищет их названия в таблице oc_option_description по связке option_id и language_id, соответствующему текущему языку интерфейса.

Таким образом, для одной опции с option_id = 5 в таблице oc_option_description может существовать несколько записей:

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

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

Получить все переводы для опции с ID 5:

sqlSELECT od.*, l.name as language_name, l.code as language_code
FROM oc_option_description od
LEFT JOIN oc_language l ON (od.language_id = l.language_id)
WHERE od.option_id = 5
ORDER BY l.sort_order;

Найти все опции и их названия на русском языке:

sqlSELECT o.option_id, o.type, od.name
FROM oc_option o
LEFT JOIN oc_option_description od ON (o.option_id = od.option_id)
WHERE od.language_id = 2
ORDER BY o.sort_order;

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

  • таблицу oc_option,
    которая хранит основную информацию об опциях
  • таблицу oc_option_value_description,
    которая хранит описания значений опций
  • таблицу oc_product_option,
    которая связывает опции с товарами
  • таблицу oc_language,
    которая содержит список языков магазина