Настройка автоматического переключения цен по способу оплаты в Битрикс24
В стандартной конфигурации интернет-магазина на Битрикс24 существует задача: установить разные цены для наличного и безналичного расчета, при этом цены не являются простой наценкой из-за особенностей синхронизации с 1С и правил округления.
Суть проблемы
В магазине действует два типа цен:
- Цена для оплаты наличными.
- Цена для оплаты банковской картой.
- Наличная цена: 2499 руб.
- Ожидаемая безналичная цена (2499 + 6%): 2649 руб.
- Фактическая цена после округления до сотен и вычета 1 рубля: 2699 руб.
Ограничение стандартного функционала
По умолчанию в Битрикс24 типы цен можно привязать только к группам пользователей. Однако в данной ситуации необходимо менять цену динамически, в зависимости от выбранного способа оплаты в корзине, для всех покупателей без исключения.
Решение задачи
Чтобы цена при выборе безналичного расчета автоматически бралась из соответствующего типа цен, необходимо выйти за рамки стандартных настроек. Реализация включает следующие шаги:
- Создание двух типов цен: Например, "Розница_Нал" и "Розница_Безнал". Все товарам должны быть присвоены оба значения.
- Разработка обработчика события: Необходимо написать обработчик (можно в виде модуля или в init.php), который будет отслеживать изменение способа оплаты в корзине.
- Логика переключения: При смене способа оплаты на "Безналичный" система должна программно подменить текущий тип цен пользователя на "Розница_Безнал". При возврате к "Наличным" - восстанавливать тип цен "Розница_Нал".
- Обновление корзины: После смены типа цен необходимо программно пересчитать стоимость позиций в корзине и обновить её отображение для пользователя.