Magento has two discount engines that look interchangeable and are not. Catalog price rules change the price of products; cart price rules change the total of the cart. Confusing them causes the classic merchant bugs: discounts applying twice, “from” prices lying on category pages, and promotions that cannot be switched off cleanly. Here is the clear model.
Catalog Price Rules: The Product Price Changes
A catalog price rule rewrites the product’s displayed price - on category pages, product pages, search results. “All winter coats 20 percent off this week” is a catalog price rule.
- Applied at price index time into
catalog_product_index_price- the customer sees the discounted price everywhere, with no coupon - Conditions match product attributes (category, attribute set, brand)
- No coupon codes, no banners needed in cart - the price simply is lower
- Requires reindex after saving; scheduled start/end dates run via cron
Because the discount lands in the price index, catalog rules compose with everything that reads prices: feeds, swatches, quick view. They are the cleanest way to run a sitewide or category sale.
Cart Price Rules: The Cart Total Changes
A cart price rule applies in the cart and checkout, via conditions on cart contents and optionally a coupon code:
- Percentage or fixed discounts, buy-X-get-Y, free shipping
- Coupon codes (single or bulk-generated) for channel tracking
- Conditions on cart state: subtotal, items, customer group, shipping method
- Labels show as a discount line, not a changed product price
Use cart rules for: coupon campaigns, spend-threshold offers (“10 percent off over £100”), basket promotions, free shipping thresholds.
The Interactions That Cause Bugs
- Special price vs catalog rule: a product’s special price can fight a catalog rule - the lower effective price wins in the index, which is usually what you want, but know it is happening
- Rule stacking: multiple cart rules can apply to the same cart unless you set “Stop Further Rules Processing” or use priority - runaway double-discounting is usually missing stop-processing
- Catalog rule + cart coupon: by design they stack. A 20 percent catalog sale plus a WELCOME10 coupon is a compounding discount - intended or not
- Cached display prices: after changing catalog rules, reindex and flush cache, or category pages show yesterday’s prices
Choosing Quickly
| Need | Rule |
|---|---|
| Sale shown on product/category pages | Catalog |
| Coupon code campaign | Cart |
| Discount based on basket composition | Cart |
| ”From £X” marketing that must be real | Catalog |
| Free shipping over £75 | Cart |
One sentence summary: catalog rules set what things cost; cart rules reward what customers do. Keep that boundary clean - sale pricing in catalog rules, promotional mechanics in cart rules - and your discounting stays predictable, auditable and switch-off-able.