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:
Customer No.: CUST-0002
Customer Name: ABC HospitalThis customer has two agreements:
Agreement 1001
Agreement No.: 1001
Customer: CUST-0002
Sales Price List Code: S00034Price List S00034:
Item A → Price 50
Item B → Price 100Agreement 1002
Agreement No.: 1002
Customer: CUST-0002
Sales Price List Code: S00011Price List S00011:
Item A → Price 70
Item B → Price 120In the Sales Order, the user selects:
Customer No.: CUST-0002
Agreement No.: 1001When the user enters Item A in Sales Lines, the expected result is:
Item A Price = 50because Agreement 1001 is linked to Price List S00034.
If the user changes the Agreement to:
Agreement No.: 1002then the expected price should come from:
Price List S00011
Item A Price = 70My 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.

Report
All responses (
Answers (