... столкнулся с такой проблемой: во всех шагах заказа, на стоимость доставки скидка не распространяется (как и надо), а после подтверждения заказа, доставка оказывается со скидкой...
Поставил у себя хак, во время тестирования вроде все гладко было, но потом во время работы вылез такой же глюк.
Точнее их у этого хака два:
1. Если стоимость заказа + стоимость доставки >= порога скидки, то будет сделана скидка от стоимости заказа! Разумеется речь идет о ситуации, когда в настройках хака указано "Исключить доставку из скидки", иначе скидка посчитается еще и от доставки! )))
Решение: в ps_checkout.php найти строку
$confronto = $totals['order_total'] - $shipping_total;
и заменить на
$confronto = $totals['order_total'] - $totals['order_shipping'];
или, если вы как я используете отрицательные скидки на способ оплаты (см.п.2), на
$confronto = $totals['order_total'] - $totals['order_shipping'] + ($totals['payment_discount']<0 ? $totals['payment_discount'] : 0);
Корень же проблемы таится в том, что $shipping_total, как выяснилось, вместо стоимости доставки возвращает пустое значение.
2. Ну это не совсем глюк, скорее уже частный случай. Я использую отрицательную скидку на способ оплаты что-бы сделать наценку на оплату наложеным платежом. При этом скидка считается от (стоимости заказа + наценка за доставку), что меня совершенно не устраивает, т.к. по сути это скидка от доставки. Посему решение таково: во всем блоке кода хака, который вы нашли исправляю баг №1 все строчки вида
$blocco = $totals['order_shipping']+$totals['order_shipping_tax'];
или
$blocco = $shipping_total + $totals['order_tax'];
заменить на
$blocco = $totals['order_shipping']+$totals['order_shipping_tax']-($totals['payment_discount']<0 ? $totals['payment_discount'] : 0);
и
$blocco = $shipping_total + $totals['order_tax']-($totals['payment_discount']<0 ? $totals['payment_discount'] : 0);
соответственно. Там их много - на каждый вариант скидки по четыре правки.
Как следует еще не оттестировал, но вроде теперь все считается правильно.

Сейчас поплотнее оттестирую и внесу изменения на рабочий сайт. Если во время тестирования что-то вылезет - отпишусь!
