Добрый день, коллеги.
Встал вопрос изменения порядка подключения доставки в зависимости от суммы с учетом всех скидок.
Похожие вопросы находил, но конкретно темы по этому вопросу не встречал. Предложенные там решения пробовал - ни одно не сработало.
Задача:
Бесплатная, или платная доставка должна определяться по итоговой сумме с учетом всех скидок и купонов. То есть, для бесплатной доставки установлен минимальный лимит 1500 рублей. При заказе на меньшую сумму - доставка платная, при заказе на сумму от 1500р. - бесплатная.
Необходимо определять сумму не до применения скидок по картам, купонам, бонусным баллам, а после них. То есть, пользователь сделал заказ на 1600 рублей - доставка бесплатная. Он применил дисконтную карту на 5% и сумма заказа стала 1520 рублей. Доставка при этом еще остается бесплатной. Но пользователь применяет еще и купон на 50 баллов (50 рублей) и сумма заказа становится 1470 рублей. При этом доставка должна стать платной, так как итоговая сумма заказа уже ниже порога в 1500 рублей.
То есть - необходимо учитывать в доставке не промежуточную сумму, а итоговую, с учетом всех скидок.
Побочная задача:
Обратил внимание уже на этапе попыток решения основной задачи. Дисконтная карта применяет скидку только на единицу товара. Когда добавляешь две и более единиц одного товара - скидка по дисконтной карте не умножается на количество товара.
То есть, покупатель кладет в корзину товар за 760 рублей, по дисконтной карте получает скидку 38 рублей, сумма получается 722 рубля. Затем он решает взять две единицы этого товара и должен, по идее, получить скидку в 76 рублей, а сумму 1444, а по факту получает 1482 рубля.
Возможно, покупатели и не замечают такой ошибки в расчетах, но это ошибка и ее надо исправить. Скидка должна считаться на весь товар, в любом его количестве.
Учитывать в заказе:
Прошу любой помощи по любой из задач - советы, решения, ссылки на решения.