Tier Discounts
This article explains Tier discounts in CommerceTools, and how to set them up.
Contents
Tier discounts in CommerceTools allow the configuration of an increasing discount dependent on the amount of a product that is selected. This is reflected not just in the cart but also in the Buybox of the PDP on the storefront.
Tier discounts use a category that is assigned to products, which has multiple discounts that use the category as a condition. The products assigned to a Tier discount category then fall within the conditions of the discounts targeting the category and this results in the discount being applied to it.
This category is not intended to be displayed on the storefront; it exists purely to be targeted by the discount’s condition. This allows different types of tier discounts to be able to exist alongside each other for different types of products.
Example
Let’s look at a pre-existing Tier Discounts set up used in Vitamin Express. There exists the Category, aptly named, Tier discounts.
This example is compromised of the following Cart discounts.
And here is an example of the ‘Buy 2 or 3, get 5% off’ discount’s conditions. First of all, take note that the Cart discount targets an Item, that it has the option ‘Apply to specific Items’ enabled, and that the ‘Where’ logic is set to ‘all of these are true’.
The two Quantity conditions then determine the unit amount of the tier: this targets 2 or 3 units.
Thereafter, the ‘Tier discounts’ category is targeted as a condition, so only products that belong to the category will meet the discount’s conditions.
Following this is the declaration that the ‘Price - Discount ID’ predicate cannot have a value; this means that another discount cannot already be targeting the product. If this is so the tier discount will be overruled. Finally, the ‘Custom field’ ‘Personal offer key’ also cannot have a value.
Creation
The value of the tier discounts themselves can vary but the Tier discounts all have the same basic configuration in CommerceTools.
Category
First of all, the category itself must be created, it must always be a main category. As this category will not be visible on the website, the name conventions are purely descriptive. The Category Name and Category description should be informative and differentiate the Tier Discount category from other Tier Discount categories that may exist.
An Important field that tells the backend that this category is unlike one displayed on the front end is the ‘External ID’ field, which much contain the value “tier-discount”.
The Category order field is a required field and although not specifically relevant as the category is not visible on the front end. It should be the lowest in the hierarchy so that it will never be shown before another visible category.
The Custom fields section must be set to ‘Category custom type’ with thereunder the selection set to ‘Purpose’.
Discounts
Then create the discounts for however many tiers you would like, typically there are 3 tiers, but less can be configured. It is important to note that the discounts used in Tier Discounts are Cart
discounts. Avoid using a discount template from CommerceTools visible on the create discount page and instead just create an empty cart discount using the ‘+ Add discount’ button. Or using the ‘+ Add cart discount’ button from the cart discount list page.
First of all the ‘Cart discount type’ should be toggled to Numeric.
Thereunder, within the ‘General information’ section the ‘Cart discount name’ and ‘Cart discount description’ must clearly indicate the product unit
amount that the discount is targeting and the numerical discount percentage of the discount.
The ‘Cart discount key’ field should contain a unique identifier which links the discount to the specific tier discount category. Make sure thus that the naming convention chosen can be differentiated from other Tier discounts. Especially if it is a temporary campaign or product specific tier discount.
The ‘Store’ section allows you to specify specifically specific (zucht) which channels the discount will be valid in. This theoretically allows different discounts specific to a sales channel to be configured within the same tier discount category.
It is important to note, that sales channel not included will thus not display or use the discount for the product on the storefront. But multiple discounts applied to a storefront will both be applied (if it’s conditions are met). The Rank (sortOrder) should be very high in the hierarchy, Tier Discounts should be applied before other discounts and typically always exist, in that, they are not typically connected to a campaign or event.
The ‘Staking options’ should not be toggled, it should always be possible for other cart discounts to be applied in combination with a Tier Discount. The ‘Discount code’ should always be toggled to ‘Not required’.
Typically the valid from / until fields are not used for a tier discount, but with them you can activate or deactivate it.
Then in the Discount configurations section the conditions of the tier discount are specified.
First of all, the Cart discount must target an Item, ‘Apply this effect to’ must have Item selected.
that it The ‘Eligibility criteria’ must be toggle to the option ‘Apply to specific Items’, and that the ‘Where’ logic is set to ‘all of these are true’.
The Quantity conditions that determine the unit amount of the tier discount is configured in this condition. Here is an example from a Tier discount configuration that that has three tiers, and so three cart discounts
with the following Quantity conditions configured
The lowest tier specifies the tier to be 2 or 3 units
The second tier specifies the tier to be 4 or 5 units
And the third tier defines any unit amount greater than 6
Thereafter, the ‘Tier discounts’ category created earlier is targeted as a condition, so only products that belong to the category will meet the discount’s conditions.
Following this is the declaration that the ‘Price - Discount ID’ predicate cannot have a value; this means that another discount cannot already be targeting the product. If this is so the tier discount will be overruled.
Finally, the ‘Custom field’ ‘Personal offer key’ also cannot have a value.
The ‘Discount type’ for a tier discount must always be toggled to ‘Percentage off’, with the associated numerical percentage value entered in
the ‘Discount value’
There is flexibility here, but typically the tiers are 5%, 10% and 15%. In the ‘Under these cart conditions’ section, the ‘Eligibility criteria’ for a tier
discount must always be toggled to ‘Apply to all carts’
When the Discount is finished make sure it has been activated, this toggle is at the top right corner of the discount configuration page.
Next to it is the Copy icon, you may use this to quickly create the different tiers as their configuration is very similar, pay close attention to the name, description and key fields to differentiate the various tiers and tier discount groupings.
Products
Once the Category and the Tier discounts have been configure the only thing left to do is to add the product to the category. You may do this individually per product, by selecting each product from the product list in CommerceTools.
It is also possible to add multiple products to a category simultaneously. On the product list page you can use a combination of filters to refine the displayed products, select them, and via the actions drop-down menu click
‘Bulk edit categories’
Products
This opens a secondary page where you can add, as well as remove product from a tier discount category.
This is especially useful when you are transferring a subset of products from one tier discount category to another. You can also review the products in tier discount category by selecting it form the category list page and navigating to the Product tab
Discount Rank (sort Order)
In CommerceTools, to ensure that discounts function correctly with each other and to determine the precedence of one discount over another, the value of the field ‘Rank (sortOrder)’ is used.
The value of this field determines the order, sorting and stacking of various discounts.
Range 1.0 - 0.900
This range is for discounts that should take precedence over all others, typically those that you do not want to stack. Therefore, make sure to check the 'do not stack' option. This ensures that the discount applied will be the only one. For instance, a code with a large relative discount will fall into this category. Additionally, tier discounts will not be applied concurrently with this discount.
Range 0.899 - 0.8
This range is reserved for tier discounts. Tier discounts need to be in a relatively high sort order because if they are placed under another discount, the relative discount will be incorrect. For example, if a 5% discount is applied first, a subsequent 10% tier discount will be calculated on the already reduced price, leading to an incorrect 10% discount on the original price.
Range 0.799 – 0.0
This range is designated for discounts that can be stacked under tier discounts. For instance, a 5% cart volume discount that is applied when the cart reaches a certain value. The rationale for placing this discount under tier discounts is to prevent it from affecting the price of the tier discounts, and to ensure that tier discounts are calculated before applying volume discounts. These discounts can be stacked regularly.
Tier Pricing
An important thing to be aware of is that you should not set up both tier discounts and tier pricing on the same product, thus you cannot activate tier discounts on older products that still use tier pricing.
Related articles and further reading
- Create a Category
- Discounts
- Create a Cart Discount
- Connection/synchronization between systems: https://support.visionhealthcare.eu/support/solutions/articles/27000072622
- Official CommerceTools documentation: https://docs.commercetools.com/merchant-center
- Products documentation: https://docs.commercetools.com/merchant-center/products
- Comprehensive discount documentation: https://docs.commercetools.com/merchant-center/discounts-overview
- Carts and Orders overview: https://docs.commercetools.com/api/carts-orders-overview#line-items-and-custom-line-items