Совместная работа накопительных скидок и правил работы с корзиной

Рейтинг: 3.6196  
Внедрено
Предложил Максименко Олег 08.10.2014 01:27:48

Совместная работа накопительных скидок и правил работы с корзиной

Сейчас скидки по накопительным скидкам и скидки на заказ в правилах работы с корзиной суммируются. Техническая поддержка говорит, что изменить этот механизм в продукте нельзя.

Пример:
1. Пользователь попадает под одно из правил накопительной программы, например 5%
2. Сумма заказа попадает по правило работы с корзиной, например 10%

Сейчас в таком случае скидки применяются последовательно и в итоге суммируются. Но в идеале нужно выбрать только большую и применить её.


Метод CSaleDiscountActionApply::ApplyBasketDiscount применяет скидку из правил работы с корзиной.
Вот если в него добавить в самое начало что-то типо:
$bApply = false;
foreach(GetModuleEvents("sale", "CSaleDiscountActionApply", true) as $arEvent){
    if(ExecuteModuleEventEx($arEvent, Array(&$arOrder, $func, $dblValue, $strUnit)) === true){
        $bApply = true;
        break;
    }
}
 
if($bApply){
    return;
}
и потом подвесится на это событие, то можно эту проблему решить. Подробнее в блоге.
Рейтинг: 0  
Ответил 09.10.2014 17:26:05
Мы работаем над схемой взаимодействия между типами скидок, в 15 релизе представим вариант.

Спасибо вам за идею!