Настройка отображения условий рассрочки в карточке товара 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С-Битрикс

Рассрочка на странице товара — это расчёт ежемесячного платежа и отображение условий партнёра (банка или BNPL-сервиса) прямо в карточке. Реализуется через хранение параметров рассрочки и расчёт на фронтенде или сервере.

Откуда берутся условия рассрочки

Два основных сценария:

Сценарий 1 — фиксированные партнёры. У магазина договор с одним-двумя банками, условия известны заранее (процент, сроки, минимальная сумма). Данные хранятся в настройках сайта или отдельном инфоблоке.

Сценарий 2 — динамические условия через API. Банк/BNPL-партнёр предоставляет API, откуда запрашиваются актуальные условия для конкретной суммы. Пример: Тинькофф Рассрочка, Халва, Сплит.

Хранение условий партнёров в Битриксе

Для фиксированных условий создаёте HL-инфоблок InstallmentPlans:

Поле Тип Описание
UF_PARTNER Строка Название партнёра
UF_LOGO Файл Логотип
UF_MIN_AMOUNT Дробное Минимальная сумма товара
UF_MONTHS Строка Доступные сроки (6,10,12,24)
UF_RATE Дробное Ставка (0 для беспроцентной)
UF_ACTIVE Флаг Активен ли план

Расчёт ежемесячного платежа

Для беспроцентной рассрочки (rate = 0):

monthly = price / months

Для рассрочки с процентной ставкой (аннуитетный платёж):

monthly = price * (rate/12) / (1 - (1 + rate/12)^(-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));
}

document.querySelectorAll('.installment-months').forEach(btn => {
    btn.addEventListener('click', () => {
        const months = parseInt(btn.dataset.months);
        const rate = parseFloat(btn.dataset.rate);
        const price = parseFloat(document.querySelector('[data-price]').dataset.price);
        const monthly = calcInstallment(price, months, rate);
        document.querySelector('.monthly-payment').textContent =
            monthly.toFixed(2).replace('.', ',') + ' руб./мес.';
    });
});

Вывод блока в карточке товара

В шаблоне 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();

HTML-блок условий — список партнёров с их логотипами и кнопками выбора срока. Каждый партнёр показывает минимальный ежемесячный платёж (по максимальному сроку).

Интеграция с API банка

Если партнёр предоставляет API расчёта (например, Тинькофф):

// Кэшируем ответ API на 10 минут, чтобы не дёргать при каждом открытии карточки
$cacheKey = 'installment_' . (int)$price;
$cache = \Bitrix\Main\Data\Cache::createInstance();

if ($cache->initCache(600, $cacheKey, '/installment/')) {
    $data = $cache->getVars();
} else {
    $data = \Local\Installment\TinkoffApiClient::getPlans($price);
    $cache->startDataCache();
    $cache->endDataCache($data);
}

На что обратить внимание

  • Для товаров дешевле минимального порога партнёра блок рассрочки не показываете совсем
  • Юридические тексты («рассрочка предоставляется банком-партнёром») выводите рядом с блоком
  • При изменении цены через JS (выбор комплектации) пересчитывайте рассрочку тоже
Этап Время
Хранилище условий партнёров 1–2 ч
Расчёт платежей (PHP + JS) 2–3 ч
Блок в карточке товара 3–4 ч
Интеграция с API банка (опционально) 4–8 ч