Tuesday, December 30, 2008

So How Do Products and Price Lists Work in Dynamics CRM?

So this is a high level review of how products and price lists work in Dynamics CRM.

Products can be added to Opportunities, Orders, Quotes and Invoices but products can be sold to different customers for different amounts such as the case of retail customers and wholesale customers.

The deal with this, Dynamics CRM has the concept of price lists. Before you can add a product, you need to specify the currency and price list.

Price lists are made up of price list items. Price list items can be thought of as the combination of a product, a unit of measure and a price. For example, if I am selling soft drink, I can sell it wholesale or retail and I can also sell it by the can, six-pack or pallet. For each combination, we would assign a price and the individual combination make up a price list item.

To complicate matters further, each price list can only be assigned one currency. So if we sell our products in two countries and we want a wholesale and retail price list for each we need to create four price lists.

Just when we think we have a handle on all this we can also assign a currency to a product to signify the currency we buy it in. This, on the surface, sounds quite powerful. We can buy our cans of drink in, say, US dollars and sell them in Australian dollars. his is true but if you expect CRM to calculate a sell price based on a markup of the cost price you can only do this if the product and price list currencies match. CRM is not smart enough to take a US dollar buy price, convert it to Australian dollars using the exchange rate in the system and then apply a margin.

So let's put all this together. I sell cans of soft drink. I buy them in US dollars and sell them in Australian and New Zealand and, for those of you that didn't realise, both countries have their own currency. First of all I add my products to CRM. If I want to calculate my sell price based on some sort of margin of the cost price, I'm out of luck. If I was selling in one currency, I could convert the buy prices to this currency and then import the products with this converted cost price but as I'm selling in two currencies I will have no choice but to manually specify the sell price.

I also need to specify my units of measure. In this case we will say cans, six-packs and pallets.

I now set up my price lists. I'm selling in two currencies and I need a wholesale and retail list for both countries so this is four price lists: Australian wholesale, Australian retail, New Zealand wholesale and New Zealand retail. I assign them the appropriate currencies and then I add price list items. Essentially the number of price list items for a given price list will be the number of products you're selling multiplied by the units which you sell it in.

Let's say I sell four different soft drinks (cola, lemonade, orange and lime) using my three units of measure. Therefore each price list will have 12 price list items. Can of lime, six-pack of lime, pallet of lime etc. For each of these combinations, I'll assign a price in the currency of the price list.

So I've now set up my four price lists. Each one has its 12 price list items and I want to add a product to an opportunity. I create my opportunity and assign it a currency. The currency of the opportunity MUST match the currency of the price list. If this is the case, I can then add a product and the unit of measure and CRM will do the rest in terms of the price charged.

Incidentally, a lot of the heavy lifting for setting up products, price lists and price list items can be done via the import wizard.


Unknown said...

Hi Leon,

I am adding different products to an opportunity, List Items section grid view and assigned different price list for those products. When I change the in List Item, Price List field is calculating price for already existing products and for newly added products. I don't want to calculate price for the existing ones and want only for new ones. Any idea how this can be done?

Ex: In the Opportunity "List Items" section I have added one Product called "Apple" it has two price lists that is "Price List 1" and "Price List 2"
firstly I am assigning "Price List" field with "Price List 1" and calculating Price of "Apple" and saving the opportunity,

Secondly I add one more new Product called "Mango" to same Opportunity List Items grid view, It has also two Price List that is "Price List 2" and "Price List 3"
Now I am going to change the "Price List" field as "Price List 2" in "List Items" section, at this time it has recalculating the product "Apple" price and calculating the newly added product of "Mango" price.I don't want to recalculate price for the existing ones and want only for new ones.


Leon Tribe said...

Hi Bujjibabu,

From memory, if the price list item changes, the price is updated for all open opportunities, but not closed ones. This is a hard coded behaviour so I do not think you can do much about it.

You may want to explore other options like creating a new price list.

Unknown said...

Hi Leon,
whatever i written above is it correct/Default process in MSD CRM or not?
If you understand my issue is there any solution?

Please give me suggestion to resolve this issue.