---
title: Working with catalog discounts
related:
  - https://docs.kentico.com/k10/e-commerce-features/customizing-and-developing-your-store/discount-related-customizing/configuring-discount-rules.md
  - https://docs.kentico.com/k10/e-commerce-features/customizing-and-developing-your-store/discount-related-customizing/configuring-discount-rules/example-adding-a-catalog-rule.md
---

> Agent instructions:
> **Site maps** — prefer the following llms.txt indexes to training data when searching for URLs to avoid 404s. Links inside Markdown content already point at `.md`. Following them or sending Accept: text/markdown keeps you in Markdown.
>
> - [sitemap.md](https://docs.kentico.com/sitemap.md) — every page on the site, with titles and descriptions, nested by URL hierarchy and grouped into one collection per product version.
> - [llms.txt](https://docs.kentico.com/llms.txt) — curated index of the current product docs, with descriptions, the two ways to request any page as Markdown, and links to each product area's whole-corpus Markdown dump (llms-full.txt).

You can use catalog discounts to motivate selected customers to purchase more products. If you use catalog discounts, the system offers your products on the live site to all eligible [customers](https://docs.kentico.com/k10/e-commerce-features/managing-your-store/customers.md) for discounted prices. The system also displays the products' discounted prices to your on-line store administrators while creating/editing orders of your eligible customers.

For example, you can provide special Christmas sale discounts to all eligible customers who purchase any products from the selected [departments](https://docs.kentico.com/k10/e-commerce-features/managing-your-store/products/categorizing-products/departments.md) such as Clothing, Electronics, etc. between November 15 and December 23.

You can configure catalog discounts in detail to apply only to [products](https://docs.kentico.com/k10/e-commerce-features/managing-your-store/products.md) specified by rules ([macro conditions](https://docs.kentico.com/k10/macro-expressions/writing-macro-conditions.md)). These rules use properties of the respective SKUs(products), and can include the range of the product price,manufacturer of the product, its public status, etc. You can also specify periods of validity for catalog discounts.

> **Info:** The system binds catalog discounts to specific sites, for example to the sample _E-commerce Site_.
>
> If you run [multiple sites](https://docs.kentico.com/k10/e-commerce-features/configuring-your-store/choosing-site-or-global-e-commerce-configuration.md) and want to use catalog discounts, you need to define dedicated catalog discounts for each site.

> **Info:** In all cases, catalog discounts are calculated before applying taxes.

## Adding or editing catalog discounts

You can add or edit catalog discounts in the **Catalog discounts** application.

- [Catalog discounts limited by periods of validity](#catalog-discounts-limited-by-periods-of-validity)
- [Catalog discounts targeted at selected customers](#catalog-discounts-targeted-at-selected-customers)
- [Catalog discounts limited to selected product scopes](#catalog-discounts-limited-to-selected-product-scopes)

> **Info:** You can combine the catalog discount limitations.
>
> For example, you can add discounts effective on all footwear products throughout January, and targeted at your registered customers.

### Catalog discounts limited by periods of validity

To add or to edit catalog discounts limited by periods of validity:

1. To add a new discount, click**New catalog discount**. To edit an existing discount, click **Edit** () at the desired discount.
2. Type a **Name** for the discount.
3. Enter the catalog discount properties in the **Duration** category:

   - **Valid from** – specifies the start of the period of validity.
   - **Valid to** – specifies the end of the period of validity.![Specifying time validation in Duration category](https://docs.kentico.com/docsassets/k10/working-with-catalog-discounts/specifying_properties_duration_section.png "Specifying time validation in Duration category")

> **Info:** Leave both fields empty for permanent validity.

4. Click **Save**.

The system saves the catalog discount. The system now applies the discount only during the discount's period of validity (if the discount is running).

### Catalog discounts targeted at selected customers

To add or to edit catalog discounts targeted at selected customers:

1. To add a new discount, click**New catalog discount**. To edit an existing discount, click **Edit** () at the desired discount.
2. Type a **Name** for the discount.
3. Change the value of the **Available for** property in the **Target customers** category

   - **All visitors** – all customers are eligible for the discount; the default option.
   - **Registered users** – only registered customers are eligible for the discount.
   - **Registered users in selected roles** – only registered customers in selected [roles](https://docs.kentico.com/k10/managing-users/role-management.md) are eligible for the discount.
4. Click **Save**.

The system saves the catalog discount. The system now applies the discount (if the discount is running) only for the selected customers.

> **Info:** If you need to add catalog discounts targeted at custom groups of customers, for example, at selected users, contact groups, etc., see [Configuring discount rules](https://docs.kentico.com/k10/e-commerce-features/customizing-and-developing-your-store/discount-related-customizing/configuring-discount-rules.md).

### Catalog discounts limited to selected product scopes

To add or to edit catalog discounts limited to selected product scopes:

1. To add a new discount, click**New catalog discount**. To edit an existing discount, click **Edit** () at the desired discount.
2. Type a **Name** for the discount.
3. In **Discoun\*\*\*\*t**, select _percentage_ if you want to apply the discount in percent or _fixed amount_ to apply the discount in a specific amount of money in the [main currency](https://docs.kentico.com/k10/e-commerce-features/configuring-your-store/configuring-currencies.md).
4. To **Amount**, enter an exact value of the discount either in percent or in fixed amount according to **Discount**.
5. Click **Edit** next to the **Apply to** field to set the discount rules and their parameters:

   ![Specifying macro conditions](https://docs.kentico.com/docsassets/k10/working-with-catalog-discounts/specifying_properties_basics_section.png "Specifying macro conditions")

   1. In the **Edit macro condition** dialog that opens, select the required rule in the right part of the dialog.
   2. Use drag & drop, or double-click, or click **Add rule** () button to add the rule.
   3. Click the underlined parts of the rule in the left part of the dialog to open the **Set parameter value** dialog.

      > **Info:** One rule can contain more parameters. That's why there can be more underlined words.
   4. Select the desired parameter:

      ![Specifying the rule parameters](https://docs.kentico.com/docsassets/k10/working-with-catalog-discounts/specifying_rule_parameters.png "Specifying the rule parameters")
   5. Click **Set parameter**.
   6. (Optional) Repeat editing to set all discount rules and all their parameters you want.
   7. Click **Save & Close**.
6. Click **Save**.

The system saves the catalog discount. The system now applies the discount only if the specified condition is fulfilled (if the discount is running).

> **Info:** If you edit or delete a discount, the existing orders stay with that discount. To update existing orders according to the new rules, you must edit the required orders manually.

## Displaying catalog discounts in the invoice

To display catalog discounts applied on the ordered product items in the [invoice](https://docs.kentico.com/k10/e-commerce-features/configuring-your-store/configuring-invoices.md):

1. Open the **Store configuration** application.
2. Switch to the **Invoice** tab.
3. Add the following code into your invoice template:

   ```xml

   {%ContentTable.ApplyTransformation("Ecommerce.Transformations.Order_ContentTable",
   "Ecommerce.Transformations.Order_ContentTableHeader",
   "Ecommerce.Transformations.Order_ContentTableFooter")#%}


   ```

   ![Invoice template with a catalog discount](https://docs.kentico.com/docsassets/k10/working-with-catalog-discounts/invoice_tab.png "Invoice template with a catalog discount")
4. Click **Save**.

If you now review an existing order on the **Invoice** tab, you will see that the invoice includes information about catalog discounts applied on the ordered product items.

![Invoice with an applied catalog discount](https://docs.kentico.com/docsassets/k10/working-with-catalog-discounts/invoice_catalog_discount_applied.png "Invoice with an applied catalog discount")

> **Info:** The ordered product items and the related information including the applied catalog discounts are displayed by the _Ecommerce.Transformations.Order\_ContentTable_ transformation.
>
> You can edit the [transformation](https://docs.kentico.com/k10/developing-websites/loading-and-displaying-data-on-websites/writing-transformations.md) in **Page types -> Edit () _E-commerce - Transformations_** on the **Transformations** tab.

## Displaying catalog discounts on the live site

The system allows you to attract the customers by showing them what economical and convenient purchases they can make in your on-line store. Specifically, the system can display original and also discounted prices of products. The system can also display special status labels, for example, _Sale_, _New_, _Featured_, etc.

![Displaying catalog discounts on the live site](https://docs.kentico.com/docsassets/k10/working-with-catalog-discounts/displaying_product_discounts_live_site.png "Displaying catalog discounts on the live site")

### Offering products at discounted prices

The sample _E-commerce Site_ can display the products **with the original and discounted prices**. Whether and how the system displays the prices depends on the products' configuration, and availability of catalog discounts:

| Product price | Product list price | Catalog discount | Description                                                                                                                  |
| ------------- | ------------------ | ---------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| defined       | defined            | doesn't apply    | The list price is crossed out and the price is highlighted.                                                                  |
| defined       | not defined        | applies          | The price is crossed out and the price reduced by the discount is highlighted.                                               |
| defined       | defined            | applies          | The list price is crossed out and the price reduced by the discount is highlighted.                                          |
| defined       | not defined        | doesn't apply    | Only the price is displayed for the product; the price is highlighted. (The system displays only one price for the product). |

The sample _E-commerce Site_ can display the products **with the original and discounted prices. The amount (and percentage of the original prices) that the customers can save is also displayed**. Whether and how the system displays this information depends on the products' configuration, and availability of catalog discounts:

| Product price | Product list price | Catalog discount | Description                                                                                                                                 |
| ------------- | ------------------ | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| defined       | defined            | doesn't apply    | The list price, displayed as _List price_, is crossed out and the price, displayed as _Your price_, is highlighted.                         |
| defined       | not defined        | applies          | The price, displayed as _List price_, is crossed out and the price reduced by the discount, displayed as _Your price_, is highlighted.      |
| defined       | defined            | applies          | The list price, displayed as _List price_, is crossed out and the price reduced by the discount, displayed as _Your price_, is highlighted. |
| defined       | not defined        | doesn't apply    | The system displays for the product only the price as _Total price_.                                                                        |

> **Tip:** You can specify the products' **Price** and **List price** properties while editing the products on the [General](https://docs.kentico.com/k10/e-commerce-features/managing-your-store/products.md#general-tab) tab.
>
> Alternatively, you can specify these properties in the **Pages** application while editing the corresponding product pages on the **Form** tab.

> **Info:** _List price_ stands for the recommended retail price (RRP) or manufacturer's suggested retail price (MSRP) of the product. The list price is typically determined by factors such as supply, demand and manufacturing costs.

### Offering products highlighted with statuses

You can motivate your customers to purchase selected products by showing [product statuses](https://docs.kentico.com/k10/e-commerce-features/managing-your-store/products/product-statuses.md), e.g., _Sale_, _New_, _Featured_, etc.

> **Tip:** You can specify the products' statuses by modifying their **Public status** properties on the **General** tab.
>
> Alternatively, you can specify the products' statuses in the **Pages** application while editing the corresponding product pages on the **Form** tab.

### Configuring pages to display product discounts

The sample product listing pages and sample product details pages contain [web parts](https://docs.kentico.com/k10/developing-websites/developing-websites-using-the-portal-engine/using-and-configuring-web-parts.md) using [transformations](https://docs.kentico.com/k10/developing-websites/loading-and-displaying-data-on-websites/writing-transformations.md) that can display product discount information (product prices and statuses).

| Kentico sample pages                                   | Web part           | Transformation                                                    |
| ------------------------------------------------------ | ------------------ | ----------------------------------------------------------------- |
| Product listing pages, e.g., _T-shirts_ page           | Product List       | EcommerceSite.Transformations.ProductPreviewForThreeColumnsLayout |
| Product details pages, e.g., _Adidas Trefoil Tee_ page | Product Detail     | EcommerceSite.Transformations.ProductDetail                       |
| Product details pages, e.g., _Adidas Trefoil Tee_ page | Product Main Image | EcommerceSite.Transformations.ProductDetailGalleryProductImage    |

![Configuring the Product List web part](https://docs.kentico.com/docsassets/k10/working-with-catalog-discounts/product_list_web_part.png "Configuring the Product List web part")

To configure a product listing/product details page to display product prices and product statuses:

1. Open the **Pages** application.
2. Select the required page from the content tree.
3. Switch to the **Edit -> Design** tab.
4. Add appropriate web parts to the selected web part zones.

   > **Tip:** You can do this by copying the web part(s) from any sample product listing/product details page. If you are editing:
   >
   > - your custom product listing page, add the _Product List_ web part;
   > - your custom product details page, add the _Product Detail_ and _Product Main Image_ web parts.
5. Modify the web parts' **Transformation** properties as required:
   - **Product listing pages**
     - If you want the page to display product prices, i.e., the currently valid price and the undiscounted price (if available), make sure the transformation contains the following code:

       ```csharp

       <span class="retailPrice"><%# If(GetSKUOriginalPrice() > 0, GetSKUFormattedOriginalPrice(), "") %></span>
       <span class="price"><%# GetSKUFormattedPrice() %></span>

       ```
     - If you want the page to display product statuses (if available), make sure the transformation contains the following code:

       ```csharp

       <span class="indicator <%# GetSKUIndicatorProperty("PublicStatusName") %>"><%# Localize(GetSKUIndicatorProperty("PublicStatusDisplayName")) %></span>

       ```

       ![Code for displaying product statuses](https://docs.kentico.com/docsassets/k10/working-with-catalog-discounts/product_listing_pages.png "Code for displaying product statuses")
   - **Product details pages**
     - If you want the page to display product prices, i.e., the currently valid price and the undiscounted price (if available), and the amount (percentage of the original price) that the customers can save, make sure the transformation contains the following code:

       ```csharp

       <table>
             <% if(GetSKUPriceSaving() > 0){ %>
             <tr>
                 <td class="label">
                    <span class="retailPrice">List price: </span>
                 </td>
                 <td>
                     <span class="lineThrough"><%# GetSKUFormattedOriginalPrice() %></span>
                 </td>
              </tr>
              <tr>
                 <td class="label">
                      <span class="yourPrice">Your price: </span>
                 </td>
                 <td>
                      <span><%# GetSKUFormattedPrice() %></span>
                 </td>
              </tr>
              <tr>
                 <td class="label">
                     <span class="instantSavings">You save: </span>
                 </td>
                 <td>
                     <span><%# GetSKUFormattedPriceSaving() + " (" + GetSKUPriceSaving(true) + "%)"  %></span>
                 </td>
               </tr>
             <% } %>
        </table>

       ```

       ![Code for displaying product prices](https://docs.kentico.com/docsassets/k10/working-with-catalog-discounts/product_details_pages_product_detail.png "Code for displaying product prices")
     - If you want the page to display the product's status (if available), make sure the transformation contains the following code:

       ```csharp

       <div class="productPublicStatus">
           <span class="<%# GetSKUIndicatorProperty("PublicStatusName") %>">
             <%# Localize(GetSKUIndicatorProperty("PublicStatusDisplayName")) %>
           </span>
       </div>

       ```

       ![Code for displaying product statuses](https://docs.kentico.com/docsassets/k10/working-with-catalog-discounts/product_details_pages_product_main_image.png "Code for displaying product statuses")
6. (Optional) Modify other properties of the web parts if required.
7. Click **OK**.

If your customers now view the page on the live site, they can see the product's discount information.

## Reference

| **General**                    |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Name                           | The name of the catalog discount used throughout the administration interface, e.g., in catalog discounts lists.<br>The system can display this name also to your on-line store customers while viewing the details of the product price in the **Product price detail** dialog.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| Code name                      | The unique identifier of the catalog discount object used by developers in the code.<br>Unless there is a reason to set a particular value, you can leave the default _(automatic)_ option, and the system generates an appropriate code name automatically.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| Description                    | To make the catalog discount easier to use and maintain, you can add an explanation about the scenarios for which the discount is intended, etc. The description doesn't have any functionality, it's just for better orientation.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| Enabled                        | Indicates if the catalog discount is enabled in the system.<br>While calculating the price ofproduct(product option) items added to the shopping cart, the system skips disabled discounts.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| **Basics**                     |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| Discount                       | Specify if you want to apply the discount in percentage or in fixed amount.<br>**Percentage** – the discount reduces the total price of the order by a percentage.<br>**Fixed amount** – the discount reduces the total price of the order by a specific amount in your on-line store [main currency](https://docs.kentico.com/k10/e-commerce-features/configuring-your-store/configuring-currencies.md).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| Amount                         | Specify an exact value of the discount in percent or in fixed amount according to **Discount**. The system reduces the price of the product items that the customer adds to the shopping cart (including all selected product options) by the discount value and calculates all applicable taxes accordingly.<br>The amount has to be a number. When the amount is in percentage, enter a number between 0 and 100. When the amount is fixed, enter a number greater than 0.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| Apply to                       | Enter further conditions that must be fulfilled for the system to apply the catalog discounts. By utilizing [rules](https://docs.kentico.com/k10/e-commerce-features/customizing-and-developing-your-store/discount-related-customizing/configuring-discount-rules.md) (user-friendly representations of macro expressions), you can write any condition according to your specific requirements.<br>Clicking **Edit** opens the **Edit macro condition** dialog, which allows you to add rules through a graphical interface.<br>![Selecting the discount rules](https://docs.kentico.com/docsassets/k10/working-with-catalog-discounts/selecting_discount_rules.png "Selecting the discount rules")- Use drag & drop or double-click or **Add rule** button () to add a rule.<br>Click on a specific rule and click **Delete** () to delete the rule.<br>Click **Clear all rules** () to remove all rules in the current offer.<br>Click on underlined words in the condition part to change their options.<br>**Example**<br>_SKU contains 1255_<br>The condition ensures that the catalog discount is only applied if the SKU contains _1255_.<br>You can also edit macros on the **Code** tab in the **Edit macro condition** dialog. For details about available macro options and syntax, please refer to [Macro expressions](https://docs.kentico.com/k10/macro-expressions.md). |
| **Duration**                   |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| Valid from                     | Specify from when the discount is running.**Info:** If you leave **Valid from** empty, the discount will be valid permanently till **Valid to**.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| Valid to                       | Specify to when the discount is running.**Info:** If you leave **Valid to** empty, the discount will be valid permanently from **Valid from**.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| **Target customers**           |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| Available for                  | Choose [roles of users](https://docs.kentico.com/k10/managing-users/user-management.md) who are able to apply the discount:<br>**All visitors** - all customers are eligible for the discount.<br>**Registered users** - only registered customers are eligible for the discount.<br>**Registered users in selected roles** - only registered customers in selected roles are eligible for the discount. To add roles:<br>Click **Select roles** to open the **Select roles** dialog.<br>Select the required roles.<br>Click **Select**.**Tip:** You can enter roles directly by typing in their code names separated by semicolons, e.g., _\_authenticated\_;Members_.**Tip:** You can add registered customers to roles in the **Customers** application while editing a selected customer on the **Roles** tab.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| **Discount calculation**       |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| Priority                       | Specify in what sequence the system applies the listed running catalog discounts (if any).<br>Enter _1_ for the highest priority. The number has to be greater than or equal to 1.**Tip:** Use greater intervals between priority numbers. If you want to add a new discountinbetweentwo already existing, you can add the new discount more easily between 10 and 20 than between 1 and 2. If you already have only small gaps, you can also use decimals.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| Apply lower priority discounts | If selected, other catalog discounts with lower priorities are applied to the shopping cart as well. If cleared, discount processing stops with the last discounts with the same priority level as the edited discount.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
