Таблица oc_attribute
Таблица oc_attribute является центральной таблицей для системы атрибутов товаров в OpenCart. Она хранит основную информацию об атрибутах, которая не зависит от языка. Каждый атрибут представляет собой характеристику товара, которая может быть использована для описания его свойств (например, "Цвет", "Размер", "Материал").
Поля
| Поле | Тип данных | Описание |
|---|---|---|
attribute_id |
int |
Уникальный идентификатор атрибута. Автоинкрементное поле. |
attribute_group_id |
int |
Внешний ключ, который связывает атрибут с группой атрибутов. Ссылается на таблицу oc_attribute_group.
|
sort_order |
int |
Порядок сортировки атрибута внутри своей группы. Определяет последовательность отображения атрибутов в административной панели и на сайте. |
Как это работает
Система атрибутов в OpenCart состоит из нескольких связанных таблиц. Таблица oc_attribute хранит только базовую, не зависящую от языка информацию. Для многоязычных названий атрибутов используется таблица oc_attribute_description, которая связана по полю attribute_id.
Атрибуты организованы в группы (через поле attribute_group_id), что позволяет логически группировать характеристики товаров. Например, группа "Характеристики процессора" может содержать атрибуты "Тактовая частота", "Количество ядер", "Кэш-память".
При создании или редактировании товара в административной панели можно назначать ему атрибуты из созданных групп. Значения атрибутов для конкретных товаров хранятся в таблице oc_product_attribute.
Поле sort_order позволяет управлять порядком отображения атрибутов как в административной панели при редактировании товара, так и на витрине магазина в карточке товара.
Пример SQL-запроса
Получить список всех атрибутов с их названиями и названиями групп можно следующим запросом:
SELECT a.attribute_id, ad.name as attribute_name,
agd.name as group_name, a.sort_order
FROM oc_attribute a
LEFT JOIN oc_attribute_description ad ON (a.attribute_id = ad.attribute_id)
LEFT JOIN oc_attribute_group ag ON (a.attribute_group_id = ag.attribute_group_id)
LEFT JOIN oc_attribute_group_description agd ON (ag.attribute_group_id = agd.attribute_group_id)
WHERE ad.language_id = 1 AND agd.language_id = 1
ORDER BY ag.sort_order, a.sort_order;
Смотрите также
-
таблицу
oc_attribute_description,
которая хранит многоязычные названия атрибутов -
таблицу
oc_attribute_group,
которая содержит группы атрибутов -
таблицу
oc_product_attribute,
которая связывает товары с их атрибутами -
таблицу
oc_product,
которая содержит основные данные о товарах