Order Processing Features in Microsoft CRM 2011

Need a cheat sheet on the out-of-the-box Products and Pricing features of Microsoft CRM?  How about the the Opportunity –> Quote –> Order –> Invoice process?  Ok, here you go…


Defaulting of Currency and Price List

  • A default Currency can be specified under each user’s Personal Options and on each Customer record.   The Organisation too has a default currency set.  Default Price Lists can be specified on Customer records.
  • When creating a new Opportunity from the context of a Customer record the Currency and Price List specified on the Customer record will default down on to the Opportunity record.
  • When creating a new Opportunity outside of the context of a Customer record the Currency field defaults based on the value set in your Personal Options.  The Price List field does not default at all.  If you don’t have a Currency set under your Personal Options then the Organisation default currency applies.
  • Whenever selecting a Price List on an Opportunity, Quote or Order the list of selections will be filtered by the Currency specified.  i.e. each Price List is tied to a Currency.

Product and Price Definitions

  • When defining a Products a Unit Group must be specified. 
  • The Unit Group is a collection of ‘units of measure’ that the Product can be priced in – e.g. you might have a Unit Group called “Cans” and within that Group you might have the following Units:  Each, 6-Pack, Tray, Carton and Pallet.  
  • The most granular unit should be defined as the Primary Unit – in the Can example this would be the “Each” Unit. 
  • On the other Units you define the unit translation required to get from the Primary Unit to this Unit, e.g. on 6-Pack you enter a quantity of 6 and on Tray you enter a quantity of 24.  Although I’m not sure this is used in anyway by CRM, CRM does not attempt to track inventory levels – that is really an ERP function.
  • Product Prices are stored on Price Lists.  Under a Price List you create an entry for a Product where you specify the Price for a particular Unit.  e.g.  I have a Price List Item on the “USD Retail” Price List for the “Coke Can” Product where I say $5 is the price of a “6-Pack”.
  • Each Price List item can have a specific Price entered against it or a % can be entered and the pricing derived by combining that % with the List Price or Cost Amount specified on the Product record.  This allows you to have standard costs and prices for the Product but varying Price Lists.
  • Discount Lists can be defined and applied to Price List Item records to add a Quantity Break discount table to the pricing (e.g. get 5% when you buy 10-20 units, get 10% off when you buy 21-30 units).

Product Selection and Line Item Pricing

  • When creating a Opportunity, Quote or Order you need to specify a Price List before you can specify Products.
  • Then when you go to select a Product the Products displayed to you will be filtered to only those that have Prices on that Price List.
  • Having selected a Product you next need to select a Unit.  The Units you can select from are filtered to only those that appear on the Price List for the Product selected.
  • Lastly you enter a Quantity.  With those inputs specified CRM can now price your line item.

User Entered Discounts

The following discount types are supported out-of-the-box (other types require jscript/plugins):

  • A $ discount at the line item level, comes off of the line total (not the unit price)
  • A % discount at the header level, reduces the pre-tax, pre-freight total
  • A $ discount at the header level, reduces the pre-tax, pre-freight total, applies after the % discount


  • A Quote can be created from an Opportunity – most of the Quote details are automatically populated.
  • The Quote is automatically saved as it is created (you may see the screen flash as the form refreshes).
  • All of the product, quantity, discount and freight details can be changed if required.
  • When you are ready to present a Quote to a Customer you should click the Activate Quote button – this locks the Quote.  It can now only be changed via a Revision process which will maintain version history.
  • To change a Quote – e.g. to give the Customer a revised Quote – click the Revise button.  The Quote record will be duplicated and the original Quote flagged as Closed.  The new Quote will share the same Quote ID but have a unique Revision ID (behind the scenes it is a new Quote record with its own unique GUID).
  • Bill To and Ship To addresses can be keyed into the Quote or can be retrieved via the Lookup Address button.  Only child address records added against customers can be retrieved (this excludes the address1 and address2 address blocks on the customer record)  [correction:  address1 and address2 become selectable so long as the Address Name field is populated]
  • There is a “Get Products” button on the Quote form that will allow you to copy the Products from the Quote’s parent Opportunity down to the Quote record (presumably catering for scenarios where the Opp has been updated after the Quote has been created).  Fairly useless feature.
  • The “Print Quote” button launches CRM’s native Mail Merge feature.  You pick a Mail Merge template and Word will launch.  The user experience is dreadful.  The sample template included with Microsoft is abysmal.  You will need a better solution than this if you need to produce Quotes from CRM.  The minimal coding solution is to use an SSRS report but this is still a poor user experience, I would reach into the SDK for something a little smarter or go with a 3rd party add-on (e.g. MyCRM’s ePDF product).
  • The “Close Quote” button allows you to close an activated Quote record.  During this process you can request a revision be created which would give you the same end result as if you had pressed the Revise button.  If you don’t chose to have a revision created you are effectively just cancelling/deactivating the quote and you get the option of closing the Opportunity as Lost at the same time.  This whole experience feels clunky and unnecessarily complex, the button should just set the Quote status to inactive/cancelled and offer nothing else.
  • To progress an activated Quote and indicate it has been accepted you click the “Create Order” button.  A sub-screen is popped and you are given the option to close the related Opportunity as Won at the same time.   This screen will close the Quote as Won, create an Order record based on the Quote and optionally close the related Opportunity as Won.  If you opt for the Opportunity closure to happen and the Opportunity has other open Quotes attached to it they will be automatically cancelled (the concept being that these were alternative proposals and the customer went with the Quote that you have just closed so these other Quotes are no longer of interest).


  • Order records are parented by Quote and Opportunity records, these lookup fields are placed low on the Order form by default.  You can create Orders from Open Opportunities but I get the feeling you are really expected to follow the “Opportunity —> Quote –> Order” process flow.
  • The Order Pricing is locked initially.  If the pricing changes on the Price List and you click the Recalculate button the Order pricing will not update.   If however you click the “Use Current Pricing” button the Order will be unlocked and the unit prices will be refreshed from the current pricing on the Price List.  Whilst unlocked the Recalculate button will refresh the pricing from the Price List.
  • The “Get Products” and “Lookup Address” buttons are here and work the same way.
  • To progress the Order you have 3 options:  the “Create Invoice” button, the “Fulfill Order” button or the “Cancel Order” button.
  • The “Fulfill Order” button essentially closes the Order and updates the status to “Fulfilled” – i.e. we have shipped the order to the customer.
  • The “Create Invoice” button creates an Invoice record.  It does not change the status of the Order.  Invoicing is treated as parallel process to Order Fulfilment, you can generate the Invoice before or after Fulfilment.
  • The “Cancel Order” button changes the Order status to Cancelled but does nothing else.  If an Invoice has been generated it remains active and the parent Quote record remains Won.


  • Pretty much everything said for Orders applies for Invoices, the same set of buttons are available to update the Product details or Pricing or to cancel the Invoice.
  • The last step of the sale process in CRM is to click the Invoice Paid button, which closes the Invoice and updates the Status.

The CRM functionality gets weaker as you progress through the sales process into Order and Invoice.  You really are crossing across into ERP territory by this point and I think these CRM entities really exist as placeholders to represent ERP Order and Invoice data that is expected to be fed to CRM by integrations you implement.

There are sample SSRS reports for Order and Invoice available on each form which you can customise to your requirements. 

Noticeably absent from this whole process is tax calculations.   This is further evidence that Microsoft have not tried to create ERP competing sales order processing functionality.


Sales Territories

  • Sales Territories seem to have no effect in CRM, they exist to supply a data structure that you may chose to utilise in your reports and workflows.  Or you can happily ignore Sales Territories (I’ve never used them on a CRM project).  
  • Each user can be associated to a single Territory
  • Each Territory can be assigned a Manager
  • Account records can be associated to a single Territory

Sales Quotas

  • Sales Quotas are a deprecated feature from CRM 4.0 that is still around in CRM 2011 but not expected to be around in the next version.  The Goals feature introduced in CRM 2011 is meant to be used instead.
  • Whilst you will see Sales Quotas appear on the menu in CRM 2011 the feature is not usable.  I guess Microsoft have retained a read only view of this data to allow those that were using it to move over to Goals once they upgraded.

Sales Literature

  • The Sales Literature feature in Microsoft CRM allows you to use CRM as Document/File repository.
  • The Sales Literature record itself is a header record – maybe you would create one per Product.  Beneath that header record you create Sales Attachment records.  Each one of these has a file attachment and metadata that describes that document.   Search keywords can be specified here but CRM never offers a useful way of searching against these.
  • Instead of creating Sales Attachment records under a Sales Literature record you could implement Microsoft CRM’s native integration to SharePoint and enable a SharePoint document library under each Sales Literature header and have the documents stored in SharePoint rather than CRM.  If you wanted to use SharePoint though maybe don’t even bother with the Sales Literature record, just enable a SharePoint site for each Product record.
  • Sales Literature records can be associated to Products such that when looking up or drilling down on a Product in CRM you can easily access the Product’s Sales Literature.  It’s a bit ‘clicky’ though.
  • One nice thing you can do from the Sales Literature form is you can click a button and an CRM email form will be launched with all of the Sales Attachments added as Attachments.
  • Sales Literature can also be associated with Competitor records and then easily accessed from the Competitor form.


  • Competitor records in CRM are used to represent those organisations you compete with.  You can store some competitive intel on these records for your sales force to refer to.  You can associate Products from your Product Catalog to Competitors (not sure why you would want to, I guess the idea is to indicate which of your products each of your Competitors also sells).
  • Open Opportunities can be associated to one or more Competitors.  This has no real effect except for providing a description of the competitive landscape, something someone could refer to or some boffin could write reports about.
  • As you close an Opportunity as Lost you can select the Competitor you lost to.  This is quite valuable and a feature I always encourage customers to use.

8 thoughts on “Order Processing Features in Microsoft CRM 2011

  1. Jukka Niiranen

    Great list! Many of these features really aren’t that obvious for the user and not covered in the official MS support materials, so having a “what you should know about CRM sales process” reference article like this would surely be valuable to many.

    Regarding the “Get Products” feature, it’s not entirely useless since it actually allows you to select from which opportunity you want to pick the line items from. This allows you to quickly replicate the contents of a similar opportunity you’ve created in the past, or build dedicated sets of products that the sales user can pick into his or her quote instead of building them from scratch.

    However, like quite often with Dynamics CRM, there is a “however”. You can’t use the “Get Products” feature to copy line items from one quote to another, which would be a lot more sensible feature. Also, if your organization has the policy of filling the product details already in the opportunity phase, then you’re stuck with re-entering them there anyway.

  2. Stuart Brown

    Useful stuff… I’ve struggled through most of this over the last few months and found it’s very poorly documented by Microsoft themselves.

    One point of interest, you mention about an apparent weakness in the lookup address:

    “Bill To and Ship To addresses can be keyed into the Quote or can be retrieved via the Lookup Address button. Only child address records added against customers can be retrieved (this excludes the address1 and address2 address blocks on the customer record)”.

    However, the address1 and address2 do appear, but only if the relevant address_name field has been filled in. At one time, I always hid these and so went as far as having an OnChange script to copy the Account Name into these fields automatically!

  3. Manuel Altermatt

    Gareth, great article with many pieces of advice that one only usually learns over time and the hard way. My favorite part: “The “Print Quote” button launches .. the sample template included with Microsoft is abysmal…” Haha, how true. Particularly the difficulty of fetching N sub-records (product line items) and putting them on a nice template.

    You may have seen DemoBuilder demos, right? The opportunity entity has quite been… modified.. though this is obviously only ment for demos, I like it so much more.

    Thanks for the article.

  4. Nate

    Gareth, this is a great overview of the Dynamics Sales functionality and one that I have read often. However, one sentance seems to be misleading at least in my experiance. That is the the Quote % Discount field effects the PreTax amount. In my experiance the Tax Amount field is a rollup of the Tax Amounts on the Quote Products, and is uneffected by the Quote Discount %. This is unfortunate, as of course it is incorrect to charge Tax on the pre-discount amount. If your discount is 50% this can lead to big discrepencies.

    Please let me know if this is not the case.

  5. Adam Vero

    Brilliant detailed article, as always. I’ve just delivered a project which is heavily reliant on this whole process. A few additional thoughts:

    – yes, the Quote template / mail merge approach is a bit clicky but is not too bad if you can build good robust templates in Word, with ‘smart’ fields (eg using IF fields to show / hide things according to context or even product item specific details). Still very clicky though. I have it down to about 14 clicks (always the same, no user choices to be made). Two of these are to tell Word to enable content and macros (I really ought to change some group policies to allow signed code and enable editing of web content). Two more go away if I start the process from a Quote opened from Outlook. Still 10 to go…

    – I agree that Order and Invoice are clearly a bridge to ERP, but they can be used either way round – you could create an Order in CRM and “Submit” to push it to ERP (such as NAV). Similarly invoices, although I would expect them to come the other way, mainly due to the lack of any sensible tax calculation in CRM (which would of course have to handle different rates for different product types as well as customer geography)

    – Creating an Order from a Quote behaves differently for me – I can only choose to close the Opportunity as won if I could have closed it manually after closing this Quote, ie if there are no other Active or Draft Quotes under the Opp. It does not close the other “alternative” Quotes if they were “forked” from the Opp (previous revisions of the same Quote ref are already closed once revised so not relevant). Are you sure about this helpful behaviour and can you tell me if I am missing something here?

    – I would not create only one Sales Lit record per product, you probably want one per “bunch” of documents that go together, eg a Product datasheet, price list and case study. You might have several versions of this for different target markets, where the case study emphasises different aspects / industry uses for example.

    – you can also very helpfully use Sales Lit in email “from the other end”. Create an email in Outlook, hit Track or Set Regarding and you can add Sales Literature directly (ie all attachments). Likewise insert an Article or EMail template to go with it.

    Thanks again for the great blog!

  6. Pingback: Sorting tabs in Security Roles – role entity | Roman's Blog

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s