Налаштування кошика інтернет-магазину 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С-Бітрікс

Кошик у 1С-Бітрікс — це не просто список товарів. Це об'єкт \Bitrix\Sale\Basket, пов'язаний з замовленнями, скидками, правилами доставки та користувацькою сесією. Грамотна настройка кошика безпосередньо впливає на конверсію: від швидкості завантаження мініатюри кошика до логіки злиття при авторизації. Розберемо ключові механіки, правила скидок та прийоми перехресних продаж.

Компонент sale.basket.basket

Стандартний компонент sale.basket.basket відповідає за повну сторінку кошика. Його параметри задають поведінку:

  • COLUMNS_LIST — які колонки відображати (зображення, назва, кількість, ціна, видалити).
  • HIDE_COUPON — приховати поле купону, якщо промо-акції не використовуються.
  • QUANTITY_FLOAT — дозволити дробну кількість (для важких товарів).
  • PRICE_VAT_SHOW_VALUE — показувати НДС окремим рядком.
  • AUTO_CALCULATION — пересчитувати кошик при кожній зміні кількості без перезавантаження сторінки.

Компонент працює через AJAX: при зміні кількості надсилається запит до \Bitrix\Sale\Compatible\BasketCompatibility або безпосередньо до \Bitrix\Sale\Basket::refresh(), пересчитуються скидки, оновлюється итог.

Отложені товари — вбудована функція кошика. Товар з властивістю DELAY = Y не бере участь у розрахунку вартості та доставки, але лишається у b_sale_basket. Перемикання між отложеним та активним станом виконується методом \Bitrix\Sale\BasketItem::setField('DELAY', 'Y').

Міні-кошик

Міні-кошик (sale.basket.basket.line) зазвичай розташовується в шапці сайту. Показує кількість товарів та суму. Основна проблема — продуктивність. Компонент за замовчуванням звертається до БД при кожному хіті. На високонавантажених проектах це вирішується:

  • Кешуванням на стороні клієнта — дані кошика зберігаються у localStorage та оновлюються лише при діях користувача.
  • Підгрузкою через відкладений AJAX-запит після завантаження сторінки (lazy load).
  • Використанням composite cache з виключенням блока кошика через \Bitrix\Main\Page\Frame.

Правила скидок кошика

Скидки у Бітрікс діляться на скидки каталогу (застосовуються до товару до кошика) та правила кошика (sale.discount). Правила кошика — потужний інструмент, що працює на рівні замовлення.

Правило кошика складається з умов та дій:

Умови — що повинно виконатися:

  • Сума кошика більше N.
  • У кошику є товар з розділу X.
  • Кількість товарів з властивістю Y більше Z.
  • Купон активовано.
  • Користувач належить до групи W.

Дії — що відбувається при виконанні умов:

  • Скидка N% на весь заказ.
  • Скидка на конкретний товар або розділ.
  • Подарунок (додавання товару з нульовою ціною).
  • Безплатна доставка (через флаг DELIVERY_DISCOUNT).

Порядок застосування скидок задається через пріоритети. Скидки з однаковим пріоритетом застосовуються спільно; з різним — послідовно, причому кожна наступна розраховується від вже скидочної ціни. Флаг «Припинити застосування» зупиняє ланцюг — корисно для екскlusивних акцій.

Частою помилкою є конфлікт скидок каталогу та кошика. За замовчуванням Бітрікс не сумує їх: якщо товар вже має скидку каталогу, правило кошика може не застосуватися. Поведінка задається у настройках модуля saleТип пересчету скидок.

Перехресні продажи у кошику

Перехресні продажи (cross-sell) на сторінці кошика підвищують середній чек. У Бітрікс реалізуються кількома способами:

Через властивість товара «Сопровідні» — привязка товарів на рівні інфоблока. Компонент catalog.recommended.products виводить їх рядом з кошиком. Просто в настройці, але потребує ручного заповнення зв'язків.

Через автоматичні рекомендації — модуль bigdata (Персоналізація) аналізує поведінку користувачів та підбирає товари на основі колаборативної фільтрації. Настраивается у розділі Маркетинг → Персоналізація. Працює лише при достатньому обсягу даних (мінімум кілька тисяч замовлень).

Через правила кошика з подарунком — створюєте правило: «при покупці товару з розділу А — запропонувати товар з розділу Б зі скидкою 50%». Користувач бачить пропозицію прямо в кошику та може прийняти її одним кліком.

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

Злиття кошика при авторизації

Коли неавторизований користувач додає товари в кошик, вони привязані до FUSER_ID — анонімного ідентифікатора з куки. Після авторизації Бітрікс викликає \Bitrix\Sale\Fuser::getIdByUserId() та виконує злиття:

  1. Товари з анонімного кошика переносяться в кошик користувача.
  2. Якщо товар вже є в обох кошиках — кількість сумується.
  3. Скидки пересчитуються для об'єднаного кошика.

Злиття відбувається автоматично через обробник события OnAfterUserLogin. Проблеми виникають, коли кастомна авторизація (SSO, зовнішній OAuth) обходить стандартний механізм. У такому випадку потрібно явно викликати \Bitrix\Sale\Fuser::update() для об'єднання ідентифікаторів.

Настройка кроків оформлення

Перехід з кошика до оформлення замовлення контролюється компонентом sale.order.ajax. Можна настроїти на поетапне оформлення (окремі сторінки для доставки, оплати, підтвердження) або на одностороннє (all-in-one). Практика показує, що одностороннє оформлення дає конверсію на 15-20% вищу, але потребує більше роботи з валідацією на клієнті.

Ключові параметри: DELIVERY_TO_PAYSYSTEM — зв'язок служб доставки з платіжними системами, SHOW_NOT_CALCULATED_DELIVERIES — показувати чи доставки, для яких не вдалося розрахувати вартість.