In Salesforce Revenue Cloud, Header Discounts allow a discount to be applied at the header level of a Quote or Order and distributed proportionally or equally across all line items using the Discount Distribution Service (DDS) NGP element within a Pricing Procedure.
Key Limitation: The DDS element cannot coexist with a Derived Pricing element within the same Pricing Procedure. If your org uses Derived Pricing, you must use two separate Pricing Procedures orchestrated via a Procedure Plan Definition.
This article covers:
Scenario 1: Pricing Procedure Changes When Derived Pricing Is NOT Used
| Constant Name | Maps To |
|---|---|
| DDS_NetUnitPrice | NetUnitPrice |
| DDS_Override | Override |
| DDS_Amount | Amount |
| DDS_Percentage | Percentage |
Scenario 2: Pricing Procedure Changes When Derived Pricing IS Used
Because DDS cannot be used in the same Pricing Procedure as Derived Pricing, use a Procedure Plan Definition to run two separate Pricing Procedures sequentially.
Part A: Configure the New Pricing Procedure (HeaderAdjustmentPP)
| Constant Name | Maps To |
|---|---|
| DDS_NetUnitPrice | NetUnitPrice |
| DDS_Override | DDS_Override |
| DDS_Amount | Amount |
| DDS_Percentage | Percentage |
### Part B: Configure a Procedure Plan Definition for Orders (HeaderDiscountPPDOrder)
| Field | Section 1 (Default) | Section 2 (HeaderDiscountSection) |
|---|---|---|
| Section Type | Standard | Standard |
| Section Name | Default | HeaderDiscountSection |
| Phases | Pricing | Pricing |
| Resolution Type | Default | Default |
| Read Context Mapping | OrderEntityMapping | OrderEntityMapping |
| Write Context Mappings | OrderEntityMapping | OrderEntityMapping |
| Procedure | Custom Revenue Management Default Pricing Procedure | HeaderDiscountPP |
### Part C: Configure a Procedure Plan Definition for Quotes (HeaderDiscountPPDQuote)
| Field | Section 1 (Default) | Section 2 (HeaderDiscountSection) |
|---|---|---|
| Section Type | Standard | Standard |
| Section Name | Default | HeaderDiscountSection |
| Phases | Pricing | Pricing |
| Resolution Type | Default | Default |
| Read Context Mapping | QuoteEntityMapping | QuoteEntityMapping |
| Write Context Mappings | QuoteEntityMapping | QuoteEntityMapping |
| Procedure | Custom Revenue Management Default Pricing Procedure (OOTB) | HeaderDiscountPPQuote |
### Part D: Revenue Settings Configuration
Navigate to Setup → Revenue Setup and apply the following:
## Known Limitations & Issues
| Issue | Details |
|---|---|
| DDS + Derived Pricing conflict | DDS cannot coexist with a Derived Pricing element in the same Pricing Procedure. Use separate procedures via a Procedure Plan Definition. |
| DDS with Subscription Products (Term > 12 months) | DDS does not correctly calculate discounts for subscription products with terms exceeding 12 months as it does not account for the Prorate Multiplier. GUS bug W-20106626 has been filed. |
| Workaround for Subscription Terms > 12 months | Add a Formula-Based Pricing Element before the DDS call: `TermAdjustedUnitPrice__c = ItemNetTotalPrice / LineItemQuantity`. Map this transient variable as both List Price and Input Unit Price in the DDS element. |
| Grand Total not updating after repeat discounts | The Grand Total on a Quote may not update correctly after second or subsequent header discount applications, even when QLI discounts apply. Investigate via Apex Debug Logs and Revenue Cloud Operations Console. |
| DDS not compatible with Revenue Cloud Advanced Quotes | DDS is not integrated with Revenue Cloud Advanced Quotes. Custom fields and additional configurations may be required. |
Key Configuration Notes
005385523

We use three kinds of cookies on our websites: required, functional, and advertising. You can choose whether functional and advertising cookies apply. Click on the different cookie categories to find out more about each category and to change the default settings.
Privacy Statement
Required cookies are necessary for basic website functionality. Some examples include: session cookies needed to transmit the website, authentication cookies, and security cookies.
Functional cookies enhance functions, performance, and services on the website. Some examples include: cookies used to analyze site traffic, cookies used for market research, and cookies used to display advertising that is not directed to a particular individual.
Advertising cookies track activity across websites in order to understand a viewer’s interests, and direct them specific marketing. Some examples include: cookies used for remarketing, or interest-based advertising.