Налаштування списку вибраного 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування списку вибраного 1С-Бітрікс
Проста
~1 робочий день
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Налаштування списку обраного у 1С-Бітрикс

Список обраного (закладки, wishlist) — немає вбудованого стандартного компонента в ядрі Бітрикс, який реалізував би повноцінний wishlist зі зберіганням у базі даних. Функціональність реалізується через механізм «Відкладених товарів» модуля sale або через кастомну розробку з використанням UserFieldManager або окремої таблиці.

Варіант 1: Відкладені товари (вбудований механізм)

Модуль sale має вбудований механізм «відкладених» позицій корзини. Товар додається в корзину з прапором DELAY = Y. Технічно це рядок у b_sale_basket з ознакою відкладеного:

// Додати товар в відкладені
$basket = \Bitrix\Sale\Basket::loadItemsForFUser(
    \Bitrix\Sale\Fuser::getId()
);
$item = $basket->createItem('catalog', $productId);
$item->setFields([
    'QUANTITY' => 1,
    'DELAY'    => 'Y',
    'NAME'     => $productName,
    'PRICE'    => $price,
    'CURRENCY' => 'RUB',
]);
$basket->save();

Компонент bitrix:sale.basket.basket виводить відкладені товари при параметрі SHOW_DELAY = Y.

Мінус: відкладені товари — частина корзини, а не окремий список. При очищенні корзини теряються.

Варіант 2: Кастомний список обраного

Для повноцінної функціональності: зберігання між сесіями, синхронізація між пристроями, список незалежний від корзини — потрібна окрема таблиця або використання користувацьких полів.

Структура таблиці user_favorite_products:

CREATE TABLE user_favorite_products (
    ID SERIAL PRIMARY KEY,
    USER_ID INT NOT NULL,
    PRODUCT_ID INT NOT NULL,
    DATE_ADD TIMESTAMP DEFAULT NOW(),
    UNIQUE(USER_ID, PRODUCT_ID)
);

ORM-клас через DataManager дозволяє працювати з таблицею через стандартний Bitrix API. AJAX-ендпоінт для додавання/видалення — через \Bitrix\Main\Engine\Controller.

Для гостей: зберігання в localStorage

Для незареєстрованих користувачів список обраного зручніше зберігати в localStorage браузера. При авторизації — синхронізувати з базою через AJAX. Це стандартний підхід для сучасних магазинів.

Компонент та UI

Кнопка «В обране» розташовується в шаблоні карточки товара та листингу. Стан кнопки (доданий/не доданий) керується JavaScript-класом на основі даних, переданих в компонент або отриманих через AJAX.

Терміни виконання

Обране через механізм відкладених товарів — 2–4 години. Повноцінний кастомний список з синхронізацією гість/авторизований — 1–2 робочих дні.