I do not have the answer for everyone, but I can share a few details that we can or must consider.
Checkout cart size and item scan performance
This varies greatly among retailers. For many grocery stores, cart size can be large and item scan performance is critical, while for some niche retailers, like electronics stores, it is usually small. If item scan performance is important, then you’d have to cut both functional and technical complexities, many of which aren’t obvious. We have two possible options:
- Compete within priority and compound across.
- Simple discounts first. We still need to be aware multiple overlapping compounded multi-item discounts. If I am confusing you with the long list of qualifying words, just think of two compounded mix and match discount overlapping products with each other. If you cannot prevent it from happening in the setup, make them compete against each other instead.
Who set up discounts?
The simple case is where you have one person or one group of merchandising managers working closely together. In reality, it is often at least two, for example, a corporate merchandising manager and a store manager. I would assume they collaborate in some way, or at least the store manager knows what the corporate merchandising manager does. (Otherwise, I cannot see how you can have an effective promotion strategy.)
If you have more than one role, then priority or pricing zone may come to play.
Need to control ordering of compounding?
Compete within priority and compound across is an appealing option. If you do not go that route, then you will just have to ensure the ordering in the algorithm, which is non-trivial, but manageable.
Need to override?
Direct override is a localized solution, but you cannot expand that to support more general priority. Pricing zone is a more general solution, but it has its limitation: you will have to evaluate how much limitation it is in your case. Mixing them – more complexity? – is an option too.
What is in your case?
Feel free to share it with me and I would be happy to look into it.