А нужно чтобы скидка применялась только к товарам к которым она может быть применена настройками. И чтобы суммы вычиталась в корзине прямо у товара.
Это возможно, но возникнет проблемы с настройкой и пересчётом (тк. в правило можно добавить множество товаров, необходимо проверять кол-во товаров в корзине и просчитывать итоговую скидку на все товары).
Для старта и дальнейших исследований начните с файла
/classes/Cart.php, в метод
getCartRules после:
Код:
$row['obj'] = new CartRule($row['id_cart_rule'], (int)$this->id_lang);
добавьте подобный код:
Код:
$row['products'] = $row['obj']->getProductRuleGroups();
далее в методе
getSummaryDetails внутри
Код:
foreach ($cart_rules as &$cart_rule) {
разберите каждый купон и изменяйте цену товара соотв. данным в купоне.