Техническое задание: Исправление логики применения скидок в платежном модуле Opencart 3
В текущей версии платежного модуля (робокасса) существует проблема с распределением скидки при передаче данных в платежную систему. Скидка, примененная к заказу, распределяется пропорционально между всеми позициями, включая стоимость доставки, что является некорректным.
Цель доработки
Изменить логику работы модуля таким образом, чтобы общая скидка по заказу применялась только к товарным позициям в корзине. Стоимость доставки должна оставаться неизменной и не участвовать в расчете скидки.
Требования к изменениям:
- Скидка (купон, промокод, акция) должна вычитаться только из общей суммы товаров.
- Стоимость доставки должна передаваться в платежную систему в исходном, полном размере.
- Итоговая сумма к оплате, отправляемая в платежный шлюз, должна корректно формироваться: (Сумма товаров - Скидка) + Стоимость доставки.
- Изменения не должны нарушать работу других функций магазина и модуля.
Технические детали
- Платформа: Opencart 3.x.
- Объект доработки: Платежный модуль (робокасса).
- Требуется глубокое понимание структуры Opencart, работы с корзиной (cart) и заказом (order), а также механизмами применения скидок.
В результате предоставьте исправленные файлы модуля с комментариями о внесенных изменениях.