Таблица oc_customer
Таблица oc_customer хранит основную информацию о зарегистрированных пользователях интернет-магазина. Каждая запись соответствует уникальному клиенту и содержит его персональные данные, учетные данные для входа, настройки и статусы.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
customer_id |
int |
Уникальный идентификатор клиента (автоинкремент). |
customer_group_id |
int |
ID группы клиентов. Внешний ключ для таблицы oc_customer_group. Определяет права и скидки.
|
store_id |
int |
ID магазина в мультисторе. По умолчанию 0.
|
language_id |
int |
ID языка, выбранного клиентом. Внешний ключ для таблицы oc_language.
|
firstname |
varchar(32) |
Имя клиента. |
lastname |
varchar(32) |
Фамилия клиента. |
email |
varchar(96) |
E-mail адрес клиента. Используется для входа в систему. |
telephone |
varchar(32) |
Номер телефона клиента. |
fax |
varchar(32) |
Номер факса. Устаревшее поле, часто не используется. |
password |
varchar(255) |
Хэш пароля пользователя. Хранится в зашифрованном виде. |
salt |
varchar(9) |
"Соль" (salt), используемая для дополнительного усиления шифрования пароля. Устарело в новых версиях OpenCart. |
cart |
text |
Данные корзины покупок, сохраненные для незавершенных заказов. Хранятся в сериализованном или JSON формате. |
wishlist |
text |
Список желаний (избранные товары) клиента. Хранится как сериализованный массив product_id.
|
newsletter |
tinyint(1) |
Флаг подписки на рассылку: 0 - не подписан, 1 - подписан.
|
address_id |
int |
ID адреса по умолчанию из адресной книги клиента. Внешний ключ для таблицы oc_address.
|
custom_field |
text |
Данные пользовательских полей, настроенных для клиента в админ-панели. Хранятся в формате JSON. |
ip |
varchar(40) |
IP-адрес, с которого была произведена регистрация. |
status |
tinyint(1) |
Статус аккаунта: 0 - отключен, 1 - включен. Отключенный аккаунт не может войти.
|
safe |
tinyint(1) |
Флаг, помечающий клиента как проверенного и надежного. Используется в анти-мошеннических системах. |
token |
text |
Уникальный токен, используемый для безопасного доступа к API или для автоматического входа. |
code |
varchar(40) |
Код для подтверждения e-mail при регистрации или восстановлении пароля. |
date_added |
datetime |
Дата и время регистрации клиента. |
Как это работает
При регистрации нового пользователя через форму на сайте в таблицу oc_customer вставляется новая запись. Пароль хэшируется, генерируется код подтверждения (code) для активации аккаунта по email. После подтверждения email поле code очищается, а статус (status) может быть установлен в 1 администратором или автоматически, в зависимости от настроек магазина.
Поле customer_group_id определяет группу, к которой принадлежит клиент (например, "По умолчанию", "Оптовики"). Группы управляют правами доступа, скидками и отображением цен.
Данные корзины (cart) и списка желаний (wishlist) сериализуются и сохраняются в базу данных, что позволяет пользователю видеть свои товары с любого устройства после авторизации.
Адрес по умолчанию (address_id) используется при оформлении заказа, если пользователь не выбрал другой адрес из своей адресной книги, хранящейся в oc_address.
Пример SQL-запроса
Выбрать всех активных клиентов с их группой и основным адресом:
SELECT
c.customer_id,
c.firstname,
c.lastname,
c.email,
c.status,
cg.name as customer_group,
a.city,
a.country_id
FROM oc_customer c
LEFT JOIN oc_customer_group cg ON (c.customer_group_id = cg.customer_group_id)
LEFT JOIN oc_address a ON (c.address_id = a.address_id)
WHERE c.status = 1;
Смотрите также
-
таблицу
oc_address,
в которой хранятся адреса клиентов -
таблицу
oc_customer_group,
которая хранит группы клиентов и их настройки -
таблицу
oc_customer_activity,
в которую записывается активность клиентов -
таблицу
oc_order,
в которой хранятся заказы, связанные с клиентами