Розробка калькулятора розстрочки на 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Розробка калькулятора розстрочки на 1С-Бітрікс
Середня
~1-2 тижні
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • 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С-Бітрікс

Розстрочка — маркетинговий інструмент, а не фінансовий продукт. Принципова відмінність від кредиту: немає відсотків для покупця (вони або відсутні, або компенсуються продавцем банку). Калькулятор розстрочки простіший математично, але складніший логічно: потрібно відобразити різні терміни розстрочки, умови дострокового погашення, можливі комісії за оформлення.

Механіка розстрочки

У класичній розстрочці без переплати:

Щомісячний платіж = Вартість товару ÷ Кількість місяців

Продавець компенсує банку різницю за рахунок своєї маржі або спеціального договору з банком-партнером.

У розстрочці «0-0-24» (0% перший внесок, 0% ставка, 24 місяці) — приховані умови часто включають обов'язкове страхування або комісію за ведення рахунку. Калькулятор повинен показувати реальну підсумкову суму.

PHP-реалізація розрахунку

namespace MyProject\Services;

class InstallmentCalculator
{
    /**
     * @param float  $amount      Вартість товару/послуги
     * @param int    $months      Термін розстрочки
     * @param float  $downPayment Перший внесок (0 якщо немає)
     * @param float  $bankRate    Реальна ставка банку (компенсується продавцем)
     * @param float  $commission  Одноразова комісія (0 якщо немає)
     */
    public static function calculate(
        float $amount,
        int   $months,
        float $downPayment = 0,
        float $bankRate    = 0,
        float $commission  = 0
    ): array {
        $loanAmount      = $amount - $downPayment;
        $commissionFixed = $amount * ($commission / 100);

        if ($bankRate == 0) {
            // Класична безвідсоткова розстрочка
            $monthlyPayment = $loanAmount / $months;
            $totalPayment   = $loanAmount + $commissionFixed;
            $overpayment    = $commissionFixed;
        } else {
            // Розстрочка з фактичною ставкою (платить продавець, не покупець)
            $monthlyRate    = $bankRate / 12 / 100;
            $monthlyPayment = $loanAmount * $monthlyRate
                * pow(1 + $monthlyRate, $months)
                / (pow(1 + $monthlyRate, $months) - 1);
            $totalPayment   = $monthlyPayment * $months + $commissionFixed;
            $overpayment    = $totalPayment - $loanAmount;
        }

        return [
            'down_payment'    => round($downPayment, 2),
            'loan_amount'     => round($loanAmount, 2),
            'monthly_payment' => round($monthlyPayment, 2),
            'commission'      => round($commissionFixed, 2),
            'total_payment'   => round($totalPayment, 2),
            'overpayment'     => round($overpayment, 2),
            'months'          => $months,
            'is_zero_percent' => ($overpayment == 0 || $overpayment == $commissionFixed),
        ];
    }
}

Конфігурація варіантів розстрочки

Магазини працюють з кількома банками-партнерами, кожен пропонує різні умови. Зберігання в HL-блоці InstallmentPrograms:

Поле Опис
UF_BANK_NAME Банк-партнер
UF_MONTHS Термін розстрочки
UF_DOWN_PAYMENT_PCT Мінімальний перший внесок (%)
UF_COMMISSION_PCT Комісія за оформлення (%)
UF_MIN_AMOUNT Мінімальна сума покупки
UF_MAX_AMOUNT Максимальна сума
UF_CATEGORIES Категорії товарів (може бути не скрізь)

При виборі суми калькулятор автоматично відображає доступні програми розстрочки.

UX: відображення варіантів

Інтерфейс показує таблицю порівняння варіантів:

function renderInstallmentTable(programs, amount) {
    const rows = programs
        .filter(p => amount >= p.min_amount && amount <= p.max_amount)
        .map(p => {
            const calc = calcInstallment(amount, p.months, p.down_pct, p.commission_pct);
            return `
                <tr>
                    <td>${p.bank_name}</td>
                    <td>${p.months} міс.</td>
                    <td>${formatMoney(calc.down_payment)} (${p.down_pct}%)</td>
                    <td>${formatMoney(calc.monthly_payment)}/міс.</td>
                    <td>${calc.overpayment > 0 ? formatMoney(calc.overpayment) : '0 ₴'}</td>
                    <td><button onclick="selectProgram(${p.id})">Обрати</button></td>
                </tr>
            `;
        });

    document.getElementById('installment-table').innerHTML = rows.join('');
}

Інтеграція з кошиком Бітрікс

Для інтернет-магазинів калькулятор розстрочки вбудовується в сторінку товару та кошик. Обраний варіант розстрочки зберігається у властивостях замовлення:

// Збереження обраної програми розстрочки у властивість замовлення
$order = \Bitrix\Sale\Order::load($orderId);
$propertyCollection = $order->getPropertyCollection();

$installmentProp = $propertyCollection->getItemByOrderPropertyCode('INSTALLMENT_PROGRAM');
if ($installmentProp) {
    $installmentProp->setValue(json_encode([
        'bank'    => $bankName,
        'months'  => $months,
        'payment' => $monthlyPayment,
    ]));
}

$order->save();

Віджет розстрочки в картці товару

Мінімальний платіж показується прямо на сторінці товару — це стандартна практика e-commerce:

// У шаблоні товару
$minMonthlyPayment = InstallmentCalculator::getMinMonthlyPayment(
    $arResult['ITEM_PRICES'][0]['PRICE'],
    $availablePrograms
);

if ($minMonthlyPayment) {
    echo "від {$minMonthlyPayment} ₴/міс. у розстрочку";
}

Терміни

Завдання Термін
Базовий калькулятор розстрочки (1–2 програми, сторінка товару) 3–5 днів
Калькулятор з кількома банками, таблицею порівняння, інтеграцією в кошик 1.5–2 тижні
Повна система розстрочки з онлайн-заявкою до банку через API 3–6 тижнів

Калькулятор розстрочки знижує психологічний бар'єр перед великими покупками. Замість «120 000 гривень одразу» клієнт бачить «5 000 гривень на місяць» — і це різні рішення.