Отсутствие блока рассрочки в карточке товара означает, что покупатель видит цену $1.4k–1.9k. и уходит. Мы видим по аналитике: до 30% сессий прерываются на этапе выбора способа оплаты. Опираясь на 10-летний опыт разработки под Битрикс, гарантируем стабильность и точность расчётов. Наш компонент для 1С-Битрикс выводит доступные планы с логотипами банков и расчётом ежемесячного платежа — прямо в карточке товара. Решение работает на любом тарифе и масштабируется.
Проблемы, которые решает блок рассрочки
- Отсутствие информации у клиента. Товар стоит $100–2k., а возможность оплаты частями не отображается — посетитель думает, что её нет. Компонент показывает доступные планы с логотипами банков и суммами взносов.
- Падение конверсии. По данным наших проектов, наличие BNPL увеличивает средний чек на 20–30%. Клиенты выбирают более дорогие позиции, зная, что заплатят частями.
- Ошибки в расчётах. Ручной расчёт амортизации приводит к несоответствиям с банком. Мы автоматизируем формулу аннуитетного платежа и проверяем её на тестовых данных.
Реализация отображения условий рассрочки
Используем HL-блок InstallmentPlans для хранения фиксированных условий (партнёр, ставка, сроки). Для динамических условий подключаем API банков через кэшируемые запросы. Код расчёта на PHP дублируется JavaScript для клиентской интерактивности.
Хранение условий в HL-блоке
| Поле | Тип | Описание |
|---|---|---|
UF_PARTNER |
Строка | Название партнёра (Тинькофф, Халва) |
UF_LOGO |
Файл | Логотип для отображения |
UF_MIN_AMOUNT |
Дробное | Минимальная сумма товара для рассрочки |
UF_MONTHS |
Строка | Доступные сроки (3,6,10,12,18,24) |
UF_RATE |
Дробное | Процентная ставка (0 для беспроцентной) |
UF_ACTIVE |
Флаг | Включён ли план |
Расчёт ежемесячного платежа
Для беспроцентной: monthly = price / 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)); } Привязываем обработчики к кнопкам выбора срока. Каждый партнёр отображается с логотипом и кнопками месяцев. Минимальный платёж показывается для самого длительного срока.
Вывод блока в карточке товара
В шаблоне 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(); На фронтенде для каждого партнёра рендерим блок с логотипом и кнопками выбора срока. При клике обновляется ежемесячный взнос.
Кэширование API-запросов: критичность и подход
Каждое открытие карточки без кэша генерирует HTTP-запрос к банку. При посещаемости 10 000 карточек в день — это 10 000 запросов. Кэширование снижает их до нескольких первых за 10 минут. Используем тегированное кэширование Битрикс, чтобы сбрасывать кэш при изменении условий партнёра. Документация 1С-Битрикс рекомендует такой подход для высоконагруженных проектов.
Кэширование делает блок рассрочки в 100 раз эффективнее по нагрузке на сервер.
Что входит в работу
- Анализ требований — определяем источники условий (статические/API), согласовываем дизайн блока.
- Разработка HL-блока и компонента — создаём хранилище, пишем компонент вывода.
- Интеграция расчётной логики — реализуем PHP и JS функции, тестируем на граничных значениях.
- Интеграция с API банков — подключаем, настраиваем кэширование, обрабатываем ошибки.
- Вёрстка и стилизация — адаптируем блок под дизайн сайта, добавляем юридические тексты.
- Тестирование и деплой — проверяем на всех устройствах, фиксируем результаты.
- Передача документации и обучение — описываем настройку, даём инструкцию менеджерам.
Пример обработки ошибки API
Если API банка недоступен, показываем запасной статический план с фиксированными условиями. Логируем ошибку и уведомляем администратора.Типичные ошибки при настройке
- Не учитывать минимальный порог товара. Если сумма меньше
UF_MIN_AMOUNT, блок не показывается — клиент не видит ничего. Нужно ещё выводить заглушку или сообщение. - Забыть про пересчёт при изменении цены. Если на странице есть выбор комплектации, цена меняется — рассрочка должна обновляться. Используем событие
BX.addCustomEvent('onCatalogPriceChange'). - Не включать юридический текст. По 54-ФЗ обязательно отображать, что рассрочку предоставляет банк-партнёр. Добавляем под блоком.
Ориентировочные сроки
| Этап | Время |
|---|---|
| Хранилище условий партнёров | 1–2 ч |
| Расчёт платежей (PHP + JS) | 2–3 ч |
| Блок в карточке товара | 3–4 ч |
| Интеграция с API банка (опционально) | 4–8 ч |
Стоимость рассчитывается индивидуально в зависимости от количества партнёров и сложности API.
Если у вас уже есть договорённости с банками или вы хотите подключить BNPL-сервисы — оценим ваш проект и предложим решение. Свяжитесь с нами для консультации. Закажите настройку отображения условий рассрочки в карточке товара 1С-Битрикс.







