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

Таблица oc_custom_field_customer_group

Таблица oc_custom_field_customer_group является связующей таблицей между дополнительными полями (oc_custom_field) и группами покупателей (oc_customer_group). Она определяет видимость и обязательность заполнения кастомных полей для разных групп клиентов.

Поля

Поле Тип данных Описание
custom_field_id int Идентификатор дополнительного поля. Внешний ключ, ссылается на oc_custom_field.
customer_group_id int Идентификатор группы покупателей. Внешний ключ, ссылается на oc_customer_group.
required tinyint(1) Флаг обязательности заполнения поля: 1 - поле обязательно для заполнения, 0 - поле не обязательно.

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

При создании или редактировании дополнительного поля в админ-панели OpenCart (Система → Пользователи → Поля) администратор может настроить, для каких групп покупателей это поле будет отображаться и будет ли оно обязательным для заполнения.

Например, можно создать поле "ИНН" и сделать его обязательным только для группы "Юридические лица", а для группы "Физические лица" скрыть это поле полностью или сделать его необязательным.

Каждая запись в этой таблице представляет собой связку: "поле X для группы Y должно быть обязательным/необязательным". Если для определенной пары custom_field_id - customer_group_id записи в таблице не существует, это означает, что данное поле не отображается для пользователей этой группы.

При регистрации или редактировании профиля система проверяет группу текущего пользователя и показывает только те дополнительные поля, которые разрешены для его группы, валидируя обязательные к заполнению.

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

Получить список всех дополнительных полей, доступных для группы покупателей с ID 1, с указанием их обязательности:

SELECT cfcd.name, cfcg.required FROM oc_custom_field_customer_group cfcg LEFT JOIN oc_custom_field cf ON (cfcg.custom_field_id = cf.custom_field_id) LEFT JOIN oc_custom_field_description cfcd ON (cf.custom_field_id = cfcd.custom_field_id) WHERE cfcg.customer_group_id = 1 AND cfcd.language_id = 1;

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

  • таблицу oc_custom_field,
    которая хранит основные данные дополнительных полей
  • таблицу oc_customer_group,
    которая содержит группы покупателей
  • таблицу oc_custom_field_description,
    которая хранит многоязычные описания полей
  • таблицу oc_custom_field_value,
    которая содержит значения для полей типа "select" и "radio"
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить