Таблица oc_customer_wishlist
Таблица oc_customer_wishlist хранит информацию о товарах, которые пользователи добавили в свой список желаний (избранное). Это позволяет клиентам сохранять понравившиеся товары для последующего быстрого доступа и покупки.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
customer_id |
int |
Идентификатор клиента. Внешний ключ, ссылается на таблицу oc_customer. Определяет, какому пользователю принадлежит запись списка желаний.
|
product_id |
int |
Идентификатор товара. Внешний ключ, ссылается на таблицу oc_product. Определяет, какой товар добавлен в список желаний.
|
date_added |
datetime |
Дата и время добавления товара в список желаний. Заполняется автоматически в момент добавления. |
Как это работает
Когда зарегистрированный пользователь нажимает кнопку "В закладки" или "В избранное" на странице товара, система создает запись в таблице oc_customer_wishlist, связывая customer_id текущего пользователя с product_id выбранного товара.
Пользователь может просмотреть свой список желаний в личном кабинете, в разделе "Мои закладки". Там отображаются все товары, добавленные им в избранное.
Важной особенностью является составной первичный ключ, состоящий из полей customer_id и product_id. Это предотвращает дублирование записей - один и тот же товар не может быть добавлен в избранное одного пользователя дважды.
При удалении пользователя (записи из oc_customer) все связанные записи из списка желаний обычно удаляются каскадно, если настроены соответствующие внешние ключи.
Пример SQL-запроса
Получить список избранных товаров для конкретного пользователя с их названиями:
SELECT w.*, pd.name as product_name, p.image, p.price
FROM oc_customer_wishlist w
LEFT JOIN oc_product p ON (w.product_id = p.product_id)
LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id)
WHERE w.customer_id = 10 AND pd.language_id = 1;
Проверить, добавлен ли конкретный товар в избранное у пользователя:
SELECT COUNT(*) as in_wishlist
FROM oc_customer_wishlist
WHERE customer_id = 10 AND product_id = 45;
Смотрите также
-
таблицу
oc_customer,
которая хранит данные пользователей -
таблицу
oc_product,
которая содержит информацию о товарах -
таблицу
oc_cart,
которая хранит товары в корзине пользователей