Відсутність блоку розстрочки в картці товару означає, що покупець бачить ціну 150 000 грн і йде. Ми бачимо по аналітиці: до 30% сесій перериваються на етапі вибору способу оплати. Спираючись на 10+ років досвіду розробки під Бітрікс (реалізовано понад 50 проектів), гарантуємо стабільність і точність розрахунків. Наш компонент для 1С-Бітрікс виводить доступні плани з логотипами банків і розрахунком щомісячного платежу — прямо в картці товару. Рішення працює на будь-якому тарифі та масштабується.
Проблеми, які вирішує блок розстрочки
- Відсутність інформації у клієнта. Товар коштує 10 000–200 000 грн, а можливість оплати частинами не відображається — відвідувач думає, що її немає. Компонент показує доступні плани з логотипами банків і сумами внесків.
- Падіння конверсії. За даними наших проектів, наявність BNPL збільшує середній чек на 20–30%. Клієнти обирають дорожчі позиції, знаючи, що заплатять частинами.
- Помилки в розрахунках. Ручний розрахунок амортизації призводить до невідповідностей із банком. Ми автоматизуємо формулу ануїтетного платежу та перевіряємо її на тестових даних.
Реалізація відображення умов розстрочки
Використовуємо HL-блок InstallmentPlans для зберігання фіксованих умов (партнер, ставка, строки). Для динамічних умов підключаємо API банків через кешовані запити. Код розрахунку на PHP дублюється JavaScript для клієнтської інтерактивності.
Зберігання умов у HL-блоці
| Поле | Тип | Опис |
|---|---|---|
UF_PARTNER |
Рядок | Назва партнера (Тінькофф, Халва) |
UF_LOGO |
Файл | Логотип для відображення |
UF_MIN_AMOUNT |
Дробове | Мінімальна сума товару для розстрочки |
UF_MONTHS |
Рядок | Доступні строки (3,6,10,12,18,24) |
UF_RATE |
Дробове | Відсоткова ставка (0 для безвідсоткової) |
UF_ACTIVE |
Прапорець | Чи активний план |
Розрахунок щомісячного платежу
Для безвідсоткової: monthly = price / months. Для відсоткової — ануїтетна формула. PHP-функція:
function calcInstallment(float $price, int $months, float $annualRate): float { if ($annualRate <= 0) { return $price / $months; } $r = $annualRate / 12 / 100; return $price * $r / (1 - pow(1 + $r, -$months)); } JavaScript-аналог для перерахунку при виборі строку:
function calcInstallment(price, months, annualRate) { if (annualRate <= 0) return price / months; const r = annualRate / 12 / 100; return price * r / (1 - Math.pow(1 + r, -months)); } Прив'язуємо обробники до кнопок вибору строку. Кожен партнер відображається з логотипом і кнопками місяців. Мінімальний платіж показується для найдовшого строку.
Виведення блоку в картці товару
У шаблоні catalog.element після ціни завантажуємо відповідні плани:
$price = (float)$arResult['CATALOG_PRICE_1']; $plans = \Local\Installment\InstallmentPlanTable::getList([ 'filter' => ['=UF_ACTIVE' => true, '<=UF_MIN_AMOUNT' => $price], 'order' => ['UF_MIN_AMOUNT' => 'ASC'], ])->fetchAll(); На фронтенді для кожного партнера рендеримо блок з логотипом і кнопками вибору строку. При кліку оновлюється щомісячний внесок.
Кешування API-запитів: критичність та підхід
Кешований запит у 100 разів ефективніший за навантаженням на сервер порівняно з некешованим. Кожне відкриття картки без кешу генерує HTTP-запит до банку. При відвідуваності 10 000 карток на день — це 10 000 запитів. Кешування знижує їх до кількох перших за 10 хвилин. Використовуємо теговане кешування Бітрікс, щоб скидати кеш при зміні умов партнера. Документація 1С-Бітрікс рекомендує такий підхід для високонавантажених проектів.
Кешування робить блок розстрочки в 100 разів ефективнішим за навантаженням на сервер.
Що входить у роботу
- Аналіз вимог — визначаємо джерела умов (статичні/API), узгоджуємо дизайн блоку.
- Розробка HL-блоку та компонента — створюємо сховище, пишемо компонент виведення.
- Інтеграція розрахункової логіки — реалізуємо PHP та JS функції, тестуємо на граничних значеннях.
- Інтеграція з API банків — підключаємо, налаштовуємо кешування, обробляємо помилки.
- Верстка та стилізація — адаптуємо блок під дизайн сайту, додаємо юридичні тексти.
- Тестування та деплой — перевіряємо на всіх пристроях, фіксуємо результати.
- Передача документації та навчання — описуємо налаштування, даємо інструкцію менеджерам.
Приклад обробки помилки API
Якщо API банку недоступний, показуємо запасний статичний план із фіксованими умовами. Логуємо помилку та повідомляємо адміністратора.Типові помилки при налаштуванні
- Не враховувати мінімальний поріг товару. Якщо сума менша за
UF_MIN_AMOUNT, блок не показується — клієнт не бачить нічого. Потрібно ще виводити заглушку або повідомлення. - Забути про перерахунок при зміні ціни. Якщо на сторінці є вибір комплектації, ціна змінюється — розстрочка повинна оновлюватися. Використовуємо подію
BX.addCustomEvent('onCatalogPriceChange'). - Не включати юридичний текст. Обов'язково відображати, що розстрочку надає банк-партнер. Додаємо під блоком.
Як розрахувати щомісячний платіж?
Для безвідсоткової розстрочки: сума ціни ділиться на кількість місяців. Для відсоткової — використовуємо ануїтетну формулу, що враховує річну ставку та строк. Наш модуль автоматично виконує обчислення на стороні сервера та клієнта.
Чи варто кешувати API-запити?
Так, кешування знижує навантаження на сервер у 100 разів і прискорює завантаження сторінки. Ми налаштовуємо кеш на 10 хвилин із автоматичним скиданням при зміні умов партнера.
Орієнтовні строки
| Етап | Час |
|---|---|
| Сховище умов партнерів | 1–2 год |
| Розрахунок платежів (PHP + JS) | 2–3 год |
| Блок у картці товару | 3–4 год |
| Інтеграція з API банку (опціонально) | 4–8 год |
Вартість розраховується індивідуально залежно від кількості партнерів та складності API. Наші проекти демонструють підвищення конверсії на 20–30% та економію до 50 000 грн на рекламі завдяки кращому досвіду користувачів. Ми маємо 95% задоволених клієнтів.
Якщо у вас вже є домовленості з банками або ви хочете підключити BNPL-сервіси — оцінимо ваш проект і запропонуємо рішення. Зв'яжіться з нами для консультації. Замовте налаштування відображення умов розстрочки в картці товару 1С-Бітрікс.







