Настройка автоматического переключения цен по способу оплаты в Битрикс24

    В стандартной конфигурации интернет-магазина на Битрикс24 существует задача: установить разные цены для наличного и безналичного расчета, при этом цены не являются простой наценкой из-за особенностей синхронизации с 1С и правил округления.

    Суть проблемы

    В магазине действует два типа цен:

    • Цена для оплаты наличными.
    • Цена для оплаты банковской картой.
    Простая настройка через наценку в 6% и округление не работает корректно. Например:
    • Наличная цена: 2499 руб.
    • Ожидаемая безналичная цена (2499 + 6%): 2649 руб.
    • Фактическая цена после округления до сотен и вычета 1 рубля: 2699 руб.
    Это связано с алгоритмами, заложенными в обмене данными с системой 1С.

    Ограничение стандартного функционала

    По умолчанию в Битрикс24 типы цен можно привязать только к группам пользователей. Однако в данной ситуации необходимо менять цену динамически, в зависимости от выбранного способа оплаты в корзине, для всех покупателей без исключения.

    Решение задачи

    Чтобы цена при выборе безналичного расчета автоматически бралась из соответствующего типа цен, необходимо выйти за рамки стандартных настроек. Реализация включает следующие шаги:

    1. Создание двух типов цен: Например, "Розница_Нал" и "Розница_Безнал". Все товарам должны быть присвоены оба значения.
    2. Разработка обработчика события: Необходимо написать обработчик (можно в виде модуля или в init.php), который будет отслеживать изменение способа оплаты в корзине.
    3. Логика переключения: При смене способа оплаты на "Безналичный" система должна программно подменить текущий тип цен пользователя на "Розница_Безнал". При возврате к "Наличным" - восстанавливать тип цен "Розница_Нал".
    4. Обновление корзины: После смены типа цен необходимо программно пересчитать стоимость позиций в корзине и обновить её отображение для пользователя.
    Таким образом, цена будет меняться динамически, основываясь на заведенных в каталоге значениях для каждого типа цен, что обеспечит корректный учет и необходимое округление.