Таблица 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-запроса

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

sqlSELECT 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;

Проверить, добавлен ли конкретный товар в избранное у пользователя:

sqlSELECT COUNT(*) as in_wishlist
FROM oc_customer_wishlist
WHERE customer_id = 10 AND product_id = 45;

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

  • таблицу oc_customer,
    которая хранит данные пользователей
  • таблицу oc_product,
    которая содержит информацию о товарах
  • таблицу oc_cart,
    которая хранит товары в корзине пользователей