Таблица oc_order_status
Таблица oc_order_status является справочной и служит для хранения всех возможных статусов, которые могут быть присвоены заказу в процессе его выполнения (например, "Ожидание", "В обработке", "Отправлен"). Каждый статус имеет переводы на разные языки, установленные в магазине.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
order_status_id |
int |
Уникальный идентификатор статуса заказа. Это числовой ключ, который однозначно определяет статус. |
language_id |
int |
Идентификатор языка. Внешний ключ для таблицы oc_language. Позволяет хранить перевод названия статуса для каждого языка.
|
name |
varchar(32) |
Название статуса заказа на языке, указанном в поле language_id (например, "Pending", "Processing", "Shipped").
|
Как это работает
Администратор магазина настраивает статусы заказов в админ-панели в разделе "Система" → "Локализация" → "Статусы заказов". Для каждого статуса необходимо указать его название на всех активных языках магазина.
При создании нового статуса в таблицу oc_order_status добавляется несколько записей: по одной для каждого языка. Все эти записи имеют одинаковый order_status_id, но разные language_id и name.
Когда статус заказа изменяется (вручную администратором или автоматически платежной системой), в таблицу oc_order обновляется поле order_status_id, которое ссылается на ID из этой таблицы.
При отображении истории заказа в личном кабинете клиента или в админ-панели система, используя order_status_id из заказа и language_id текущей сессии, находит соответствующее название статуса в этой таблице.
Некоторые статусы, такие как "Отменено" (Canceled) или "Возврат" (Returned), могут иметь особое значение для логики работы магазина и складского учета.
Пример SQL-запроса
Посмотреть все статусы заказов и их переводы на русский язык (предположим, что language_id для русского равен 2) можно следующим запросом:
SELECT os.order_status_id, os.name as status_name, l.name as language
FROM oc_order_status os
LEFT JOIN oc_language l ON (os.language_id = l.language_id)
WHERE os.language_id = 2
ORDER BY os.order_status_id;
Смотрите также
-
таблицу
oc_order,
которая хранит информацию о заказах и ссылается на статусы -
таблицу
oc_order_history,
которая хранит историю изменения статусов заказов -
таблицу
oc_language,
которая содержит список языков магазина