Таблица oc_country
Таблица oc_country представляет собой системный справочник, содержащий список всех стран мира. Она используется для всей системы OpenCart для привязки клиентов, адресов, зон доставки и налоговых ставок к конкретным странам.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
country_id |
int |
Уникальный числовой идентификатор страны. Автоинкремент. |
name |
varchar(128) |
Название страны. Это поле мультиязычное, его значения хранятся в отдельной таблице oc_country_description.
|
iso_code_2 |
varchar(2) |
Двухбуквенный код страны по стандарту ISO 3166-1 alpha-2 (например, RU, US, DE). |
iso_code_3 |
varchar(3) |
Трехбуквенный код страны по стандарту ISO 3166-1 alpha-3 (например, RUS, USA, DEU). |
address_format |
text |
Шаблон формата отображения адреса для данной страны. Использует специальные переменные (например, {firstname}, {address_1}) для подстановки данных. Определяет порядок и расположение полей адреса при его выводе.
|
postcode_required |
tinyint(1) |
Флаг, указывающий, обязателен ли почтовый индекс для этой страны. 1 - обязателен, 0 - не обязателен.
|
status |
tinyint(1) |
Статус страны. 1 - страна активна и доступна для выбора, 0 - страна неактивна и скрыта из списков.
|
Как это работает
Справочник стран является фундаментальным для работы интернет-магазина, работающего в нескольких странах. При создании адреса (как в адресной книге клиента, так и в заказе) система использует country_id для связи с этой таблицей.
Поле postcode_required используется валидацией формы ввода адреса. Если для выбранной страны установлено значение 1, система потребует обязательного заполнения поля с почтовым индексом.
Поле status позволяет администратору управлять списком доступных стран в выпадающих меню без их физического удаления из базы данных. Это важно для сохранения исторических данных в заказах.
Коды ISO (iso_code_2 и iso_code_3) используются различными платежными и транспортными модулями (шлюзами), которые часто требуют отправки данных о стране в стандартизированном формате.
Шаблон address_format позволяет гибко настраивать отображение адреса в зависимости от принятых в стране стандартов. Например, в одних странах сначала указывается улица, затем город, в других - наоборот.
Пример SQL-запроса
Получить список всех активных стран с их кодами можно следующим запросом:
SELECT country_id, name, iso_code_2, iso_code_3
FROM oc_country
WHERE status = 1
ORDER BY name;
Смотрите также
-
таблицу
oc_zone,
которая содержит регионы (области, штаты) внутри стран -
таблицу
oc_address,
которая ссылается на oc_country через country_id -
таблицу
oc_country_description,
которая хранит мультиязычные названия стран