Настройка оформления заказа в рассрочку 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка оформления заказа в рассрочку 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • 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 Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка оформления заказа в рассрочку 1С-Битрикс

Рассрочка — это специфический способ оплаты, который требует больше данных от покупателя, чем обычный чекаут. При оплате картой достаточно нажать кнопку и ввести CVV. При рассрочке нужны: паспортные данные, телефон для SMS-верификации, иногда — второй документ. Задача настройки оформления заказа в рассрочку — выстроить правильный флоу: показать рассрочку в нужный момент, не перегрузить форму лишними полями, корректно передать данные в банк.

Когда показывать рассрочку

Рассрочка имеет минимальную сумму заказа (обычно 50–300 BYN/RUB). Показывать кнопку «Оформить в рассрочку» нужно только когда сумма корзины соответствует условиям. Это решается в методе isAvailable обработчика платёжной системы.

На фронте — динамическое скрытие/показ кнопок при изменении корзины:

document.addEventListener('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';
    // Устанавливаем required для полей рассрочки
    document.querySelectorAll('.installment-required').forEach(el => {
        el.required = isInstallment;
    });
});

Подход 2: Отдельная страница подтверждения. Покупатель оформляет заказ стандартно, затем на странице оплаты видит кнопки: «Оплатить картой» и «Оформить в рассрочку». При клике на рассрочку — редирект на страницу банка.

Подход 2 проще для реализации и меньше ломает пользовательский опыт. Именно он чаще всего применяется при интеграции с белорусскими сервисами рассрочки (Халва, Черепаха, Магнит, Карта покупок).

Дополнительные свойства заказа для рассрочки

Для передачи данных в банк создаём свойства заказа через модуль sale:

// Программно добавляем свойства заказа для рассрочки
$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.

Выбор срока рассрочки в корзине

Перед переходом к оплате через рассрочку показываем покупателю выбор срока:

// Компонент выбора условий рассрочки
$availableTerms = [
    ['months' => 6,  'monthly' => ceil($orderTotal / 6)],
    ['months' => 12, 'monthly' => ceil($orderTotal / 12)],
    ['months' => 24, 'monthly' => ceil($orderTotal / 24)],
];
<div class="installment-terms">
    <?php foreach ($availableTerms as $term): ?>
    <label class="term-option">
        <input type="radio" name="installment_months" value="<?= $term['months'] ?>">
        <span class="term-label">
            <strong><?= $term['months'] ?> месяцев</strong>
            <span><?= $term['monthly'] ?> руб./мес.</span>
        </span>
    </label>
    <?php endforeach; ?>
</div>

Выбранный срок сохраняется в сессии и передаётся в обработчик платёжной системы через getBusinessValue.

Страница успешного оформления

После возврата с сайта банка (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 дней