Таблица 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 может существовать несколько записей:
- Для
language_id=1(английский):name= "Color" - Для
language_id=2(русский):name= "Цвет"
Эта структура позволяет легко управлять мультиязычным контентом магазина и обеспечивает корректное отображение интерфейса для пользователей из разных стран.
Пример SQL-запроса
Получить все переводы для опции с ID 5:
SELECT 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;
Найти все опции и их названия на русском языке:
SELECT 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,
которая содержит список языков магазина