Налаштування оформлення замовлення в розстрочку 1С-Бітрікс
Ми налаштовуємо оформлення замовлення в розстрочку на 1С-Бітрікс під ключ. При розробці інтернет-магазину часто виникає потреба додати оплату частинами — Халва, Черепаха, Магніт, Карта покупок. Завдання не зводиться до простої вставки кнопки. Потрібно перебудувати флоу чекауту: коли показувати розстрочку, які поля збирати, як передавати дані в банк і обробляти відповіді. За роки інтеграцій ми виявили типові проблеми — неправильна черга відображення кнопок, втрачені заявки через відсутність логів, конфлікти з іншими платіжними системами. Наш підхід — вибудувати наскрізний флоу з мінімальними змінами стандартного чекауту. Середня конверсія при додаванні розстрочки зростає на 15–20%, а середній чек — на 25–30% за рахунок вибору дорожчих товарів.
Чому розстрочка збільшує конверсію?
Покупець, бачачи можливість платити частинами, рідше кидає кошик на етапі оплати. Психологічний поріг знижується: замість великої суми одноразово — щомісячний платіж, порівнянний з ціною чашки кави. Для інтернет-магазинів це означає зростання LTV та зниження відмов. За нашими даними, при підключенні Халви або Черепахи конверсія в оплату зростає на 35–40% на категоріях товарів з високою вартістю.
Коли показувати розстрочку
Розстрочка має мінімальну суму замовлення (зазвичай визначається індивідуально). Показувати кнопку «Оформити в розстрочку» потрібно лише коли сума кошика відповідає умовам. Це вирішується в методі isAvailable обробника платіжної системи.
На фронті — динамічне приховування/показ кнопок при зміні кошика через подію basket:updated. Слухач перевіряє підсумок і ховає кнопку, якщо сума менше мінімуму. Заодно на клік оновлюється розрахунок щомісячного платежу.
BX.addCustomEvent('basket:updated', function(e) { const total = e.detail.price; const minInstallment = window.INSTALLMENT_MIN_AMOUNT || 50; document.querySelectorAll('.installment-pay-btn').forEach(btn => { btn.style.display = total >= minInstallment ? 'inline-flex' : 'none'; }); if (total >= minInstallment) { document.getElementById('installment-monthly') .textContent = 'від ' + Math.ceil(total / 12) + ' руб./міс.'; } }); Як адаптувати чекаут під розстрочку
Стандартний чекаут Бітрікс (bitrix:sale.order.ajax) потрібно адаптувати під розстрочку. Використовується два підходи.
Підхід 1: Єдиний чекаут з умовними полями. У формі замовлення присутні всі поля, але додаткові (для розстрочки) показуються лише при виборі відповідного способу оплати.
BX.bind(document.getElementById('pay-system-select'), 'change', function() { const isInstallment = this.value === 'installment'; document.getElementById('installment-fields-block').style.display = isInstallment ? 'block' : 'none'; document.querySelectorAll('.installment-required').forEach(el => { el.required = isInstallment; }); }); Підхід 2: Окрема сторінка підтвердження. Покупець оформлює замовлення стандартно, потім на сторінці оплати бачить кнопки: «Оплатити карткою» та «Оформити в розстрочку». При кліку на розстрочку — редирект на сайт банку.
Підхід 2 простіший для реалізації і менше ламає користувацький досвід. Саме він найчастіше застосовується при інтеграції з білоруськими сервісами розстрочки (Халва, Черепаха, Магніт, Карта покупок). Підхід 1 зручніший для покупця, але вимагає ретельної валідації полів та тестування.
Які властивості замовлення потрібні для розстрочки
Для передачі даних в банк створюємо властивості замовлення через модуль sale. Програмно додаємо обов'язкові поля: термін розстрочки, провайдер, ID заявки в банку, статус.
$propsToAdd = [ 'INSTALLMENT_TERM' => ['NAME' => 'Термін розстрочки (міс.)', 'TYPE' => 'NUMBER'], 'INSTALLMENT_PROVIDER' => ['NAME' => 'Провайдер розстрочки', 'TYPE' => 'STRING'], 'INSTALLMENT_APP_ID' => ['NAME' => 'ID заявки в банку', 'TYPE' => 'STRING'], 'INSTALLMENT_STATUS' => ['NAME' => 'Статус розстрочки', 'TYPE' => 'STRING'], ]; foreach ($propsToAdd as $code => $params) { $prop = new \CSaleOrderProps(); $prop->Add([ 'PERSON_TYPE_ID' => 1, 'NAME' => $params['NAME'], 'TYPE' => $params['TYPE'], 'CODE' => $code, 'ACTIVE' => 'Y', 'USER_PROPS' => 'N', 'IS_LOCATION' => 'N', 'IS_EMAIL' => 'N', 'IS_NAME' => 'N', 'IS_PHONE' => 'N', 'SORT' => 500, ]); } При створенні замовлення через розстрочку заповнюємо INSTALLMENT_TERM та INSTALLMENT_PROVIDER. При отриманні рішення від банку — INSTALLMENT_APP_ID та INSTALLMENT_STATUS.
Що робити після схвалення банку?
Після повернення з сайту банку (success_url) показуємо спеціальну сторінку «Заявка на розстрочку прийнята»:
- Якщо банк схвалив миттєво — «Розстрочку оформлено, замовлення підтверджено»
- Якщо розгляд займе час — «Заявка на розгляді. Ви отримаєте SMS про рішення»
- Якщо відхилено — «Заявку відхилено. Ви можете обрати інший спосіб оплати» з кнопкою «Оплатити карткою»
Статус визначається з GET-параметра, який повертає банк, або з нашої БД (bl_mtbank_orders.status, bl_bnovo_reservations, залежно від провайдера).
Логування та моніторинг
Всі спроби оформлення розстрочки пишемо в лог bl_installment_log. Це дає статистику: конверсія по кожному провайдеру, середній термін розстрочки, частка заявок за сумами.
CREATE TABLE bl_installment_log ( id SERIAL PRIMARY KEY, order_id INT NOT NULL, provider VARCHAR(32) NOT NULL, -- 'halva', 'karta_pokupok', 'cherepaha', 'magnit' amount NUMERIC(12,2), term_months SMALLINT, status VARCHAR(30), bank_app_id VARCHAR(128), created_at TIMESTAMP DEFAULT NOW(), updated_at TIMESTAMP DEFAULT NOW() ); Терміни та склад робіт
| Етап | Термін |
|---|---|
| Проєктування властивостей замовлення та налаштування платіжних систем | 1 день |
| Реалізація динаміки відображення кнопок розстрочки в кошику | 1 день |
| Сторінка вибору терміну розстрочки | 1 день |
| Сторінки success/fail з правильними статусами | 1 день |
| Логування та звіт по конверсіях | 1 день |
| Тестування повного флоу | 1–2 дні |
| Разом | 6–8 днів |
Порівняння типових параметрів провайдерів:
| Провайдер | Мін. сума | Макс. термін | Комісія магазину |
|---|---|---|---|
| Халва | індивідуально | 12 міс | залежить від умов |
| Черепаха | індивідуально | 6 міс | залежить від умов |
| Магніт | індивідуально | 9 міс | залежить від умов |
| Карта покупок | індивідуально | 8 міс | залежить від умов |
Що входить в роботу
- Технічна документація — опис флоу, схема даних, інструкція з підтримки
- Налаштування платіжних систем та інтеграція з банками
- Доступ до репозиторію з кодом
- Навчання адміністратора: як додавати нового провайдера, де дивитись логи
- Гарантія на роботу — 3 місяці після приймання
Типові помилки при інтеграції
- Некоректне приховування кнопок — розстрочка показується при сумі нижче мінімуму, що веде до помилок банку
- Відсутність валідації паспортних даних — заявка йде з неповними полями
- Забувають логувати відмови — складно аналізувати конверсію провайдерів
Наші інженери усувають ці проблеми на етапі тестування. Зв'яжіться з нами — оцінимо ваш проєкт за один день і запропонуємо оптимальне рішення. Безкоштовна консультація при зверненні.







