Comparing our discount engine with other competitors, it would be great if users could get a bit more control over discounts. One concept if their ability to assign a priority + a "Stop processing further discounts" flag. So in theory you can have 100 active discounts setup, but if the first discounts (assuming a priority/sorting) has "Stop processing further discounts" set to "True", the system only considers and calculates 1.
This could also be a performance enhancement in the checkout, avoiding the system to calculate all discounts to determine the highest/lowest discount.
This makes the most sense for "Aggregated" behaviour discount type.
In other words:
- We would set a priority/order in the backend
Which would simply determine the order the discount engine goes throught the individual discounts - inactive and outside of date range would be ignored
- A flag on each discount (i.e. "Stop further discounts from processing") would tell the system to not calculate any further discounts.