Skip to content
Log in

Configure advanced promotions

On this page

This guide walks through how to configure Advanced Promotions (using the Promotion v2 engine) in Salesforce. It covers how the records fit together, the fields each record needs, and worked examples of the most common scenarios.

For a high-level overview of what Advanced Promotions can do compared with standard Promotions, see About advanced promotions.

How it works

A working Advanced Promotion requires three records — Condition, Reward, and Promotion v2 — joined by a fourth: the Promotion 2 Condition link record. If you skip the link record, the promotion will never fire. For a full breakdown of what each record does, see About advanced promotions.

A single Promotion v2 can have multiple Promotion 2 Condition records, which is how tiered offers work (one tier per link record). Conditions and Rewards can be reused across multiple promotions.

An optional fifth record, Promotion 2 Product Scope, attaches to a Condition or Reward to limit it to specific products, categories, brands, or shipping zones. The worked examples below note when you need one.

Configuration steps

The order of creation matters because each step references the previous one. Build the Reward first, then the Condition, then the Promotion 2 header, then the Promotion 2 Condition link.

Step 1: Create the Reward

Navigate to the Rewards tab (or Rewards in the App Launcher) and click New.

Field Required Notes
Display Name Yes Internal name shown to admins
Identifier Yes A unique key (e.g. members-free-shipping)
Type Yes Pick from: Free Product, Discounted Shipping, Discount on Subtotal, Discount on Products, Fixed Price for N Products
Discount Type When applicable Percentage or Fixed Amount. Required for the discount-type rewards.
Discount Percentage When Discount Type is Percentage The % to apply (e.g. 10 for 10%, 100 for full free shipping)
Discount Amount When Discount Type is Fixed Amount The dollar amount to discount
Quantity When Type is Free Product or Fixed Price for N Products The N value
Frequency No Once (default) applies the reward one time per cart. No Limit lets it repeat per qualifying group (useful for “every 3 items get 10% off”).
Apply to No For product-level rewards. Matched Products uses the Condition’s scope; Specified Products uses the Reward’s own scope.
Apply first to No Most Expensive or Least Expensive — controls which items are discounted first when only some qualify.

Step 2: Create the Condition

Navigate to the Conditions tab and click New.

Field Required Notes
Name Yes Internal name
Type Yes Pick from: Always Applies, Total Value, Total Quantity, Product Count, Liquid Condition
Amount Required for Total Value, Total Quantity, Product Count The threshold (e.g. 500 for “cart total reaches $500”, 3 for “buy 3 items”)
Currency No Restricts the condition to carts in a specific currency. Leave blank to apply to all currencies.

Choosing a Type:

  • Always Applies — the Condition itself does not impose a cart requirement. Use this when the only restriction you want is on the Promotion v2 itself (such as Customer Scope Membership for “members get free shipping”).
  • Total Value — qualifies when the cart’s eligible value reaches the Amount.
  • Total Quantity — qualifies when the eligible item count reaches the Amount (e.g. buy 3 of any qualifying product).
  • Product Count — qualifies when the count of distinct eligible products reaches the Amount.
  • Liquid Condition — for custom rules written in Liquid (advanced use, rarely needed).

Step 3: Create the Promotion

Navigate to the Promotions v2 tab and click New.

Field Required Notes
Display Name Yes Shown internally and may appear in the cart when the promotion applies
Store Yes The store this promotion applies to
Start Date Yes The date the promotion becomes active
End Date No Leave blank to run indefinitely
Start Time / End Time No Time-of-day on the start/end dates
From Time / To Time No Daily window (e.g. only between 5pm and 7pm each day)
Days of Week No Restrict to specific days
Reward Strategy Defaults to Tiered Tiered = best single matching condition applies. Stacked = all matching conditions apply.
Stacking Behaviour Defaults to Stackable Stackable = can combine with other promotions. Not Stackable = conflicts with other non-stackable promotions.
Coupon Code No Leave blank for automatic application. Populate to require the customer to enter a code at checkout.
Customer Scope Contact No Restrict to a single contact
Customer Scope Account No Restrict to a single account
Customer Scope Membership No Restrict to contacts with a specific active membership
Channel Scope Store No Restrict to a specific store
Channel Scope Outlet No Restrict to a specific outlet (POS)
Total Usage Limit No Max uses across all customers. Blank = unlimited.
Per Customer Usage Limit No Max uses per customer. Blank = unlimited.
Stop After This Promo No When true, stops evaluating further promotions once this one applies

Note: Customer Scope fields are mutually exclusive — set one of Contact, Account, or Membership, not multiple. Channel Scope Store and Channel Scope Outlet are also mutually exclusive.

This is the record that wires the three pieces together. If you skip this step, the promotion will never fire.

From the Promotion v2 record you just created, scroll to the Promotion v2 Conditions related list and click New.

Field Required Notes
Promotion v2 Yes (auto-filled from the related list) The promotion header
Condition Yes The Condition record from Step 2
Reward Yes The Reward record from Step 1
Priority Yes Evaluation order within the promotion. Lower numbers run first. Use 1 for a single-tier promo; use 1, 2, 3, … for tiered promos (lowest priority = highest threshold).

Step 5: Test in an incognito browser

  1. Open an incognito or private browser window.
  2. Sign in as a contact who matches the Customer Scope (if you set one).
  3. Add a product, go to checkout, and progress through the steps until the cart totals are recalculated.
  4. The discount should appear in the cart totals automatically (or after entering the coupon code, if you set one).

Important: A Salesforce support login as the customer does not always trigger member-based scopes correctly. Always test with a real customer login or with the customer’s actual credentials in incognito.

Worked examples

Example 1: Free shipping when cart reaches $200

Goal: Cart total of $200 or more = free shipping, automatically applied, no coupon code.

Step 1 — Reward

Field Value
Display Name Free Shipping at $200
Identifier free-shipping-over-200
Type Discounted Shipping
Discount Type Percentage
Discount Percentage 100
Frequency Once

Step 2 — Condition

Field Value
Name Cart Total $200
Type Total Value
Amount 200

Step 3 — Promotion v2

Field Value
Display Name Free Shipping over $200
Store (your store)
Start Date Today
Reward Strategy Tiered
Stacking Behaviour Stackable
Coupon Code (blank)

Step 4 — Promotion v2 Condition

Field Value
Condition Cart Total $200
Reward Free Shipping at $200
Priority 1

Example 2: Discounted shipping (50% off) when cart reaches $100

Goal: Cart total of $100 or more = half-price shipping, automatically applied.

Step 1 — Reward

Field Value
Display Name Half-Price Shipping at $100
Identifier half-price-shipping-over-100
Type Discounted Shipping
Discount Type Percentage
Discount Percentage 50
Frequency Once

Step 2 — Condition

Field Value
Name Cart Total $100
Type Total Value
Amount 100

Step 3 — Promotion v2

Field Value
Display Name Half-Price Shipping over $100
Store (your store)
Start Date Today
Reward Strategy Tiered
Coupon Code (blank)

Step 4 — Promotion v2 Condition

Field Value
Condition Cart Total $100
Reward Half-Price Shipping at $100
Priority 1

Example 3: 10% off the entire cart when over $150

Goal: Spend $150 or more and get 10% off the cart subtotal, automatically applied.

Step 1 — Reward

Field Value
Display Name 10% Off Subtotal
Identifier ten-percent-off-subtotal
Type Discount on Subtotal
Discount Type Percentage
Discount Percentage 10
Frequency Once

Step 2 — Condition

Field Value
Name Cart Total $150
Type Total Value
Amount 150

Step 3 — Promotion v2

Field Value
Display Name 10% Off When Over $150
Store (your store)
Start Date Today
Reward Strategy Tiered
Coupon Code (blank)

Step 4 — Promotion v2 Condition

Field Value
Condition Cart Total $150
Reward 10% Off Subtotal
Priority 1

Example 4: Tiered spend-and-save (10% / 20% / 30%)

Goal: Spend more, save more. $500 = 10% off, $1000 = 20% off, $1500 = 30% off. Only the best matching tier applies. Automatic, no coupon code.

This is the canonical use case for Reward Strategy = Tiered. You will create three Rewards, three Conditions, and three Promotion v2 Condition link records under a single Promotion v2.

Step 1 — Create three Rewards

Reward Type Discount Percentage
10% Off Subtotal Discount on Subtotal 10
20% Off Subtotal Discount on Subtotal 20
30% Off Subtotal Discount on Subtotal 30

Step 2 — Create three Conditions

Condition Type Amount
Cart Total $500 Total Value 500
Cart Total $1000 Total Value 1000
Cart Total $1500 Total Value 1500

Step 3 — Create one Promotion v2

Field Value
Display Name Spend and Save
Store (your store)
Start Date Today
Reward Strategy Tiered (important — gives the best single match)
Stacking Behaviour Stackable
Coupon Code (blank)

Step 4 — Create three Promotion v2 Conditions under that Promotion v2

Condition Reward Priority
Cart Total $1500 30% Off Subtotal 1
Cart Total $1000 20% Off Subtotal 2
Cart Total $500 10% Off Subtotal 3

Why this order? With Tiered strategy, only one Promotion v2 Condition applies per cart. Putting the highest threshold at Priority 1 ensures big-spending carts get the largest discount instead of stopping at the first match.

Result: A $600 cart gets 10% off. A $1200 cart gets 20% off. A $1600 cart gets 30% off.

Choosing between automatic and coupon-based promotions

  • Leave Coupon Code blank for an automatic promotion that applies as soon as the cart meets the conditions. No customer input is required, and the discount shows up in the cart totals automatically.
  • Populate Coupon Code when you want the customer to enter the code at checkout to activate the discount.

Coupon codes are case-insensitive. The store variable promotions.max_coupon_codes_per_cart controls how many coupon codes a single cart can accept.

Common mistakes and how to fix them

Symptom Likely cause Fix
Promotion never fires Missing Promotion v2 Condition link record Create the Promotion v2 Condition that links the Promotion to a Condition and a Reward
Promotion applies to everyone, not just members Customer Scope Membership not set on the Promotion v2 Set Customer Scope Membership on the Promotion v2 header
Discount is wrong amount Wrong Reward Type, or Discount Percentage / Discount Amount field not populated Confirm Reward Type matches the intent, and the matching amount field has a value
Two tiers stacked when only the best should apply Reward Strategy set to Stacked instead of Tiered Change Reward Strategy to Tiered
Promotion not applying despite cart being over the threshold Start Date is in the future, or Currency on the Condition does not match cart currency Set Start Date to today or earlier, and either set the Currency to match the cart or clear it
Free shipping works for one customer but not another Membership on the customer’s account is missing or expired Open the customer’s account and check the related Memberships list

Where to go next

  • About advanced promotions for the feature overview and capability comparison with standard Promotions
  • Promotions for the standard (legacy) promotion engine, still supported alongside Advanced Promotions
  • Discounts for the simpler product-level discount mechanism, often the right choice for “free shipping for members” or other membership-only price changes without cart-level conditions

Was this article helpful?

Was this article helpful?