неверно считает скидку при нескольких товарах

Автор http1, 05 августа 2019, 13:05:15

« назад - далее »

http1

Установил купон на % скидки от суммы корзины, поставил "исключая товары со скидкой" и presta считает так:
- если один или несколько товаров по нормальной цене (т.е. по полной без всяких скидок и акций), то все ок берет общ стоимость и применяет купон на скидку как надо
- если одни товар в корзине и он со скидкой - все ок, отказывает в применении купона на скидку
- если несколько разных товаров в корзине (часть из них на скидке (т.е. распродажные) и они должны быть исключены ) берет общ сумму корзины и считает от ее скидку (не должно быть так)!

т.е. надо чтоб скидка применялась только к нераспродажным товарам и не учитывала товары со скидкой при формировании итогового чека.
Данную проблему проверял на prestashop 1.7.5-1.7.6 везде неверно считает корзину. Подскажите, может кто сталкивался - в чем может быть загвоздка?



mistral


http1

Спасибо за подсказку. Но там устаревшие данные.
https://github.com/PrestaShop/PrestaShop/pull/13704/commits/5098b154b0bf566011515083bf6f6c44b7a37330
конкретно этот баг тут правили.

Мало ли пригодится кому (мне помогло). В файле src/Core/Cart/CartRuleCalculator.php  выкидываем 103 и 104 строчки и делаем так:
// Discount (%) on the whole order
        if ($cartRule->reduction_percent && $cartRule->reduction_product == 0) {
            foreach ($this->cartRows as $cartRow) {
                $product = $cartRow->getRowData();
                if ((($cartRule->reduction_exclude_special && !$product['reduction_applies'])
                        || !$cartRule->reduction_exclude_special)) {
                    $amount = $cartRow->applyPercentageDiscount($cartRule->reduction_percent);
                    $cartRuleData->addDiscountApplied($amount);
                }
            }
        }

scroll43

#3
Проблема исправлена в 1.7.6.7

http1

Цитата: scroll43 от 31 августа 2020, 07:35:16
Проблема исправлена в 1.7.6.7
Увы. Только что поставил 1,7,6,8 - проблема жива - Не хотят ее исправлять (ну или может я что-то не понимаю)