Настройка списка ожидания (wishlist) 1С-Битрикс
Список ожидания и список избранного — разные функции, хотя их часто путают. Избранное — покупатель хочет вернуться к товару позже. Список ожидания — покупатель хочет купить конкретный товар, которого сейчас нет в наличии, и получить уведомление, когда он появится. В Битрикс оба функционала требуют кастомной реализации или модулей.
Отличие wishlist от уведомлений о поступлении
- Wishlist — список желаемых товаров покупателя, публичный или приватный, не обязательно связан с наличием
- Уведомление о поступлении — конкретная подписка на конкретный товар, когда остаток = 0
На практике wishlist часто реализуется как расширенное избранное с возможностью поделиться списком и добавить его в заказ одним кликом.
Реализация через пользовательские поля
Для хранения wishlist можно использовать пользовательское поле типа «Элемент инфоблока» у пользователя:
Настройки → Пользователи → Настройки пользователей → Добавить поле → Список элементов инфоблока (множественное)
Это решение без дополнительных таблиц, но ограниченное в функциональности: нет даты добавления, сортировки, заметок к товарам.
Кастомная реализация
Для полноценного wishlist — отдельная таблица и компонент:
CREATE TABLE user_wishlist (
ID SERIAL PRIMARY KEY,
USER_ID INT NOT NULL,
PRODUCT_ID INT NOT NULL,
NOTE TEXT,
DATE_ADD TIMESTAMP DEFAULT NOW(),
IS_PUBLIC BOOLEAN DEFAULT FALSE,
HASH VARCHAR(32), -- для публичной ссылки на список
UNIQUE(USER_ID, PRODUCT_ID)
);
Публичная ссылка на wishlist (/wishlist/?hash=abc123) позволяет покупателю поделиться списком с другими — популярная функция для подарочных списков.
AJAX API для управления списком
Операции с wishlist реализуются как AJAX-эндпоинты:
// Контроллер: /local/components/my/wishlist/ajax.php
if (check_bitrix_sessid()) {
$action = $_POST['action'];
$productId = (int)$_POST['product_id'];
if ($action === 'add') {
WishlistTable::add([
'USER_ID' => $GLOBALS['USER']->GetID(),
'PRODUCT_ID' => $productId,
]);
}
}
Связь с заказом
Кнопка «Добавить весь список в корзину» — перебирает товары из wishlist и добавляет через \Bitrix\Sale\Basket. Нужно учитывать: некоторые товары могут отсутствовать, у других может быть недостаточный остаток.
Сроки выполнения
Базовый wishlist без публичных ссылок — 1 рабочий день. Полноценный список с публичными ссылками, заметками к товарам и добавлением в корзину — 2–3 рабочих дня.







