Таблица 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,
которая хранит информацию о заказах и валюте заказа