web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Customer experience | Sales, Customer Insights,...
Suggested Answer

Special pricing for a customer, how?

(0) ShareShare
ReportReport
Posted on by 115

One of our sales reps just quoted a customer on a product but used the standard price, not knowing the customer had negotiated a better price prior. How can we set Dynamics to automatically pull in the negotiated price and prevent such an error happening again?

Thanks

I have the same question (0)
  • Suggested answer
    Moximox Profile Picture
    2 on at

    You can create a pricelist and add this product as pricelist item with the negotiated price and assign this pricelist to the account. Then the negotiated price will always be used for orders for this customer. 

  • RicksterBC44 Profile Picture
    115 on at

    Thanks, but how do you assign a pricelist to an account? Thanks

  • Suggested answer
    Amit Katariya007 Profile Picture
    10,409 Super User 2025 Season 2 on at

    Hello Rickster,

    It is complex but still possible, Because you are defining the price at customer level.

    Below will be the logic which you can follow and also this solution will be more flexible compare the OOB solution for a product price.

    As we already knows a product is sold globally that means the price will be the critical part. i.e. If product is sold in USA around $100 then it will be sold in Mexico in their local currency which will be around 2040 Pesos.

    This information you can store in the Product Price list that means defining a estimated price for a product as per the currency.

    So when you will look at the "Opportunity Product" Record you will see there is a field called "Pricing(Logical name = ispriceoverridden)" is used. So if it is "false" that will indicate you are using Product Price which is already defined in the Price List(Default Price) and if it is "True" you can "Override the price" of that product by providing the Custom Amount.

    pastedimage1651214330792v2.png

    pastedimage1651214302495v1.png

    Now you can use this functionality for your benefit to set the custom price.

    1. First Create an entity(Custom table) which have below fields

    • Uniquely Identify Customer : You need this field to identify a customer uniquely which includes email id, phone number, etc like primary key that is already available in the Customer form.
    • Currency field : it will have currency name.
    • Price list : it will have price list name.
    • Product code/Product name : this should be unique for identification.
    • Price : it will have the custom price.

    2. Register a plugin on the "Opportunity Product" which can be on create as well as on update and it should run on Post operation.

    in this plugin get information of the above mentioned field from the customer as well as from the opportunity and opportunity product.  

    then create a query and compare fetch data with the "Identify Customer Unique", "Currency field", "Price list" , "Product Code" of custom table. if it matches with the Custom table then it will return the Price and you can set this price on the opportunity product form by making "Pricing(Logical name = ispriceoverridden)" as "Override price".

    Also check if user is providing any discount or not. if yes then you need to calculate the discount manually if the used product price is custom.

    Make other fields on the Opportunity product as locked so that user can not make any changes manually.

    If you need to make it more advanced level then you can implement below scenario :

    1. If user change the Customer in the opportunity then update all the Opportunity Product price one by one as per new customer.
    2. If user create or updates a record in Custom table then you can get all the opportunity products where Custom price is used and update it with the new price.

    This will be one of the solution which you can implement your requirement.

    Thank you,

    Amit katariya

  • Suggested answer
    Moximox Profile Picture
    2 on at

    Hi

    There are multiple ways of doing this, but one way is to use territory. You create a territory and assign a price list to the territory. Then you assign the account to that territory. Territory does not specifically need to be geographical. It is merely seen as a segmentation of customers.
    Alternatively, you create a business rule for this customer for the orders where you assign this pricelist to any order if said customer is chosen or a specific field on account is present such as "special pricing agreement".
    To be fair - there are so many ways to do this so think about what suits you best given how many customers would have these special pricing etc. 

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Neeraj Kumar – Community Spotlight

We are honored to recognize Neeraj Kumar as our Community Spotlight honoree for…

Leaderboard > Customer experience | Sales, Customer Insights, CRM

#1
Tom_Gioielli Profile Picture

Tom_Gioielli 170 Super User 2025 Season 2

#2
#ManoVerse Profile Picture

#ManoVerse 61

#3
Gerardo Rentería García Profile Picture

Gerardo Rentería Ga... 52 Most Valuable Professional

Last 30 days Overall leaderboard

Product updates

Dynamics 365 release plans