Discount offer in Dynamics Retail Discount Engine is the simple discount. We sometimes also call it periodic discount.
Each discount offer can have multiple discount line definitions, each of which specifies
- Which products to discount – we can configure it in one of three options: product, variant and category.
- Discount method: one of offer price, amount off ($-off) or percentage off (%-off).
Given we allow multiple discount line definitions, it is possible to define, as an example, 10% off for all computer accessories in one line, and 15% off for a specific keyboard.
Discount offer is boring – it should be – to make it a bit more interesting, I will share a bit technical implementation detail: after we get the discounts from the database and before we start the calculation, we prepare the data structure, mostly lookups, for each discount. At this stage, when we see a product covered by multiple line definitions in one discount, we compare them, pick the best one and remove the rest. As always, compounding can make things more complicated. Which one is better: amount off or percentage off, may be conditional on what has been applied earlier.
For example, a $50 ergo keyboard is covered by two discount line definitions in one compoundable discount offer: 10% off and $4-off. If the ergo keyboard is not covered by other discounts, then 10% off is better, while if we have applied $20 discount before, then $4-off is better.
One option to address the issue is to enforce one discount method per discount offer, in other words, all discount line definitions for the same discount offer has the same discount method. With the restriction, discount line definition comparison for each product becomes unconditional. We did not enforce it in Dynamics Retail solution because it would be a strong restriction for a small nuance. Even so, I recommend avoiding multiple discount methods in one discount offer, especially in cases where one product is covered by multiple discount line definitions.
At the time of writing, we do not support quantity control, but it is an open option. If we were to add quantity control, it would no longer be a simple discount.
Note on AX6 and AX7 difference: In AX6, we have offer price including tax as a discount method, while in AX7 we got rid of the unnecessary complexity.