Стажировка на реальных проектах:
наполнение портфолио, помощь с работой и заказами, пробные собеседования. Жми для подробностей→
29 of 152 menu
Бесплатный курс по Верстке. От новичка до продвинутого верстальщика! Начало 11 ноября. Жми для записи!

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