Set default price level for opportunity, quote, order, and invoice

You can automatically set a default price level (price list) for an opportunity, quote, order, or invoice based on the sales territory of the user who creates or updates the opportunity, quote, order, or invoice row.

Enable automatic selection of default price level

To enable selection of default price level for opportunities, quotes, orders, or invoices based on the sales territory relationship, the following conditions must be true:

  • The value of the Organization.UseInbuiltRuleForDefaultPriceSelectionRule column is set to 1 (true). By default, the value is set to 1 (true).

    You can also use the Sales tab in the system settings area in Dynamics 365 or Microsoft Dynamics 365 for Outlook to specify whether the default price level should be automatically selected for opportunities. More information: Configure product catalog information

  • A price level is associated with a territory using the Territory Default Pricelist connection role, and the territory is assigned to the user who creates or updates the opportunity, quote, order, or invoice row.

  • The user has permission on the price level that is associated with the territory by using the Territory Default Pricelist connection role.

    Dynamics 365 internally uses the GetDefaultPriceLevelRequest message to determine the default price level for an opportunity, quote, order, or invoice based on the current user and the territory relationship with the price level. This is how the price level is set:

  • If a single price level is returned, the price level is automatically set for the opportunity, quote, order, or invoice row that the user is creating or updating.

  • If multiple price levels are returned, the price level field isn’t populated and the user must specify a price level for the opportunity, quote, order, or invoice row.

Disable automatic selection of default price level

You can turn off the automatic selection of a default price level for your opportunity, quote, order, or invoice by setting the value of the Organization.UseInbuiltRuleForDefaultPriceSelectionRule column to 0 (false), or by using the Sales tab in the system settings area in Dynamics 365 or Microsoft Dynamics 365 for Outlook. More information: Configure product catalog information

Extend default price level selection

Instead of using the out-of-box rule for the selection of default price level for an opportunity, quote, order, and invoice, you can use the GetDefaultPriceLevelRequest message to specify your custom logic for selecting default price level.

Note

This feature was introduced in Dynamics CRM Online 2015 Update 1 and CRM 2016 (on-premises).

To extend the default price level selection:

  1. Ensure that the value of the Organization.UseInbuiltRuleForDefaultPriceSelectionRule column is set to 1 (true).

  2. Create a plug-in that contains custom code for returning price levels based on your business requirement.

  3. Register the plug-in on the GetDefaultPriceLevel message.

    When you register a plug-in on the GetDefaultPriceLevel message, every time you create an opportunity, quote, order, or invoice row in Dynamics 365, the plug-in is executed to return the price level based on your custom code.

  • If a single price level is returned as a result of the plug-in execution, the price level is set for the opportunity, quote, order, or invoice row that the user is creating.

  • If multiple price levels are returned as a result of the plug-in execution, the price level field is not populated and the user specifies a price level for the opportunity, quote, order, or invoice row.

Note

When you extend the default price level selection by registering a plug-in on the GetDefaultPriceLevel message, the out-of-box selection of price level is disabled.

PriceLevel table
GetDefaultPriceLevelRequest
Territory table Opportunity tables
Quote, order, and invoice tables
Write a plug-in