Skip to main content
Dynamics 365

Retail discount calculations – Performance vs Best price

With the increased usage of the number of Retail discounts associated to items coupled with the trade agreements and affiliations, the Pricing engine has seen significant performance issues attempting to process the best discount.  This performance degradation increases as more items are added to an order due to the proportionately increasing number of discounts needing to be processed.  While there have been a few hotfixes to address a few specific performance issues, it is recommended to be on the latest build to ensure you have all of the latest fixes. (Please open a support case if you need assistance finding the latest Retail fixes.)

The main purpose of this article is to bring to your attention out one of the main advantages of being on the latest builds, and that is the configuration settings available in the Retail parameters under Discounts that allows you to choose how to process discounts.  When you open the Retail parameters to view the Discount form, you will see three options that were added based on how you would like to process overlapping discounts: Best performance, Balanced calculation, and Best discount.

Keep in mind when choosing between these options that the Best performance calculation may result in a discount that is not the best for the customer, but to save on performance it is the Heuristic result that was returned.  As such, you may need to test the 3 options based on the number of discounts you have configured to ensure you are seeing the expected results.  This may include needing to minimize the number of discounts associated to an item, deleting outdated discounts that may be included in the calculation but are no longer used, use scannable coupon discounts as seen fit, group items of high quantity by different units (box, crate, 6pack..), etc.

You can read the details of each option in the screenshot below, click on the picture to enlarge it for better readability.

retailparameterdiscounts

NOTE: At the top of the screenshot you will also see that another new checkbox option was added: “Apply discounts to price overrides”.  In the past, when a price override operation was used at the POS, you could not apply a discount to that item.  POS saw this price override as the final price of the line item.  When using this option, you can now perform the price override to update the sales price and then apply a discount to that price.

I understand that there may be other scenarios in which using Best performance may still take time calculate the discounts on the order.  If this is something that you feel needs to be addressed, please open a new incident with the AX support team with detailed discount setup instructions and steps to reproduce the issue.

I hope you find this helpful and thanks for reading!