Настройка оформления заказа в рассрочку 1С-Битрикс
Мы настраиваем оформление заказа в рассрочку на 1С-Битрикс под ключ. При разработке интернет-магазина часто возникает потребность добавить оплату частями — Халва, Черепаха, Магнит, Карта покупок. Задача не сводится к простой вставке кнопки. Требуется перестроить флоу чекаута: когда показывать рассрочку, какие поля собирать, как передавать данные в банк и обрабатывать ответы. За годы интеграций мы выявили типовые проблемы — неправильная очередь отображения кнопок, потерянные заявки из-за отсутствия логов, конфликты с другими платёжными системами. Наш подход — выстроить сквозной флоу с минимальными изменениями стандартного чекаута. Средняя конверсия при добавлении рассрочки растёт на 15–20%, а средний чек — на 25–30% за счёт выбора более дорогих товаров.
Почему рассрочка увеличивает конверсию?
Покупатель, видя возможность платить частями, реже бросает корзину на этапе оплаты. Психологический порог снижается: вместо крупной суммы единовременно — ежемесячный платёж, сопоставимый с ценой чашки кофе. Для интернет-магазинов это означает рост LTV и снижение отказов. По нашим данным, при подключении Халвы или Черепахи конверсия в оплату возрастает на 35–40% на категориях товаров дороже 200 BYN.
Когда показывать рассрочку
Рассрочка имеет минимальную сумму заказа (обычно 50–300 BYN/USD). Показывать кнопку «Оформить в рассрочку» нужно только когда сумма корзины соответствует условиям. Это решается в методе 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 дней |
Сравнение типовых параметров провайдеров:
| Провайдер | Мин. сумма | Макс. срок | Комиссия магазина |
|---|---|---|---|
| Халва | 50 BYN | 12 мес | 3–5% |
| Черепаха | 100 BYN | 6 мес | 4–6% |
| Магнит | $3–4 | 9 мес | 3,5% |
| Карта покупок | 200 BYN | 8 мес | 4% |
Что входит в работу
- Техническая документация — описание флоу, схема данных, инструкция по поддержке
- Настройка платёжных систем и интеграция с банками
- Доступ к репозиторию с кодом
- Обучение администратора: как добавлять нового провайдера, где смотреть логи
- Гарантия на работу — 3 месяца после приёмки
Типичные ошибки при интеграции
- Некорректное скрытие кнопок — рассрочка показывается при сумме ниже минимума, что ведёт к ошибкам банка
- Отсутствие валидации паспортных данных — заявка уходит с неполными полями
- Забывают логировать отказы — сложно анализировать конверсию провайдеров
Наши инженеры устраняют эти проблемы на этапе тестирования. Свяжитесь с нами — оценим ваш проект за один день и предложим оптимальное решение. Бесплатная консультация при обращении.







