Налаштування списку очікування (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 робочих дні.







