---
schema_version: "1"
id: fae36643051179ff77e78b8e8eb0c142fc12300245ef10cfaff6d3de27bd876f
title: Sequential Promotions and Discounts
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/ind/264-0-0/comms_sequential_promotions_and_discounts.md
canonical_url: https://help.salesforce.com/s/articleView?id=ind.comms_sequential_promotions_and_discounts.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: bf3ebda059e03bb87b34722889580fb14b7c39e6fd29c792d062b59c4a10b217
description: By default, multiple promotions or discounts for a product apply to the original base price. But you can enable each discount or promotion to be applied in sequence to the product price that’s calculated after each promotion or discount is applied. You can enable this sequential pricing for promotions, contextual discounts, or offer adjustments across an org.
products:
  - Communications
  - Media
  - Energy and Utilities
release: "264"
---
# Sequential Promotions and Discounts

By default, multiple promotions or discounts for a product apply to the original base price. But you can enable each discount or promotion to be applied in sequence to the product price that’s calculated after each promotion or discount is applied. You can enable this sequential pricing for promotions, contextual discounts, or offer adjustments across an org.

For example, a product has a base price of $100, and a customer is eligible for two separate discounts—a 10% discount as a new customer and a time-limited 20% discount. By default, the discounts are calculated based on the $100 base price. The following table shows how each discount is applied and what the final price is after all the discounts.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
          <colgroup>
            <col>
            <col>
            <col>
          </colgroup>
          <thead class="slds-text-title_caps ">
            <tr class="">
              <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d180375e42">
                <p style="margin-bottom:0;">Prices</p>
              </th>
              <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d180375e48">
                <p style="margin-bottom:0;">NRC/MRC/Usage</p>
              </th>
              <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d180375e54">
                <p style="margin-bottom:0;">Discount Calculation</p>
              </th>
            </tr>
          </thead>
          <tbody>
            <tr class="">
              <td data-label="Prices" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e42 ">
                <p style="margin-bottom:0;">Base Price</p>
              </td>

              <td data-label="NRC/MRC/Usage" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e48 ">
                <p style="margin-bottom:0;">$100</p>
              </td>

              <td data-label="Discount Calculation" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e54 ">

              </td>

            </tr>
            <tr class="">
              <td data-label="Prices" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e42 ">
                <p style="margin-bottom:0;">-10% Discount</p>
              </td>

              <td data-label="NRC/MRC/Usage" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e48 ">
                <p style="margin-bottom:0;">$90</p>
              </td>

              <td data-label="Discount Calculation" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e54 ">
                <p style="margin-bottom:0;">10% of $100 = $10</p>
              </td>

            </tr>
            <tr class="">
              <td data-label="Prices" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e42 ">
                <p style="margin-bottom:0;">-20% Discount</p>
              </td>

              <td data-label="NRC/MRC/Usage" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e48 ">
                <p style="margin-bottom:0;">$70</p>
              </td>

              <td data-label="Discount Calculation" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e54 ">
                <p style="margin-bottom:0;">20% of $100 = $20</p>
              </td>

            </tr>
            <tr class="">
              <td data-label="Prices" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e42 ">
                <p style="margin-bottom:0;">Total</p>
              </td>

              <td data-label="NRC/MRC/Usage" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e48 ">
                <p style="margin-bottom:0;">$70</p>
              </td>

              <td data-label="Discount Calculation" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e54 ">

              </td>

            </tr>
          </tbody>
        </table>

If sequential pricing is enabled, each discount is calculated on the price after the previous discount is applied instead of the original base price. The 10% is applied first, making the price $90. The $20 discount is based on that price instead of the $100 base price. The following table shows how each discount is applied sequentially and what the final price is after all the discounts.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
          <colgroup>
            <col>
            <col>
            <col>
          </colgroup>
          <thead class="slds-text-title_caps ">
            <tr class="">
              <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d180375e159">
                <p style="margin-bottom:0;">Prices</p>
              </th>
              <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d180375e165">
                <p style="margin-bottom:0;">NRC/MRC/Usage</p>
              </th>
              <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d180375e171">
                <p style="margin-bottom:0;">Discount Calculation</p>
              </th>
            </tr>
          </thead>
          <tbody>
            <tr class="">
              <td data-label="Prices" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e159 ">
                <p style="margin-bottom:0;">Base Price</p>
              </td>

              <td data-label="NRC/MRC/Usage" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e165 ">
                <p style="margin-bottom:0;">$100</p>
              </td>

              <td data-label="Discount Calculation" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e171 ">

              </td>

            </tr>
            <tr class="">
              <td data-label="Prices" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e159 ">
                <p style="margin-bottom:0;">-10% Discount</p>
              </td>

              <td data-label="NRC/MRC/Usage" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e165 ">
                <p style="margin-bottom:0;">$90</p>
              </td>

              <td data-label="Discount Calculation" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e171 ">
                <p style="margin-bottom:0;">10% of $100 = $10</p>
              </td>

            </tr>
            <tr class="">
              <td data-label="Prices" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e159 ">
                <p style="margin-bottom:0;">-20% Discount</p>
              </td>

              <td data-label="NRC/MRC/Usage" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e165 ">
                <p style="margin-bottom:0;">$72</p>
              </td>

              <td data-label="Discount Calculation" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e171 ">
                <p style="margin-bottom:0;">20% of $90 = $18</p>
              </td>

            </tr>
            <tr class="">
              <td data-label="Prices" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e159 ">
                <p style="margin-bottom:0;">Total</p>
              </td>

              <td data-label="NRC/MRC/Usage" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e165 ">
                <p style="margin-bottom:0;">$72</p>
              </td>

              <td data-label="Discount Calculation" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e171 ">

              </td>

            </tr>
          </tbody>
        </table>

## Parameters for Sequential Pricing

You can enable sequential pricing by adding the following parameters for steps in the pricing plan.

- EnableSequentialOffers in the Apply Offer Adjustments pricing plan step.
- EnableSequentialPromotions in the Apply Promotion Adjustments pricing plan step.
- EnableSequentialContextualDiscounts in the Apply Context Discounts pricing plan step.

The order in which promotions and discounts are calculated is determined with the pricing plan steps. By default, the order is contextual discounts, offer discounts, and promotions. To change the order, change the sequence numbers for the pricing plan steps. Within each of these categories, the promotions and discounts are applied in the order in which they're added to the cart.

## Repricing

The following repricing-related APIs support sequential offer discounts, promotion, and contextual discounts.

- repricingLineItem
- getAssetPrices
- getAssetsByAccount
- getAssetsByContract

To enable sequential promotions and discounts, use the following parameters with the repricing APIs.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
          <colgroup>
            <col>
            <col>
            <col>
            <col>
          </colgroup>
          <thead class="slds-text-title_caps ">
            <tr class="">
              <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d180375e358">
                <p style="margin-bottom:0;">Parameter Name</p>
              </th>
              <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d180375e364">
                <p style="margin-bottom:0;">For Sequential</p>
              </th>
              <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d180375e370">
                <p style="margin-bottom:0;">Enable Value</p>
              </th>
              <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d180375e376">
                <p style="margin-bottom:0;">Default</p>
              </th>
            </tr>
          </thead>
          <tbody>
            <tr class="">
              <td data-label="Parameter Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e358 ">
                <p style="margin-bottom:0;">enableSequentialContextualDiscounts</p>
              </td>

              <td data-label="For Sequential" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e364 ">
                <p style="margin-bottom:0;">Contextual Discounts</p>
              </td>

              <td data-label="Enable Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e370 ">
                <p style="margin-bottom:0;">True</p>
              </td>

              <td data-label="Default" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e376 ">
                <p style="margin-bottom:0;">False</p>
              </td>

            </tr>
            <tr class="">
              <td data-label="Parameter Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e358 ">
                <p style="margin-bottom:0;">enableSequentialOffers</p>
              </td>

              <td data-label="For Sequential" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e364 ">
                <p style="margin-bottom:0;">Offer Discounts</p>
              </td>

              <td data-label="Enable Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e370 ">
                <p style="margin-bottom:0;">True</p>
              </td>

              <td data-label="Default" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e376 ">
                <p style="margin-bottom:0;">False</p>
              </td>

            </tr>
            <tr class="">
              <td data-label="Parameter Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e358 ">
                <p style="margin-bottom:0;">enableSequentialPromotions</p>
              </td>

              <td data-label="For Sequential" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e364 ">
                <p style="margin-bottom:0;">Promotions</p>
              </td>

              <td data-label="Enable Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e370 ">
                <p style="margin-bottom:0;">True</p>
              </td>

              <td data-label="Default" class="slds-cell-wrap" style="vertical-align:top;" headers="d180375e376 ">
                <p style="margin-bottom:0;">False</p>
              </td>

            </tr>
          </tbody>
        </table>

## See Also

- [Default Pricing Plan in EPC](https://help.salesforce.com/s/articleView?id=ind.comms_default_pricing_plan_in_epc.htm&release=264.0.0&type=5 "Salesforce provides a default pricing plan with nine steps. You can rearrange the steps and add new steps to provide additional logic to your pricing plan.")

## Enable Sequential Promotions and Discounts in Pricing Designer

To enable sequential pricing for Orders, Opportunities, and Quotes in the Industries CPQ Cart, you must set the **EnableSequentialOffers**, **EnableSequentialPromotions**, and **EnableSequentialContextualDiscounts** parameters to True in your pricing plan. These parameters work independently, so you can enable one of them and not the others.

1. From the Vlocity Pricing Designer app, click the menu button, and select **Pricing Plans**.
2. Click the Default Pricing Plan or the pricing plan that you want to use to record base prices.
3. To enable sequential offer adjustment:.
    1. In the Pricing Plan Steps section, click **Apply Offer Adjustments**.
    2. Click the **Edit Parameters** icon ![Action icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-ind-comms_media_energy_managed-264-0-0-production-enus/ff4079f6-a384-475c-b863-578bbbb0ef9b/resources-product/images/salesforce_cmtadmin_actionicon.jpg) next to **Parameters**.
    3. In the **Parameters** box, enter {"EnableSequentialOffers":"True"}.
    4. Click **Save**.
4. To enable sequential promotions:
    1. In the Pricing Plan Steps section, click **Apply Promotion Adjustments**.
    2. Click the **Edit Parameters** icon ![Action icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-ind-comms_media_energy_managed-264-0-0-production-enus/ff4079f6-a384-475c-b863-578bbbb0ef9b/resources-product/images/salesforce_cmtadmin_actionicon.jpg) next to **Parameters**.
    3. In the **Parameters** box, enter {"EnableSequentialPromotions":"True"}.
    4. Click **Save**.
5. To enable sequential contextual discounts:
    1. In the Pricing Plan Steps section, click **Apply Context Discounts**.
    2. Click the **Edit Parameters** icon ![Action icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-ind-comms_media_energy_managed-264-0-0-production-enus/ff4079f6-a384-475c-b863-578bbbb0ef9b/resources-product/images/salesforce_cmtadmin_actionicon.jpg) next to **Parameters**.
    3. In the **Parameters** box, enter {"EnableSequentialContextualDiscounts":"True"}.
    4. Click **Save**.