I need to make a coupon code which should be applied only to non-discounted products and certain categories. In Cart price rules->Actions I tried the following conditions:

If ALL of these conditions are TRUE :

Special Price is 0
Category is not one of 727, 777, 1379, 1380, 778, 111...

However, the coupon is getting applied to discounted products also.

2 Answers 2


Magento does not have the feature like check the product catalogue discount on the cart items.

Magento does not calculate Catalogue discount like Catalog Price rules,Special Price rules, Tier price on cart price rules.

As per as,magento architecture ,a product price during add to cart time depends on Final Price field of products which is depends on Catalog Price rules, Special Price rules, Tier price.

The final price does not calculate as cart item element,So you cannot do like that what you want.

  • So we cannot make a cart price rule which can only be applied to non-discounted products in any way?
    – GenZ Dev
    Apr 9, 2019 at 13:30
  • Maybe can, have some tricky way but not sure how much it will effect. Create an attribute yes/no product attributes and using a cronjob make this attribute value to yes if you have produced has some catalog price discount* you have to logic ` product->getPrice() ->$product->getFinalPrice() >0 ` and after that enable this attribute for shopping cart rules conditon. But this logic has issue might be in configurable,grouped,bundle and if tier price is set for customer group wise
    – Amit Bera
    Apr 9, 2019 at 13:36

This should work for applying cart rule only to products with no special price:

  1. Set Special Price attribute to be used in the cart rules
  2. Create a new cart rule and in it's "Actions" tab set "Apply the rule only to cart items matching the following conditions" to:

If ALL of these conditions are FALSE : Special Price greater than 0

  1. You could also set "Discard subsequent rules" to YES

In my tests this worked.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.