НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
52 of 152 menu

Таблица oc_order_total

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

Поля

Поле Тип данных Описание
order_total_id int Уникальный идентификатор записи в таблице итогов. Автоинкрементное поле.
order_id int Внешний ключ, который связывает запись итога с конкретным заказом. Ссылается на oc_order.
code varchar(32) Системный код модуля, который добавил эту запись. Например: sub_total, shipping, tax, coupon, total.
title varchar(255) Название итоговой строки, которое видит пользователь (например, "Доставка", "Налог", "Промокод"). Может быть мультиязычным.
value decimal(15,4) Числовое значение данной итоговой строки. Может быть как положительным (начисление), так и отрицательным (скидка). Для финального итога code='total' это поле содержит общую сумму к оплате.
sort_order int Порядок сортировки для отображения итоговых строк на странице оформления заказа и в административной панели. Чем меньше число, тем выше отображается строка.

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

В процессе оформления заказа различные модули (корзины, доставки, скидки, налоги) рассчитывают свои значения и добавляют их в коллекцию итогов. После всех расчетов эта коллекция сохраняется в таблицу oc_order_total, где каждая строка соответствует одному модулю.

Обязательными записями для каждого заказа являются:

  • sub_total - общая стоимость всех товаров в заказе без учета скидок и налогов.
  • total - финальная сумма к оплате. Это всегда последняя строка с самым высоким sort_order.

Остальные записи (shipping, tax, coupon, voucher и т.д.) добавляются по мере необходимости, если соответствующие модули были использованы при оформлении.

Данные в этой таблице являются историческими и фиксируют состояние заказа на момент его оформления. Если позже изменится налоговая ставка или способ доставки, данные в существующих заказах останутся прежними.

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

Получить полную разбивку итогов для заказа с ID 123:

SELECT * FROM oc_order_total WHERE order_id = 123 ORDER BY sort_order;

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

  • таблицу oc_order,
    которая хранит основную информацию о заказе
  • таблицу oc_order_product,
    которая содержит товарные позиции заказа
  • таблицу oc_order_history,
    которая хранит историю изменения статусов заказа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить