Таблица oc_customer_group_description
Таблица oc_customer_group_description предназначена для хранения переводов названий и описаний групп покупателей. Она позволяет иметь разные названия для одной и той же группы на разных языках, что необходимо для многоязычных магазинов OpenCart.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
customer_group_id |
int |
Внешний ключ, который связывает описание с конкретной группой покупателей. Ссылается на таблицу oc_customer_group.
|
language_id |
int |
Внешний ключ, который указывает на язык перевода. Ссылается на таблицу oc_language.
|
name |
varchar(32) |
Название группы покупателей на конкретном языке (например, "Розничные покупатели", "Оптовики", "VIP-клиенты"). |
description |
text |
Описание группы покупателей, которое может отображаться при регистрации или в личном кабинете. Может содержать условия, преимущества и особенности группы. |
Как это работает
В OpenCart администратор может создавать различные группы покупателей (например, "По умолчанию", "Опт", "Дропшиппинг") в таблице oc_customer_group. Каждая такая группа получает свой уникальный customer_group_id.
Для поддержки многоязычности система создает отдельные записи в таблице oc_customer_group_description для каждого языка, на котором работает магазин. Таким образом, для группы с customer_group_id = 2 будет существовать несколько записей: одна с language_id = 1 (например, русский) и полем name = "Оптовые покупатели", и другая с language_id = 2 (например, английский) и полем name = "Wholesale Customers".
При отображении интерфейса регистрации, выбора группы или в админ-панели система выбирает название и описание группы из этой таблицы, используя текущий language_id сессии пользователя или администратора.
Первичный ключ этой таблицы состоит из двух полей: customer_group_id и language_id, что гарантирует уникальность комбинации "группа-язык".
Пример SQL-запроса
Получить все переводы для всех групп покупателей можно следующим запросом:
SELECT cgd.*, l.name as language_name, l.code as language_code
FROM oc_customer_group_description cgd
LEFT JOIN oc_language l ON (cgd.language_id = l.language_id)
ORDER BY cgd.customer_group_id, cgd.language_id;
Получить названия конкретной группы на всех языках:
SELECT cgd.name, l.name as language_name
FROM oc_customer_group_description cgd
LEFT JOIN oc_language l ON (cgd.language_id = l.language_id)
WHERE cgd.customer_group_id = 2;
Смотрите также
-
таблицу
oc_customer_group,
которая хранит основные настройки групп покупателей -
таблицу
oc_customer,
которая содержит данные покупателей и ссылается на их группу -
таблицу
oc_language,
которая хранит список доступных языков магазина