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

Таблица oc_tax_rate

Таблица oc_tax_rate является ключевым элементом системы налогообложения в OpenCart. Она хранит определения всех налоговых ставок, которые могут быть применены к товарам, в зависимости от таких параметров, как геолокация покупателя (страна, регион, почтовый индекс) и тип налога (НДС, налог с продаж и т.д.).

Поля

Поле Тип данных Описание
tax_rate_id int Уникальный идентификатор налоговой ставки (Auto Increment).
geo_zone_id int Внешний ключ, связывающий ставку с геозоной. Определяет географическую область, для которой действует данная ставка. Ссылается на таблицу oc_geo_zone.
name varchar(32) Название налоговой ставки для удобства идентификации в админ-панели (например, "НДС 20% РФ", "Sales Tax CA").
rate decimal(15,4) Числовое значение ставки налога. Например, для ставки 20% в это поле будет записано значение 20.0000.
type char(1) Тип расчета налога. Возможные значения:
  • P (Percent) - процент от цены товара.
  • F (Fixed) - фиксированная сумма.
date_added datetime Дата и время добавления налоговой ставки.
date_modified datetime Дата и время последнего изменения записи о налоговой ставке.

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

Процесс применения налога состоит из нескольких этапов. Сначала в админ-панели создается один или несколько налоговых классов oc_tax_class. Затем для каждого класса создаются правила (oc_tax_rule), которые связывают класс с конкретными налоговыми ставками из oc_tax_rate.

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

Toвару в карточке редактирования присваивается нужный налоговый класс. При расчете стоимости корзины или заказа система, основываясь на адресе покупателя, находит все ставки, связанные с налоговым классом товара и действующие для данной геозоны, и суммирует их.

Например, если ставка имеет тип P и значение 20.0000, то к цене товара будет добавлено 20%. Если тип F и значение 5.0000, то к итоговой стоимости будет добавлена фиксированная сумма в 5 единиц валюты.

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

Выбрать все налоговые ставки для определенной геозоны с указанием её названия:

SELECT tr.*, gz.name as geo_zone_name FROM oc_tax_rate tr LEFT JOIN oc_geo_zone gz ON (tr.geo_zone_id = gz.geo_zone_id) WHERE tr.geo_zone_id = 3;

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

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