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.

    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.

    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 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 the above conditions, the commerce administrator must make use of Predicates.

    Create the 40% off discount

    1. In the Merchant Center main menu, go to Discounts > Product discount list.

    2. On the Product Discounts page, click Add Product Discount.

    3. In the General Information section, follow these steps:

      1. For Product discount name, enter 40% off men's black shoe.
      2. For Product discount description, enter 40% off to clear inventory.
      3. For Product discount key, enter 2023-spring-mens-blk-shoe-40.
      4. For Discount value, select Relative (%) and enter 40, as the percentage amount.
      5. 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).
    4. In the Product discount rules section, follow these steps:

      1. For the Select the operation drop-down, select Apply to specific products.
      2. For the Select a condition drop-down, select all of these are true.
      3. To build the predicate, do the following:
        1. In the drop-down, select Variant SKU as the field identifier
        2. In the next drop-down, select is as the operator
        3. Enter Black shoe suave as the value.

      The predicate that applies the discount when the Variant SKU is Black shoe suave.

    5. Click Save. The newly created Discount is not active, by default. To activate, click the Status toggle.

      The status toggle is found in the upper right corner of the discount UI.

    6. 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.

      The discounted Price can be viewed in ther 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

    1. In the Merchant Center main menu, go to Discounts > Product discount list.

    2. On the Product Discounts page, click Add Product Discount.

    3. In the General Information section, follow these steps:

      1. For Product discount name, enter $25 off ladies heels.
      2. For Product discount description, enter $25 off ladies heels.
      3. For Product discount key, enter 2023-spring-ladies-heels-25.
      4. For Discount value, select Absolute (0.00) and enter 25, as the amount.
      5. For Rank (sortOrder), enter 0.5000. This puts this new discount at a lower ranking order than our 40% off discount above.
    4. In the Product discount rules section, follow these steps:

      1. For the Select the operation drop-down, select Apply to specific products.
      2. For the Select a condition drop-down, select all of these are true.
      3. To build the predicate, do the following:
        1. In the drop-down, select Categories as the field identifier.
        2. In the next drop-down, select is as the operator.
        3. Select Heels as the value.

      The predicate that applies the discount when the Category is Heels.

    5. Click Save. The newly created Discount is not active, by default. To activate, click the Status toggle.

    6. If we check our Shiny silver heels variant, we can now see that the discounted Price has been added to the Price tab.

      The discounted Price can be viewed in ther Prices 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.

    1. In the Merchant Center main menu, go to Discounts > Product discount list.

    2. On the Product Discounts page, click Add Product Discount.

    3. On the Add a product discount page, follow these steps:

      1. For Product discount name, enter 2023 Shoes for Feet: Cyber Monday 15%.

      2. For Product discount description, enter 15% off all Shoes for Feet footwear for Cyber Monday.

      3. For Product discount key, enter 2023-cyber-monday-15.

      4. For Discount value, select Relative and enter 15, as the amount.

      5. 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.

      6. For Valid from, select the date and time: 27 November, 2023, 09:00 AM.

      7. 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.

    4. In the Product discount rules section, follow these steps:

      1. For the Select the operation drop-down, select Apply to specific products.

      2. For the Select a condition drop-down, select all of these are true.

      3. To build the predicate, do the following:

        1. In the drop-down, select Categories branch as the field identifier. This lets you target the Sale Category and automatically include all its descendants.

        2. In the next drop-down, select is part of the branch as the operator.

        3. 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.

        4. Click AND condition.

        5. 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.

        6. 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'.

        7. Select Shoes for Feet as the value.

      The predicate that applies the discount when Categories branch is Sale and Price-Channel is Shoes for Feet.

    5. Click Save.

    6. 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.

      The discounted Price can be viewed in ther Prices tab.

    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.

    1. For the first discount, follow the same steps as the time window discount, but targeting the Tread Trends Channel in the Predicate rule.

    2. 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:

      1. For the Select the operation drop-down, select Apply to specific products.

      2. For the Select a condition drop-down, select all of these are true.

      3. To build the predicate, do the following:

        1. In the drop-down, select Attribute as the field identifier and select Brand.
        2. In the next drop-down, select is listed as the operator.
        3. Select AirWave and NeoTech, or SteadyStride as the value, depending on the discount you are creating.
        4. Click AND condition.
        5. In the drop-down, select Price - Channel as the field identifier.
        6. In the next drop-down, select is listed as the operator.
        7. Select Tread Trends as the value.

      The predicate that applies the discount when Brand Attribute is AirWave and NeoTech, and Price-Channel is Tread Trends.

    3. Click Save.

    4. 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.

      The larger discount has a lower rank than the lower discount so that the lower discount is applied to the Cart.

    5. And in fact when we check the Variants Price record, we can see that the 5% discount has indeed been applied.

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

    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!

    Test your knowledge