Manage Product Discounts
Learn how to set up catalog discounts, time window discounts, and product discount layering in Composable Commerce.
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.
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.
You can have up to 500
active Product Discounts in your Project at any one time.
Product Discounts override any existing Tiered Prices.
The remainder of this learning module will show you how to implement and manage Product Discounts for some common use cases.
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'll 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 namedHeels
- Another Category named
Sale
- Two Channels,
Shoes for Feet
andTread Trends
, with their Channel role set asProduct 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 the above conditions, the commerce administrator must make use of Predicates.
Create the 40% off discount
In the Merchant Center main menu, go to Discounts > Product discount list.
On the Product Discounts page, click Add Product Discount.
In the General Information section, follow these steps:
- For Product discount name, enter
40% off men's black shoe
. - For Product discount description, enter
40% off to clear inventory
. - For Product discount key, enter
2023-spring-mens-blk-shoe-40
. - For Discount value, select Relative (%) and enter
40
, as the percentage amount. - For Rank (sortOrder), enter a decimal value from 0 to 1. To know how to best select a rank value, see Best practices. For this example, we will enter 0.5001 (or 0,5001 depending on your country's settings).
- For Product discount name, enter
In the Product discount rules section, follow these steps:
- For the Select the operation drop-down, select Apply to specific products.
- For the Select a condition drop-down, select all of these are true.
- To build the predicate, do the following:
- In the drop-down, select Variant SKU as the field identifier
- In the next drop-down, select is as the operator
- Enter
Black shoe suave
as the value.
Click Save. The newly created Discount is not active, by default. To activate, click the Status toggle.
As a final step, you can check that the discount has been applied by going to the Product Variant you added the discount to (in our example, this would be your Black shoe suave variant) and you should now see a discounted Price on the Prices tab.
Note: Keep in mind that it may take up to 15 minutes for your discount to be applied to the Price record. More information can be found here.
Create the $25 discount
In the Merchant Center main menu, go to Discounts > Product discount list.
On the Product Discounts page, click Add Product Discount.
In the General Information section, follow these steps:
- For Product discount name, enter
$25 off ladies heels
. - For Product discount description, enter
$25 off ladies heels
. - For Product discount key, enter
2023-spring-ladies-heels-25
. - For Discount value, select Absolute (0.00) and enter
25
, as the amount. - For Rank (sortOrder), enter 0.5000. This puts this new discount at a lower ranking order than our 40% off discount above.
- For Product discount name, enter
In the Product discount rules section, follow these steps:
- For the Select the operation drop-down, select Apply to specific products.
- For the Select a condition drop-down, select all of these are true.
- To build the predicate, do the following:
- In the drop-down, select Categories as the field identifier.
- In the next drop-down, select is as the operator.
- Select
Heels
as the value.
Click Save. The newly created Discount is not active, by default. To activate, click the Status toggle.
If we check our Shiny silver heels variant, we can now see that the discounted Price has been added to the Price tab.
Nice job! You just created your first Product Discounts!
Use case 2: Time window discount
Let's now look at a use case to create a discount that is part of a promotion strategy bound by a certain time frame.
Let's focus on two particular brands of Stride Synergy for this use case: Shoes for Feet and Tread Trends. Both these brands are managed in one system by the commerce administrator involved in setting up the discounts. 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 for us. To allow the above 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 will also have its own Store.
The process to create the Product Discount is similar to the previous use case, but we are adding a more complex discount rule in which two conditions need to match: a Category AND a distribution Channel.
In the Merchant Center main menu, go to Discounts > Product discount list.
On the Product Discounts page, click Add Product Discount.
On the Add a product discount page, follow these steps:
For Product discount name, enter
2023 Shoes for Feet: Cyber Monday 15%
.For Product discount description, enter
15% off all Shoes for Feet footwear for Cyber Monday
.For Product discount key, enter
2023-cyber-monday-15
.For Discount value, select Relative and enter
15
, as the amount.For Rank (sortOrder), enter a decimal value from 0 to 1. For this example, enter 0.5002. This puts the new discount here at a higher ranking than the two discounts we created in use case 1. This means that this new discount will be applied if these items are added to a Cart.
For Valid from, select the date and time:
27 November, 2023
,09:00 AM
.For Valid until, select the date and time:
27 November, 2023
,11:00 PM
.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.
In the Product discount rules section, follow these steps:
For the Select the operation drop-down, select Apply to specific products.
For the Select a condition drop-down, select all of these are true.
To build the predicate, do the following:
In the drop-down, select Categories branch as the field identifier. This lets you target the Sale Category and automatically include all its descendants.
In the next drop-down, select is part of the branch as the operator.
Select
Sale
as the value.Alternatively, we can achieve the same result by using the Categories as the field identifier and is one of as the operator, and manually selecting the Sale category and all of its descendants.
Click AND condition.
In the drop-down, select Price - Channel as the field identifier. This lets you target the discount specifically on shoes sold in the Shoes for Feet Channel.
In the next drop-down, select is listed as the operator. This lets you select multiple values following it, unlike is that lets you select only one value. In our Predicate language, is translates to 'Is only'.
Select
Shoes for Feet
as the value.
Click Save.
If we add the Black suave shoe Product Variant to an order, we can now see that the new discount has been applied, despite there being two active Product Discounts. Our new discount has applied because it has the higher rank.
Fantastic! Let's look at one more scenario together.
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, it's possible that certain products might find themselves 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.
Let's go back to Stride Synergy and its brand Tread Trends, which has decided to run three different promotion campaigns that are not stacked (combined), and want the lowest discount to be available to the customer:
- Discount 1: An end-of-financial year 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, we need to have three Product Discounts, each with their own Predicate. As the Sale category discount has the lowest discount, we want to give that discount the highest priority that is achieved through ranking.
In short, the higher the ranking value, the higher the priority of a Discount in the Cart. For tips on how to set this up properly, see best practices for ranking Discounts.
For the first discount, follow the same steps as the time window discount, but targeting the Tread Trends Channel in the Predicate rule.
For the second and third discount, follow the initial steps as previous use cases, and then in the Product discount rules section, follow these steps:
For the Select the operation drop-down, select Apply to specific products.
For the Select a condition drop-down, select all of these are true.
To build the predicate, do the following:
- In the drop-down, select Attribute as the field identifier and select Brand.
- In the next drop-down, select is listed as the operator.
- Select
AirWave
andNeoTech
, orSteadyStride
as the value, depending on the discount you are creating. - Click AND condition.
- In the drop-down, select Price - Channel as the field identifier.
- In the next drop-down, select is listed as the operator.
- Select
Tread Trends
as the value.
Click Save.
We can see on this Product Discount list page below that we have given a higher ranking to the EOFY 2023 discount, meaning that when we add an item to the Cart that has both discounts applied to it, the lower EOFY 2023 discount will apply.
And in fact when we check the Variants Price record, we can see that the 5% discount has indeed been applied.
Amazing work on this page! You have brought a lot of different skills and knowledge about Composable Commerce and how to operate the Merchant Center together. Well done!