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

Таблица oc_weight_class

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

Поля

Поле Тип данных Описание
weight_class_id int Уникальный идентификатор класса веса. Это первичный ключ таблицы.
value decimal(15,8) Коэффициент пересчета данной единицы измерения относительно базового класса веса, установленного в настройках магазина (config_weight_class_id в таблице oc_setting). Например, если базовый класс - килограммы (кг), то для граммов (г) значение будет 1000.00000000 (в 1 кг = 1000 г), а для фунтов (lb) - примерно 0.45359237 (в 1 фунт ≈ 0.4536 кг).

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

Администратор магазина настраивает в админ-панели (Раздел: Система → Настройки → Редактировать магазин → Вкладка "Локаль") базовый класс веса (Weight Class). Этот класс является эталонным, и все коэффициенты в таблице oc_weight_class рассчитываются относительно него.

При создании или редактировании товара (вкладка Data) администратор выбирает единицу измерения веса для этого товара из списка, который формируется на основе записей в oc_weight_class.

Когда покупатель просматривает товар, система автоматически конвертирует его вес из единицы измерения товара в единицу измерения, выбранную покупателем в валюте магазина. Расчет происходит по формуле: [Вес в базовой единице] = [Вес товара] * [Значение value из oc_weight_class].

Эта же система конвертации критически важна для модулей доставки (например, weight), которые рассчитывают стоимость в зависимости от общего веса заказа. Все веса товаров в корзине приводятся к базовой единице, суммируются, и затем стоимость доставки рассчитывается на основе полученной суммы.

Многоязычные названия единиц измерения (например, "Kilogram", "Килограмм") хранятся в связанной таблице oc_weight_class_description, которая связывается с данной таблицей по полю weight_class_id.

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

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

SELECT wc.weight_class_id, wc.value, wcd.title, wcd.unit FROM oc_weight_class wc LEFT JOIN oc_weight_class_description wcd ON (wc.weight_class_id = wcd.weight_class_id) WHERE wcd.language_id = 1;

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

  • таблицу oc_weight_class_description,
    которая хранит переводы названий единиц веса
  • таблицу oc_length_class,
    которая является справочником единиц измерения длины
  • таблицу oc_product,
    которая использует weight_class_id для товаров
  • таблицу oc_setting,
    в которой хранится ID базового класса веса магазина
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить