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

Таблица oc_stock_status

Таблица oc_stock_status является справочником и хранит варианты текстового отображения статуса наличия товара на складе. Эти статусы (например, "В наличии", "Нет в наличии", "Под заказ") показываются покупателям на странице товара и в списках товаров вместо или вместе с количеством.

Поля

Поле Тип данных Описание
stock_status_id int Уникальный идентификатор статуса наличия. Первичный ключ таблицы.
language_id int Идентификатор языка. Внешний ключ для таблицы oc_language. Позволяет хранить переводы одного статуса для разных языков магазина.
name varchar(32) Название статуса, которое видит пользователь (например, "In Stock", "Out Of Stock", "Pre-Order").

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

В настройках OpenCart (Система → Настройки → Опции магазина → Вкладка "Toвар") администратор может включить или отключить отображение количества товаров на складе. В зависимости от этого настройки и от фактического количества товара (поле quantity в таблице oc_product) система решает, что показать покупателю.

Если отображение количества отключено, то вместо цифр покупатель видит текстовый статус из этой таблицы. Система сопоставляет количество товара с диапазонами, заданными в настройках stock status (Каталог → Toвары → Вкладка "Опции" → Блок "Stock Status"), и выбирает соответствующий stock_status_id.

Поскольку OpenCart - многоязычная система, для каждого статуса необходимо создать запись для каждого активного языка магазина. Таким образом, один и тот же stock_status_id будет иметь несколько записей с разными language_id, но одинаковым смыслом названия (name).

Статусы по умолчанию (например, "В наличии") являются системными и их удаление может привести к ошибкам в работе магазина. Рекомендуется не удалять, а редактировать существующие статусы или добавлять новые.

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

Посмотреть все статусы наличия для русского и английского языков:

SELECT ss.stock_status_id, l.name as language, ss.name FROM oc_stock_status ss LEFT JOIN oc_language l ON (ss.language_id = l.language_id) WHERE l.code IN ('ru', 'en') ORDER BY ss.stock_status_id, l.language_id;

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

  • таблицу oc_product,
    где хранится количество товара и ссылка на его статус
  • таблицу oc_language,
    справочник языков магазина