Таблица oc_product
Таблица oc_product является основной таблицей для хранения информации о товарах в OpenCart. В ней содержатся все базовые данные, необходимые для отображения товара в каталоге, управления его наличием и ценой.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
product_id |
int |
Уникальный идентификатор товара. Первичный ключ таблицы. |
model |
varchar(64) |
Модель товара (артикул производителя или внутренний артикул магазина). |
sku |
varchar(64) |
SKU (Stock Keeping Unit) - уникальный код товара для учета запасов. |
upc |
varchar(12) |
UPC (Universal Product Code) - универсальный код товара. |
ean |
varchar(14) |
EAN (European Article Number) - европейский код товара. |
jan |
varchar(13) |
JAN (Japanese Article Number) - японский код товара. |
isbn |
varchar(17) |
ISBN (International Standard Book Number) - международный стандартный книжный номер. |
mpn |
varchar(64) |
MPN (Manufacturer Part Number) - номер детали у производителя. |
location |
varchar(128) |
Местоположение товара на складе. |
quantity |
int |
Количество товара на складе. |
stock_status_id |
int |
ID статуса наличия товара (например, "В наличии", "Нет в наличии"). Внешний ключ для таблицы oc_stock_status.
|
image |
varchar(255) |
Путь к основному изображению товара (относительно папки image/catalog).
|
manufacturer_id |
int |
ID производителя товара. Внешний ключ для таблицы oc_manufacturer.
|
shipping |
tinyint(1) |
Флаг, указывающий, требуется ли для товара доставка (1 - да, 0 - нет).
|
price |
decimal(15,4) |
Базовая цена товара. |
points |
int |
Количество бонусных баллов, которые покупатель получит за покупку товара. |
tax_class_id |
int |
ID налогового класса товара. Внешний ключ для таблицы oc_tax_class.
|
date_available |
date |
Дата, с которой товар появится или снова появится в наличии. |
weight |
decimal(15,8) |
Вес товара. |
weight_class_id |
int |
ID единицы измерения веса (например, кг, г, фунты). Внешний ключ для таблицы oc_weight_class.
|
length |
decimal(15,8) |
Длина товара. |
width |
decimal(15,8) |
Ширина товара. |
height |
decimal(15,8) |
Высота товара. |
length_class_id |
int |
ID единицы измерения габаритов (например, см, м, дюймы). Внешний ключ для таблицы oc_length_class.
|
subtract |
tinyint(1) |
Флаг, указывающий, нужно ли вычитать товар со склада при покупке (1 - да, 0 - нет).
|
minimum |
int |
Минимальное количество товара для заказа. |
sort_order |
int |
Порядок сортировки товара внутри категории. |
status |
tinyint(1) |
Статус товара (1 - включен, отображается в каталоге, 0 - выключен, скрыт).
|
viewed |
int |
Счетчик просмотров страницы товара. |
date_added |
datetime |
Дата и время добавления товара. |
date_modified |
datetime |
Дата и время последнего изменения товара. |
Как это работает
Таблица oc_product хранит только общую, не зависящую от языка информацию о товаре. Все текстовые данные (название, описание, мета-теги) хранятся в связанной таблице oc_product_description, что позволяет реализовать мультиязычность магазина.
Связь товара с категориями осуществляется через таблицу oc_product_to_category, где product_id связывается с category_id. Это позволяет одному товару принадлежать сразу к нескольким категориям.
Цена в этом поле является базовой. Окончательная цена для покупателя рассчитывается с учетом скидок (таблица oc_product_discount), акций (таблица oc_product_special), опций и налогов.
Поля weight_class_id и length_class_id определяют, в каких единицах измерения заданы вес и габариты товара. Это важно для корректного расчета стоимости доставки.
Пример SQL-запроса
Выбрать основные данные о товаре вместе с названием и производителем:
SELECT
p.product_id,
p.model,
p.price,
p.quantity,
pd.name AS product_name,
m.name AS manufacturer_name
FROM oc_product p
LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id AND pd.language_id = 1)
LEFT JOIN oc_manufacturer m ON (p.manufacturer_id = m.manufacturer_id)
WHERE p.status = 1
ORDER BY p.date_added DESC;
Смотрите также
-
таблицу
oc_product_description,
которая хранит названия и описания товаров на разных языках -
таблицу
oc_product_to_category,
которая связывает товары с категориями -
таблицу
oc_product_attribute,
которая хранит атрибуты товаров -
таблицу
oc_product_option,
которая хранит опции товаров