Стажировка на реальных проектах:
наполнение портфолио, помощь с работой и заказами, пробные собеседования. Жми для подробностей→
131 of 152 menu
Бесплатный курс по Верстке. От новичка до продвинутого верстальщика! Начало 11 ноября. Жми для записи!

Таблица oc_currency

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

Поля

Поле Тип данных Описание
currency_id int Уникальный идентификатор валюты. Автоинкрементное поле.
title varchar(32) Название валюты (например, "Доллар США", "Евро", "Рубль").
code varchar(3) Трехбуквенный код валюты по стандарту ISO 4217 (например, USD, EUR, RUB).
symbol_left varchar(12) Символ валюты, который отображается слева от суммы (например, "$", "€").
symbol_right varchar(12) Символ валюты, который отображается справа от суммы (например, "руб.", "р.").
decimal_place varchar(1) Количество знаков после запятой для отображения (например, "2" для формата 100.00).
value double(15,8) Курс валюты относительно базовой валюты магазина. Для базовой валюты значение всегда равно 1.
status tinyint(1) Статус валюты: 1 - активна, 0 - неактивна. Неактивные валюты не отображаются в магазине.
date_modified datetime Дата и время последнего обновления курса валюты.

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

В настройках OpenCart выбирается базовая валюта магазина (обычно это валюта, в которой администратор вводит цены на товары). Все остальные валюты в таблице oc_currency имеют курс (поле value) относительно этой базовой валюты.

При изменении курсов валют через административную панель (Система → Локализация → Валюты → Обновить) или через CRON-задачу, значения в поле value обновляются, а поле date_modified устанавливается в текущую дату и время.

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

Символы валюты (symbol_left и symbol_right) используются для форматирования отображения цен. Например, для доллара может использоваться symbol_left = "$", а для рубля - symbol_right = "руб.".

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

Получить список всех активных валют с их курсами:

SELECT currency_id, title, code, symbol_left, symbol_right, value, date_modified FROM oc_currency WHERE status = 1 ORDER BY title;

Обновить курс конкретной валюты:

UPDATE oc_currency SET value = 0.011, date_modified = NOW() WHERE code = 'USD';

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

  • таблицу oc_setting,
    которая хранит настройки магазина, включая базовую валюту
  • таблицу oc_product,
    которая содержит цены товаров в базовой валюте
  • таблицу oc_order,
    которая хранит информацию о заказах и валюте заказа