Deep Dive on Dynamics CRM Product Properties

Product properties are useful for collecting variable information on a generic product. Eg a t-shirt product may have different colours of; blue, red and green as well as different sizes of; small, medium and large. A second example is a subscription service may have a subscription period of 1, 6 or 12 months. To collect this information we use product properties in CRM.


1. Product Property Entity Name

The product property entity has a display name of Property, plural name of properties and a schema name of dynamic property (dynamic property).

Product Property Schema Name
Product Property Schema Name

2. Product Property records can not be searched in Advanced Find!

Frustratingly, the product property entity does not appear in the advanced find. However, a Fetch XML query can retrieve product property records as per below. The fetch query can be queried using the fetch builder or fetch tester tool in the XrmToolBox.

3. Entities Related to Product Properties

Below is a list of entities that are used to manage product properties in Dynamics CRM.

  1. Property (dynamicproperty); Information about a product property.

  2. Property Association (dynamicpropertyassociation); Association of a property definition with another entity in the system.

  3. Property Instance (dynamicpropertyinstance); Instance of a property with its value.

  4. Property Option Set Item (dynamicpropertyoptionsetitem); Item with a name and value in a property option set type.


4. How Product Property Instances (dynamicpropertyinstance) Work

When setting a product property on quotes, opportunities or invoices a Product Property Instance (dynamicpropertyinstance) record is created. (Well it actually appears two records are created).


The screenshot below shows how to set the color property to green on a shirt product, on a quote. The second screenshot shows the resulting Dynamic Property Instance records that are created. Notice the Product Property Instance (dynamicpropertyinstance) uses versioning instead of actual creates.

Setting a Product Property on a Quote Results in a New Dynamic Property Instance record being created
Setting a Product Property on a Quote Results in a New Dynamic Property Instance record being created

Resulting dynamicspropertyinstance records after setting a product property on a quote.
Resulting dynamicspropertyinstance records after setting a product property on a quote.

5. No advanced find! No data export! No data import!

The Product Property (dynamicproperty) entities are not displayed in the advanced find. This applies to the Property Association (dynamicpropertyassociation), Property Instance (dynamicpropertyinstance) and Property Option Set Item (dynamicpropertyoptionsetitem) entities.


None of the product entities can be exported. Well, Product Property can be exported via the properties sub gird under the product properties tab on the product form BUT this is only exporting the properties for a single product.


A data import template for Product Property (dynamicproperty), Property Association (dynamicpropertyassociation) or Property Option Set Item (dynamicpropertyoptionsetitem) can be downloaded from Data Management->Templates for Data Import.

Data Import Templates For Product Property, Property Association and Property Option Set Item
Data Import Templates For Product Property, Property Association and Property Option Set Item

Property Instance (dynamicpropertyinstance) can not be imported! To import Property Instances the SDK (soap end point) or API (webAPI end point) is required. More information about pragmatically setting Property Instances programmatically can be found at the below Microsoft websites.


6. Data Migration

When migrating products and product properties between environments (dev, test, prod) I would use the configuration migration tool rather than data exports and imports.Exporting and Importing while possible will be cumbersome due to all the lookup fields.

Migration DynamicProperty entities using the Data Migration Utility
Migration DynamicProperty entities using the Data Migration Utility


117 views0 comments

Recent Posts

See All

There are a number of tricks that can help improve the speed of data migrations. I have bullet pointed them below and included links and references at the bottom of the page. Turn off all workflows (i

Power Platform storage seems to get consumed very quickly. I have had to come up with capacity management strategies for numerous clients over the years. I really do wish Microsoft would increase the