[РЕШЕНО]Ubercart не учитывает скидку в итоговой сумме заказа

Главные вкладки

Аватар пользователя gun_dose gun_dose 28 октября 2014 в 9:51

Есть интернет-магазин на Drupal 6 + ubercart. Для скидок установлен uc_discounts_alt. Так же есть Ajax Driven Cart. Скидки настроены таким образом, что при добавлении 1шт скидки нет, на 2шт одна скидка, на 3 и более шт. другая скидка. Всё настроили - назначили нужные проценты, применяемость к товарам и их количеству и всё с виду работает. В блоке корзины все скидки высвечиваются. Высвечиваются они и при оформлении заказа. В общем, пользователь видит цену со скидкой и сумму скидки до самого последнего момента. Но когда он оформляет заказ окончательно, то в админку приходит сумма без скидки. Что за фигня? Может кто сталкивался?

Может я где-то чего-то недонастроил? Или надо в код смотреть? Если так, то подскажите, куда именно, хотя бы какие хуки искать?

Комментарии

Аватар пользователя gun_dose gun_dose 29 октября 2014 в 19:38

Разобрался сам. Исследовав код, заметил, что при создании заказа скидки нигде никак не обрабатываются. Добавил в uc_order.module после строки "$total += uc_line_items_calculate($order);" следующий код:

«$discounts = get_discounts_for_order($order, $errors, $warnings, $messages);

if (count($discounts) > 0) {
$discount_total = 0;
foreach ($discounts as $discount) {
$discount_total += $discount->amount;
};}

$total =$total-$discount_total;»

И всё заработало. Странно, что никто не откликнулся и нигде эта проблема не описана.

ЗЫ: что-то форматирование кода в ответах не работает, пришлось кавычки поставить

Аватар пользователя Sadchenko Sadchenko 29 декабря 2015 в 8:18

gun_dose wrote:
Разобрался сам. Исследовав код, заметил, что при создании заказа скидки нигде никак не обрабатываются. Добавил в uc_order.module после строки "$total += uc_line_items_calculate($order);" следующий код:
«$discounts = get_discounts_for_order($order, $errors, $warnings, $messages);
if (count($discounts) > 0) {
$discount_total = 0;
foreach ($discounts as $discount) {
$discount_total += $discount->amount;
};}
$total =$total-$discount_total;»
И всё заработало. Странно, что никто не откликнулся и нигде эта проблема не описана.
ЗЫ: что-то форматирование кода в ответах не работает, пришлось кавычки поставить

Вариант не рабочий, так как не отображает скидку в заказе после окончания действия самой скидки.
К примеру я поставил скиду с 24 по 31 декабря. Человек сделавший заказ в этот промежуток, скидку в истории заказа увидит, но если зайдет после окончания скидки после 31 декабря, то скидки уже не будет в истории заказов.

Аватар пользователя Sadchenko Sadchenko 10 декабря 2015 в 16:52

Ребята, В УПОР НЕ ВИЖУ! подскажите как в Drupal 6 с помощью uc_discounts_alt вывести блок с текущими скидками? Или вьюху создать? или готовый снипет, который будет выводить тизеры текущих товаров со скидкой?