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

Таблица oc_order_voucher

Таблица oc_order_voucher предназначена для хранения информации о подарочных сертификатах (ваучерах), которые были применены покупателями при оформлении заказов. Каждая запись в таблице соответствует одному ваучеру, использованному в одном заказе, и содержит актуальные данные ваучера на момент применения.

Поля

Поле Тип данных Описание
order_voucher_id int Уникальный идентификатор записи о примененном ваучере в заказе. Первичный ключ с автоинкрементом.
order_id int Идентификатор заказа, к которому был применен ваучер. Внешний ключ, ссылается на oc_order.
voucher_id int Идентификатор самого ваучера. Внешний ключ, ссылается на oc_voucher.
description varchar(255) Описание ваучера, которое отображалось покупателю при его применении.
code varchar(10) Уникальный код ваучера, который ввел покупатель для его активации.
from_name varchar(64) Имя отправителя подарочного сертификата (указывается при покупке ваучера).
from_email varchar(96) Email отправителя подарочного сертификата.
to_name varchar(64) Имя получателя подарочного сертификата.
to_email varchar(96) Email получателя подарочного сертификата.
voucher_theme_id int Идентификатор темы оформления ваучера. Внешний ключ, ссылается на oc_voucher_theme.
message text Текст сообщения, которое отправитель оставил для получателя ваучера.
amount decimal(15,4) Номинальная стоимость ваучера. Сумма, на которую был приобретен сертификат.

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

Когда покупатель приобретает подарочный сертификат в магазине, в таблице oc_voucher создается запись. Покупатель (или система) отправляет код ваучера получателю.

При оформлении заказа получатель ваучера вводит полученный код в соответствующее поле корзины. Система проверяет валидность кода (наличие в oc_voucher, срок действия, остаток суммы) и применяет его к заказу.

В момент применения ваучера создается запись в таблице oc_order_voucher. Эта запись фиксирует "снимок" данных ваучера на момент использования: его код, описание, сумму, информацию об отправителе и получателе. Это важно для исторической сохранности, так как данные в основной таблице ваучеров oc_voucher могут измениться или ваучер может быть удален.

После успешного применения сумма ваучера вычитается из общей суммы заказа. Одновременно в таблице oc_voucher уменьшается остаток доступной суммы ваучера (поле amount) на сумму, использованную в заказе.

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

Получить информацию обо всех ваучерах, примененных в конкретном заказе, можно следующим запросом:

SELECT ov.*, vt.name as voucher_theme_name FROM oc_order_voucher ov LEFT JOIN oc_voucher_theme vt ON (ov.voucher_theme_id = vt.voucher_theme_id) WHERE ov.order_id = 42;

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

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