Стажировка на реальных проектах:
наполнение портфолио, помощь с работой и заказами, пробные собеседования. Жми для подробностей→
2 of 152 menu
Бесплатный курс: Практика на Реальных Проектах и Работы в Портфолио! Начало 11 ноября. Жми для записи!

Таблица oc_product_description

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

Поля

Поле Тип данных Описание
product_id int Уникальный идентификатор товара. Внешний ключ, который связывает описание с основной записью о товаре в таблице oc_product. Вместе с language_id образует составной первичный ключ.
language_id int Идентификатор языка. Внешний ключ для таблицы oc_language. Определяет, для какого языка предназначено данное описание.
name varchar(255) Название товара на указанном языке. Это обязательное поле, которое отображается в витрине магазина, в хлебных крошках и заголовках страниц.
description text Полное описание товара. Поддерживает HTML-разметку для форматирования текста, добавления изображений, списков и ссылок. Отображается на странице товара.
tag text Теги (метки) товара. Используются для внутренней перелинковки и улучшения навигации. Теги разделяются запятыми.
meta_title varchar(255) Заголовок (Title) для мета-тега title страницы товара. Важен для SEO. Если не заполнен, обычно используется значение из поля name.
meta_description varchar(255) Описание (Description) для мета-тега. Краткое описание страницы, которое может отображаться в результатах поиска.
meta_keyword varchar(255) Ключевые слова (Keywords) для мета-тега. Список ключевых слов, релевантных товару, разделенных запятыми. В современном SEO имеет меньший вес.

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

При создании товара в админ-панели OpenCart сначала создается запись в таблице oc_product, где хранятся числовые данные (цена, количество, статус). После этого для каждого активного языка магазина создается соответствующая запись в таблице oc_product_description с переводом текстовых полей.

Когда покупатель заходит на страницу товара, система определяет его язык (на основе настроек браузера или выбора языка на сайте) и загружает из oc_product_description запись, где product_id равен ID текущего товара, а language_id соответствует ID выбранного языка.

Такая структура (разделение нетекстовых и текстовых данных) является стандартным подходом для реализации мультиязычности в OpenCart и позволяет легко добавлять поддержку новых языков без изменения структуры основных таблиц.

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

Выбрать названия и описания товара на всех языках можно следующим запросом:

SELECT pd.*, l.name as language_name, l.code as language_code FROM oc_product_description pd LEFT JOIN oc_language l ON (pd.language_id = l.language_id) WHERE pd.product_id = 42 ORDER BY l.sort_order;

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

  • таблицу oc_product,
    которая содержит основные нетекстовые данные товара
  • таблицу oc_language,
    которая хранит список доступных языков
  • таблицу oc_category_description,
    которая имеет схожую структуру для описаний категорий
  • таблицу oc_product_to_store,
    которая определяет, в каких магазинах мультимагазинной системы доступен товар