If you pay attention when you check out at any major US grocery store, you will notice that
- Item scan: you will see some simple discounts applied, but no complicated ones, and no tax calculation.
- At the end of the checkout, the cashier would press a key, and you would see additional discounts added and tax calculated.
In fact, most major US grocery stores have a mix and match discount of buying 6+ wines and getting additional 10% off. By additional, it adds on top of individual wine discounts – If you drink wine, please try it out next time.
This is the model we are talking about here: simple discounts first, complex ones later. It is easy to understand for both customers and retailers: if you see a simple discount, you will not lose it over a complex one. In addition, we can delay complex discount computation at the very end for fast item scan.
We can use priority to control the behavior: put simple discounts in high priority, while complex discounts in low priority. The alternative is make the behavior the top tier, while pricing zone or priority would be second tier. In other words, apply simple discounts always before complex ones, even if complex ones have higher priority.