CRM Sample Data – Product Fix

Have you imported the CRM Sample Data (YES, it works with CRM Online) and tried to add products to an opportunity?  Nothing there!  You look and see the products have been imported but notice the warning:


There are 295 products added as a part of the sample data.  You cannot set the default price list using the Bulk Edit feature so manual is your option.  Do you want to make 295 manual updates?  Neither did I.  So I investigated and determined the missing link for Products in the sample data, Price List Item.  I should have just made the changes manually.  It would have taken less time.  But then there would not be a proper fix / enhancement for you, our partners, customers, and prospects.  :)

In order to properly set up a Product in CRM you need to follow a hierarchical process as illustrated in the application (and screenshot below).
Product Catalog setup

  1. Create any Discount Lists (not required)
  2. Create your Unit Groups (required)
    Unit Group 
    Units Unit Details
  3. Create your Price Lists (required)
    image Retail - Price List Item Details 
    image Wholesale - Price List Item Details
  4. Create your Products (required)

So assuming you have already loaded all the Microsoft CRM Sample data, you will now need to import the Unit Groups (identified in product.csv), update the Products to properly set these values and finally the Price List Items for each product.  Importing the Unit Groups was rather easy.  You simply needed to create a file to import Unit Group (name) and baseuomname.  The result is show below.

Next we need to update the Products to reflect the proper Unit (Not Default Unit) based on the Product.csv import file.  The easiest way to do this is to delete the Products (295) from CRM.  You will receive errors if the Products are associated with an Opportunity, so go into the Opportunities and remove the products (the original import does not have products – these would only be here if you fixed the products and added them to opportunities yourself).

Finally we need to add Price List Items for each product for each Price List.  In order to update the Default Price List lookup for each product you will need to import Price List Items.  If you were to manually create Price List Items for the Retail price list, the screen in CRM is as follows.
Price List Item

Viewing this screen helps us determine what data elements our import file should contain.  When using the Data Migration Manager to test this import process I discovered the following:

  • When mapping picklist values you must use the picklist ID not the value (different than the import wizard)
    • The picklist ID for a Quantity Selling Option value of “No Control” = 1 (not 0 as I had expected) – reference: SDK
    • The picklist ID for a Pricing Method value of “Currency Amount” = 1 (not 0 as I had expected) – used logic from above as you cannot access these attributes in CRM to confirm
  • The required Rounding attributes are only required if the Pricing Method is a value other than Currency Method

For the purpose of this post I uploaded Price List Items for the Wholesale Price List for each Product.

I took all my learning's from this process and created the following import files and data maps to bring it all together.  Simply download the zip file, extract, and import the files using their associated data maps (assuming you have the DMM installed and pointing to your CRM environment – if not reinstall).

  1. Import unitgroup using the UnitGroup DataMap
  2. Import product and price list item_wholesale using the Products_PriceListItem DataMap (create a new migration from: csv)

Hopefully this will add value to each of your demo environments and possibly provide some better understanding how Products can be imported.


-Eric Boocock