Hello,
I need advice on the correct design approach for a custom pricing scenario in Microsoft Dynamics 365 Business Central.
First, I would like to understand how Business Central handles this scenario in the standard functionality.
Standard functionality question:
In Business Central, if the same customer has multiple active Sales Price Lists assigned to them, how does the system decide which Price List should be used when creating a Sales Order and entering Sales Lines?
What are the standard rules or priorities used by the Business Central Pricing Engine?
Custom requirement:
We have created a custom Agreement table that contains:
Agreement No.
Customer No.
Start Date
End Date
Agreement Status
Sales Price Lists Code
The business requirement is:
A customer can have multiple agreements, and each agreement can have a different Sales Price List.
We do not want to link one customer directly to only one Price List, because the same customer may have different orders under different agreements, and each order may require a different pricing structure.
Example:
Customer:
This customer has two agreements:
Agreement 1001
Price List S00034:
Agreement 1002
Price List S00011:
In the Sales Order, the user selects:
When the user enters Item A in Sales Lines, the expected result is:
because Agreement 1001 is linked to Price List S00034.
If the user changes the Agreement to:
then the expected price should come from:
My questions:
What is the recommended Business Central approach to implement this scenario?
Does Business Central provide a standard way to select or influence a specific Sales Price List at Sales Order level based on a custom field such as Agreement No.?
If customization is required, what is the recommended approach?
Should we:
Option 1:
Extend the standard Price Calculation Engine and make the Sales Line pricing use the Price List Code coming from the selected Agreement?
Option 2:
Create a custom Price Calculation Method?
Option 3:
Use another standard Business Central extension point or pricing feature?
The solution should:
Keep the standard Business Central pricing framework.
Allow one customer to have multiple agreements.
Allow each agreement to use a different Sales Price List.
Automatically calculate item prices when users enter Sales Lines.
Avoid duplicating pricing logic outside the standard pricing engine.
I would appreciate recommendations from anyone who has implemented a similar scenario.
Thank you.