---
schema_version: "1"
id: db18f89bc7c15f1e3a276688551839dc93aed7e61d06e3e4f5623958e5bdcd72
title: Create a Pricing Procedure for Promotion Evaluation and Execution
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/mktg/264-0-0/global_promotions_management_setup_eval_pricing.md
canonical_url: https://help.salesforce.com/s/articleView?id=mktg.global_promotions_management_setup_eval_pricing.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 94fa88852b8832e522bcae42aa1d7edb17886a2b0ce96c57402970ba3f6f6238
description: Create a pricing procedure to apply promotions to customer carts based on the evaluation method selected by marketing managers.
products:
  - Marketing
release: "264"
---
# Create a Pricing Procedure for Promotion Evaluation and Execution

Create a pricing procedure to apply promotions to customer carts based on the evaluation method selected by marketing managers.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: Lightning Experience</td></tr><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: <strong>Enterprise</strong>,&nbsp;<strong>Unlimited</strong>, and&nbsp;<strong>Developer</strong>&nbsp;Editions with Real-Time Offer Management</td></tr></tbody></table>

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small permission">
        <colgroup>
          <col style="width:50%">
          <col style="width:50%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="colgroup" class="slds-cell-wrap" colspan="2" style="text-align:center;vertical-align:top;" id="d14633e68">User Permissions Needed</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="User Permissions Needed" class="slds-cell-wrap" style="vertical-align:top;" headers="d14633e68 ">To create a pricing procedure</td>

            <td class="slds-cell-wrap" style="vertical-align:top;" headers="d14633e68 ">Salesforce Pricing Design Time permission set</td>

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

1. Create a pricing procedure.
    1. From App Launcher, find and select **Pricing Procedures**.
    2. Click **New**.
    3. Enter name as CartPromotionEvaluationAndExecution.
    4. Select **Pricing** as the usage type.
    5. Select **Global Promotions Management** as the usage subtype.
    6. For context definition, select **CartDetailGetEligblePromotion**.
    7. Save your changes.
    8. On the Details tab, in the Pricing Procedure Versions section, click the pricing procedure version that you want to work on.
    9. On the record page of your new pricing procedure, on the Versions tab, select **Open in Pricing Procedure Builder** from the quick actions.
    10. In the Pricing Procedure Properties tab, expand Advanced Details, and enter Rank as 1.
2. Drag the Pricing Setting element to the canvas and enter these values
    1. For the Line Item input variable, select **cartLineItemId**.
    2. For the Currency input variable, select **currencyISOCode**.
        
        This step is required only if you have multi-currency enabled in the org.
    3. For the Net Unit Price output variable, select **cartLineNetUnitPrice\_std**.
    4. For the Subtotal output variable, select **cartLineItemAmount**.
3. Drag the GPM Promotion Execution element to the canvas and enter these values
    1. Select the rule library you want to associate with the pricing procedure.
    2. For the Promotion Scope, select **Line**.
    3. For the Subtotal input variable, select **cartLineItemAmount**
    4. For the Quantity input variable, select **cartLineItemQuantity**
    5. For the Input Unit Price input variable, select **cartLineNetUnitPrice\_std**
    6. For the Net Unit Price output variable, select **cartLineNetUnitPrice\_std**
    7. For the Subtotal output variable, select **cartLineItemAmount**
4. Drag the GPM Promotion Execution element to the canvas and enter these values
    1. Select the rule library you want to associate with the pricing procedure.
    2. For the Promotion Scope, select **Crossline**.
    3. For the Subtotal input variable, select **cartLineItemAmount**
    4. For the Quantity input variable, select **cartLineItemQuantity**
    5. For the Input Unit Price input variable, select **cartLineNetUnitPrice\_std**
    6. For the Net Unit Price output variable, select **cartLineNetUnitPrice\_std**
    7. For the Subtotal output variable, select **cartLineItemAmount**
5. Drag the Aggregate Price element to the canvas and enter these values
    1. For the Formula field, enter SUM (cartLineItemAmount).
    2. For the Output Variable field, select **initialTransactionAmount\_std**.
6. Drag the GPM Promotion Execution element to the canvas and enter these values
    
    1. Select the rule library you want to associate with the pricing procedure.
    2. For the Promotion Scope, select **Order**.
    3. For the Header Subtotal input variable, select **initialTransactionAmount\_std**
    4. For the Header Id input variable, select **cartHeaderId\_std**
    5. For the Header Subtotal output variable, select **transactionAmount**.
    
    In the pricing procedure, transactionAmount for cart-level promotions is the sum of the discounted line amounts. To include any additional charges in transactionAmount, edit the pricing procedure elements.
7. Drag the Formula Based Pricing element to the canvas and enter these values
    1. For Formula field in Formula Variables, enter initialTransactionAmount\_\_std - transactionAmount.
    2. For Output Variable field in Formula Variables, select **cartLevelDiscountValue\_std**.
8. Drag the Discount Distribution Service element to the canvas and enter these values
    1. For the Header Discount Type input variable, select **DiscountType**
    2. For the Header Discount Value input variable, select **cartLevelDiscountValue\_std**
    3. For the Header Distribution Logic input variable, select **DistributionLogic**
    4. For the Header Distribution Type input variable, select **DistributionType**
    5. For the List Price input variable, select **cartLineNetUnitPrice\_std**
    6. For the Quantity input variable, select **cartLineItemQuantity**
    7. For the Line Item input variable, select **cartLineItemId**
    8. For the Input Unit Price input variable, select **cartLineNetUnitPrice\_std**
    9. For the Header Subtotal input variable, select **initialTransactionAmount\_std**.
    10. For the Discount Value output variable, select **cartLineDiscountFromCartDistribution\_std**.
    11. For the Distribution Type output variable, select **DistributionType**
    12. For the Discount Type output variable, select **DiscountType**.
    13. For the Net Unit Price output variable, select **cartLineNetUnitPrice\_std**.
    14. For the Subtotal output variable, select **cartLineItemAmount**.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-mktg-real_time_offer_management-264-0-0-production-enus/9bd7649d-776f-43e6-b210-f781a48bbc79/images/icon_note.png)

Note If your existing pricing procedures already use the Promotion Execution element, you can still add that element to pricing procedures that use the Global Promotions Management usage subtype.