Таблица oc_customer_activity
Таблица oc_customer_activity служит для отслеживания и записи активности зарегистрированных пользователей на сайте OpenCart. Это мощный инструмент для анализа поведения клиентов, отладки и обеспечения безопасности.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
customer_activity_id |
int |
Уникальный идентификатор записи активности. Первичный ключ с автоинкрементом. |
customer_id |
int |
Идентификатор клиента, совершившего действие. Внешний ключ, ссылается на oc_customer.
|
key |
varchar(64) |
Ключ действия, который идентифицирует тип произошедшего события (например, login, order_account, address_add).
|
data |
text |
Дополнительные данные, связанные с действием, в формате JSON. Может содержать IP-адрес, ID заказа, просмотренного товара и другую контекстную информацию. |
ip |
varchar(40) |
IP-адрес клиента в момент совершения действия. |
date_added |
datetime |
Дата и время, когда было совершено действие. |
Как это работает
При совершении клиентом определенного действия (например, успешного входа в систему, добавления товара в корзину, оформления заказа) система OpenCart создает запись в этой таблице. Запись включает в себя идентификатор клиента, тип действия (key), его IP-адрес и временную метку.
Поле data является особенно важным, так как хранит сериализованные в JSON данные, специфичные для каждого типа действия. Для действия login это может быть просто IP-адрес, а для действия order_account - ID созданного заказа.
Эти данные используются для отображения истории активности в личном кабинете клиента и в админ-панели (в карточке клиента). Это помогает администратору увидеть последние действия пользователя, что полезно для технической поддержки и выявления подозрительной активности.
Журналирование активности можно включить или отключить в настройках OpenCart (Система → Настройки → редактирование магазина → вкладка "Option" → "Account" → "Activity Log").
Пример SQL-запроса
Получить последние 10 действий конкретного клиента вместе с расшифрованными данными можно запросом:
SELECT ca.customer_activity_id, ca.`key`, ca.data, ca.ip, ca.date_added,
c.firstname, c.lastname, c.email
FROM oc_customer_activity ca
LEFT JOIN oc_customer c ON (ca.customer_id = c.customer_id)
WHERE ca.customer_id = 42
ORDER BY ca.date_added DESC
LIMIT 10;
Смотрите также
-
таблицу
oc_customer,
в которой хранятся основные данные клиентов -
таблицу
oc_customer_ip,
которая также отслеживает IP-адреса клиентов для противодействия мошенничеству -
таблицу
oc_customer_search,
которая логирует поисковые запросы пользователей