Manage Product Discounts

Learn how to set up catalog discounts, time window discounts, and product discount layering in Composable Commerce.

Ask about this Page
Copy for LLM
View as Markdown

After completing this page, you should be able to:

  • Use Product Discount predicates correctly in common discount or promotion use cases.

Product Discounts

Product Discounts play an important role in the setup of your store as they tell your frontend application what the base price is, the matching special price, and the campaign name. They are also used to display a product's discounted price along with its regular base price on the Product Detail Page (PDP), Product Listing Page (PLP), search, and product cards. This is often shown on a site as the strikethrough price.

An example product detail page highlighting the use of a strikethrough price

If you want to show the strikethrough price while using an external search engine, then you must use Product Discounts to calculate and set the new price on the product. This helps you sync the new price with the third-party search engine.

Cart Discounts are not viable options to achieve these above use cases, as they only calculate the new price once items are added to a Cart. Product Discounts on the other hand are calculated ahead of time and store the data along with the Price of a Product Variant.

Product Discounts can target the same price dimensions for a user that a Product Variant Price can, such as: country, Customer Group, Channel, time period, and currency. This is useful as we can target a promotion (Cart or Product) for a specific customer segment that matches the specified price dimension.

Product Discounts are subject to a limit in a Project.
Product Discounts override any existing Tiered Prices.
The remainder of this learning module walks you through common Product Discount scenarios, explaining when and why to use each approach. For the step-by-step procedure to create Product Discounts in the Merchant Center, see Product Discounts.

To explore the below use cases, we are going to work with an imaginary holding company, Stride Synergy. The company owns many brands specializing in footwear, with each brand having its own websites and retail stores.

To continue with the examples on this page, you need to set up a Project with the following:

  • A Product Type named Shoe with an Attribute, Brand
  • A Product Variant named Black shoe suave
  • A Product Variant named Shiny silver heels that is mapped to a Category named Heels
  • Another Category named Sale
  • Two Channels, Shoes for Feet and Tread Trends, with their Channel role set as Product Distribution
To learn how to configure your Project, see Project Settings. To learn how to configure Product Types and Attributes, see Product Types and Attributes.

Use case 1: Product and catalog discounts

Product and catalog discounts are commonly used as marketing strategies to attract customers, boost sales, and create a sense of urgency or affordability. They offer a price reduction to customers on specific items or an entire store's inventory. Product-level discounts apply to individual products, while catalog-level discounts apply to categories or the entire product range.

A commerce administrator working for Shoes for Feet, one of the brands by Stride Synergy, needs to create the following discounts:
  • Discount 1: 40% off on men's shoes from last season with a lot of its stock left in inventory
  • Discount 2: $25 off on any ladies' heels purchase

To create a Product Discount matching these conditions, the commerce administrator must make use of Predicates.

Create the 40% off discount

The goal is to clear last season's men's shoe inventory by offering a 40% relative discount on a specific SKU. To create this Product Discount, use the following configuration:
FieldValue
Product discount name40% off men's black shoe
Product discount description40% off to clear inventory
Product discount key2023-spring-mens-blk-shoe-40
Discount valueRelative: 40%
Rank (sortOrder)0.5001
To select a rank value, see best practices.

For the discount rule, apply the discount to specific products where all conditions are true, using the following predicate:

  • Variant SKU is Black shoe suave
The predicate that applies the discount when the Variant SKU is Black shoe suave.
After saving, activate the Product Discount using the Status toggle.
The status toggle is found in the upper right corner of the discount UI.
You can verify that the discount has been applied by checking the Prices tab of the Black shoe suave Product Variant. The discounted Price should now be visible.
The discounted Price can be viewed in the Prices tab.
It may take up to 15 minutes for the discount to be applied to the Price record. For more information, see Product Discounts.

Create the $25 discount

The second discount offers a fixed $25 reduction on all products in the Heels category. To create this Product Discount, use the following configuration:
FieldValue
Product discount name$25 off ladies heels
Product discount description$25 off ladies heels
Product discount key2023-spring-ladies-heels-25
Discount valueAbsolute: 25
Rank (sortOrder)0.5000
Rank 0.5000 is lower than the 40% discount above (0.5001), so this discount has lower priority.

For the discount rule, apply the discount to specific products where all conditions are true, using the following predicate:

  • Categories is Heels
The predicate that applies the discount when the Category is Heels.
After saving and activating the discount, check the Shiny silver heels variant to confirm the discounted Price on the Prices tab.
The discounted Price can be viewed in the Prices tab.

You have now created your first Product Discounts.

Use case 2: Time window discount

This use case covers a discount that is part of a promotion strategy bound by a certain time frame.

Two brands of Stride Synergy are involved: Shoes for Feet and Tread Trends. Both brands are managed in one system by the same commerce administrator. The commerce administrator needs to set up a discount for Shoes for Feet that wants to run a Cyber Monday sale offering 15% across their entire range of footwear between 09:00 AM and 11:00 PM AEST on Monday, 27 November, 2023.

Some important information to note about these two brands:

  • Both brands sell shoes.
  • They also sell some of the same shoes.
  • Each brand has its own separate website.
  • They both target the same country and currency.
  • Shoes for Feet has a slightly higher base price than Tread Trends.
  • Each brand runs their own unique promotional calendar.
Managing two brands from one Project creates some interesting complexity. To allow this setup, each brand is modeled as a Channel within the Project. These Channels are of type ProductDistribution to allow each brand (Channel) to have their own base Price and Discounts. Each Channel also has its own Store.
Unlike the previous use case, this discount rule requires two conditions to match: a Category AND a distribution Channel. To create this Product Discount, use the following configuration:
FieldValue
Product discount name2023 Shoes for Feet: Cyber Monday 15%
Product discount description15% off all Shoes for Feet footwear for Cyber Monday
Product discount key2023-cyber-monday-15
Discount valueRelative: 15%
Rank (sortOrder)0.5002
Valid from27 November, 2023, 09:00 AM
Valid until27 November, 2023, 11:00 PM
Rank 0.5002 is higher than both discounts from use case 1, so this Cyber Monday discount takes priority when a Product matches multiple discounts.
The time zone displayed in the Merchant Center is controlled by the setting in your My Profile settings. To adjust the time zone displayed in the Merchant Center, click your user profile and go to My Profile. In the Personal Settings section, for Time Zone, select the respective time zone.

For the discount rule, apply the discount to specific products where all conditions are true, using the following predicates:

  • Categories branch is part of the branch Sale: this targets the Sale Category and automatically includes all its descendants.
  • AND Price - Channel is one of Shoes for Feet: this targets the discount specifically on shoes sold in the Shoes for Feet Channel.
Alternatively, you can achieve the same result by using Categories as the field identifier and is one of as the operator, and manually selecting the Sale category and all of its descendants.
The is one of operator allows you to select multiple values, unlike is which accepts only one value. In the Predicate language, is translates to is only.
The predicate that applies the discount when Categories branch is Sale and Price-Channel is Shoes for Feet.

After saving and activating the discount, add the Black suave shoe Product Variant to an order. The new discount is applied despite there being two active Product Discounts, because it has the higher rank.

The discounted Price can be viewed in the Prices tab.

Use case 3: Product discount layering

A business may wish to have multiple promotion and discount strategies running at the same time. In such a situation, certain products might be targeted by more than one discount. You might want to ensure that the sale item only gets the lowest available discount, otherwise you could lose too much margin and minimize profit from your promotions.

Stride Synergy's brand Tread Trends has decided to run three different promotion campaigns that are not stacked (combined), and wants the lowest discount to be available to the customer:
  • Discount 1: an end-of-financial year (EOFY) sale offering 5% off all items in the Sale category, which runs from June 30, 2023 to July 7, 2023
  • Discount 2: a 15% discount on all AirWave and NeoTech shoes
  • Discount 3: a 20% discount on all SteadyStride shoes
To achieve this, you need three Product Discounts, each with their own Predicate. Because the Sale category discount has the lowest percentage, you want to give it the highest priority through ranking. The higher the ranking value, the higher the priority of a Discount. For tips on how to set this up properly, see best practices for ranking Discounts.

Discount 1: EOFY 5% sale

This discount follows the same pattern as the time window discount and targets the Tread Trends Channel. To create the Product Discount, use the following configuration:
FieldValue
Product discount nameEOFY 2023 Tread Trends: 5% off Sale
Discount valueRelative: 5%
Rank (sortOrder)0.5002 (highest rank, so this discount takes priority)
Valid from30 June, 2023
Valid until7 July, 2023

For the discount rule:

  • Categories branch is part of the branch Sale
  • AND Price - Channel is one of Tread Trends

Discount 2: 15% off AirWave and NeoTech

To create the Product Discount, use the following configuration:
FieldValue
Product discount name15% off AirWave and NeoTech
Discount valueRelative: 15%
Rank (sortOrder)0.5001

For the discount rule, apply the discount to specific products where all conditions are true:

  • Attribute (Brand) is one of AirWave, NeoTech
  • AND Price - Channel is one of Tread Trends

Discount 3: 20% off SteadyStride

To create the Product Discount, use the following configuration:
FieldValue
Product discount name20% off SteadyStride
Discount valueRelative: 20%
Rank (sortOrder)0.5000 (lowest rank)

For the discount rule, apply the discount to specific products where all conditions are true:

  • Attribute (Brand) is one of SteadyStride
  • AND Price - Channel is one of Tread Trends
The predicate that applies the discount when Brand Attribute is AirWave and NeoTech, and Price-Channel is Tread Trends.

Verify discount layering

On the Product Discount list page, you can see that the EOFY 2023 discount has the highest ranking. When you add an item to the Cart that matches multiple discounts, the EOFY 2023 discount (5%) takes priority because of its higher rank.
The larger discount has a lower rank than the lower discount so that the lower discount is applied to the Cart.

Checking the Variant's Price record confirms that the 5% discount has been applied.

The lower discount has been applied to the Variant's Price record.

Well done on this page. You have brought together different skills and knowledge about Composable Commerce and how to operate the Merchant Center.

Test your knowledge