Promotions Management
Overview
Discounts are an essential part of the sales strategies that a Commerce business can implement. Their purpose is to deduct an amount from the shopping cart or give free products (or both) to reward specific purchasing behavior (adding certain products, adding certain amounts, entering a discount coupon, etc.) by a user. Effective management of the discount system can help to boost sales for the Commerce business.
The discount system is a powerful tool. You can create generic discounts (on any product) and specific discounts (on certain products or categories). Discounts can be applied in any situation if they are not limited by conditions or, on the other hand, they can be limited by adding one or more conditions that must be fulfilled for them to be applied. This module covers most standard discounts, as well as other more specific discounts based on numerous different types of condition to determine when and how the discount is to be applied. They can also be applied selectively to certain users, groups of users or countries, which means the module is perfectly suited to B2B profiles.
Types of Discount
With the different types of discount, you can discount money, discount units or give users free products. Each type of discount involves a specific kind of calculation with its own features; for example, a percentage discount is not the same as a 3 for 2type discount. This means that when the different types of discount are set up, differences of criteria or even incompatibilities will arise.
These are the different types of discount you can choose from:
 Fixed Amount: Deducts a fixed amount (e.g. €10). The reduction can apply to the order total (Apply to Total), to each line item (Apply to Each Product) or to the price of shipment (Apply to Shipping).

Percentage: Deducts a fixed percentage of money (e.g. 10%). As in the previous case, the reduction can apply to the order total, to each line item or to the price of shipment.

Gift: Allows zero price products to be included in the order as promotional gifts. They can be either products intended for sale or else products created specially for giving away which are generally included in the browsing categories, i.e. those in the area marked with the role of categories (see the Catalogue module to find out more). Moreover, these products monitor their own stock so that they are not given away if there are not enough units in stock.

Choose Gift: As in the Gift discount type, this type allows zero price products to be included in the order as promotional gifts. However, in this case the gift is not assigned automatically by the system but chosen by the user. This means there cannot be a single gift product, but a list of gifts to choose from. In the Discount Value section shown below, you can find descriptions of the different options for calculating the number of units available for each gift product the user can choose.

Based on Units: Deducts a certain number of units from the line items you specify. For example, you could indicate that when the user buys 6 units, 2 are deducted from the price of the line item you choose; i.e. the user will buy 6 units but pay for 4. Thus, the line item will show the number of units to be deducted instead of the amount or percentage of the discount.

M x N: Deducts the amount for certain units in the line items you specify. For example, you could indicate that when the user buys 2 units they only pay for 1 (the typical 2 for 1 discount). In concept terms, this is the same type of discount as Based on Units, except in this case the line item shows the amount deducted rather than the units or percentage discount. Moreover, unlike Based on Units, the M x N type determines how the discount will be applied, i.e. by grouping the more expensive products, cheaper products, etc.
Discount Conditions: Types and Setup
Conditions are the requirements to be met for the discount to apply; they must all be met and must therefore be compatible with one another. If they are not setup properly (e.g. if they overlap, etc.), the discount will not be triggered. Bear in mind that the more conditions you specify, the more restrictive the implementation of the discount will be. There will also be cases where, depending on the needs of the discount itself, you do not need to set any conditions. These are the different types of conditions you can choose from:
Units Purchased
Based on the number of units the user has added to the order. In this parameter you have to determine the way you count how many units the user has to buy to qualify for the discount. There are three ways:
 Between X and Y Units: The discount is only triggered if the number of units in the order falls within this tier.
 More than X Units: The discount is only triggered if the user buys more than the quantity specified in this option.
 Every X Units: The discount is triggered when the units in the order match the value of X or a multiple of X. For example, if you specify Every 3 Units and there are 12 units in the order, the discount will be triggered and applied 4 times.
Money Spent
Based on the total amount of the order. The same methods are used as in the previous conditions, but in this case, what is counted is the amount the user has to spend to qualify for the discount.
Number of Orders
Based on the number of orders by a single user. This also uses the same methods as the conditions above, except in this case what is counted is orders.
Activated by Discount Code
Based on discount codes. For the discount to apply, the user has to enter a valid code. You can specify one or more codes for the same discount, as well as importing and exporting lists of codes. If you set up several codes, the discount will be triggered by any of them.
Apply a Maximum Number of Times
Based on the maximum number of times the discount can be applied over a certain period of time. The system counts the times the discount has been applied from the start of the period specified to the date of the current order.
Example: You set up a discount so that it can apply up to 3 times over a period of 90 days. If the current order is dated October 11th, the system checks whether the discount has been applied to the user between this date and the previous 13th June (i.e. 90 days before). If it has been applied less than 3 times, this means the condition is met and the discount can be applied to the current order.
Select Product
Based on a predefined list of products and/or categories to which the discount is to be applied. The discount will be applied only to the products you choose and, if you select a category, the discount will apply to all the products in this category. If a product belongs to several categories, only the conditions affecting the category marked as "main" for this product will be taken into account. The condition can be applied per Individual Product, i.e. by buying any of the products specified, or per Multiproduct, i.e. by buying the set of products specified. You cannot configure several lists to act as different conditions; you can only create one.
Example
Imagine you want to create a discount that only affects a hypothetical category of trousers and another of shirts, because you want to reduce stocks. To set up the discount choose the Select Products condition and only the categories "trousers" and "shirts". You also have to specify whether the condition is to be applied individually, i.e. Individual Product, or in Multiproduct format. As you are interested in reducing stocks, you should select Individual Product, because you want users to be able to buy any trousers or any shirt. If you want users to buy specific trousers with a specific shirt, you choose not categories but the specific shirt and trousers and select Multiproduct. This way the discount will only be triggered when this shirt is bought with these trousers.
If you need to make more shirttrousers pairs, you cannot do it with the same discount (because you can only create one list of products), but you will have to create as many discounts as you need shirt and trouser pairs.
Select Combination of Products
The discount is applied when the user chooses specific products and quantities. With this condition you must create one or more groups of products that can be combined with one another and indicate how many units from each group the user has to buy to get the discount (see example shown below). The system will search for these possible combinations in the shopping cart and apply the discount to this group, to the order total or to the shipping, according to the settings you adjust. Also, the discount will only be applied to the quantities of those groups; all other units will be excluded from the discount.
When you create a discount based on this condition, you must create one or more groups of products and indicate how many units the user has to buy in each group to qualify for the discount; all the conditions for all the groups must be fulfilled.
You can also specify a minimum and maximum quantity of each product. The minimum quantity means the user has to buy at least this number of units to fulfil the condition. So, you can indicate, for example, that at least one of each of the products in the group must be bought to qualify for the discount. The maximum quantity means the maximum number of units to take into account when counting the units of this product, so you can stop more than two units of each product getting reductions. Units over this limit will neither qualify for reductions nor be taken into account in determining whether the required amount for the group is reached. The maximum and minimum quantities applied to products could be inconsistent with the number of units in the group. However, the system will not let the quantity in a group be less than 1, the maximum and minimum quantities be less than 0, the sum of the minimum quantities be more than the quantity in the group or the sum of the maximum quantities be less than the quantity in the group.
Once you have configured the condition, you must specify the value of the discount (except for the Gift discount type). Tiers of units are not allowed because the groups already indicate the necessary number of units. If you apply the discount to the products, you must assign it to the most expensive or the cheapest ones, as the products added to the discount can have different prices, and the shopping cart may contain more units than necessary. Bear in mind that the items for which a minimum quantity has been specified are prioritized because it is considered that these have to be part of the group of products. It is important to decide correctly whether the discount is to be applied to the most expensive or the cheapest products. If you decide to apply it to the cheapest ones, this prejudices the user, i.e. the user could buy only the most expensive products to get the discount and place a separate order for the cheapest ones, or even not buy anything, in which case you would lose the sale. If you decide to apply it to the most expensive products, you will be offering the user the best combination.
Implicitly, this condition is assessed "every x groups" that can be made up in the cart, except when the discount is applied to the total and by percentage, in which case it only happens once.
The Select Combination of Products condition is incompatible with the discount types M x N and Based on Units, and with the conditions Units Purchased, Money Spent and Select Products. It is in fact a rather special condition, as it behaves like a discount in itself: it applies a specific calculation and a view (grouping products in the shopping cart); it is treated as a condition even so, because it can apply to discounts of the amount or percentage type.
Example setup 1
Buy 4 Tshirts, 2 pairs of jeans and 1 pair of shoes to get a 5% discount.
These would be the steps to set up the discount:

Create a Percentage discount and indicate that it is to be applied to each product.

Create the condition type Select Combination of Products.

Create 3 groups: one for Tshirts, another for jeans and a third one for shoes.

In each group, add the appropriate products; the More than X mode will apply.

If you want the user to have to buy at least one of each Tshirt, add 1 as the minimum quantity.

If you do not want the discount to apply to 4 identical Tshirts, specify a maximum number, e.g. 2.
Discount behavior :
If the shopping cart contains 8 Tshirts, 2 pairs of jeans and 3 pairs of shoes: a 5% discount will be applied to 4 Tshirts, 2 pairs of jeans and 1 pair of shoes, because as there are only 2 pairs of jeans in the cart the discount cannot be applied to two product groups. For the discount to apply to another 4 Tshirts and another pair of shoes, the shopping cart would have to contain 2 more pairs of jeans.
Example setup 2
Buy 3 different pairs of jeans to get a €5 discount on the order total.
These would be the steps to set up the discount:

Create a Fixed Amount discount and indicate that it is to be applied to the order total.

Create the condition type Select Combination of Products.

Create 1 group for jeans with a minimum of 3 different models and specify a quantity of 3; the Every X Groups mode will apply.
Discount behavior :
In this case, for every 3 different pairs of jeans the user buys, a €5 discount will be applied to the order total.
Example setup 3
Buy 3 different pairs of jeans to get a 2% discount on the order total.
These would be the steps to set up the discount :

Create a Percentage discount and indicate that it is to be applied to the order total.

Create the condition type Select Combination of Products.

Create 1 group for jeans with a minimum of 3 different models and specify a quantity of 3; the More than X mode will apply (the Every X mode will not apply because the discount is based on a percentage).
Discount behavior :
The discount will only be applied to 3 pairs of jeans, even if the user buys a larger quantity. Discounts by percentage of the order total can only be applied once. If 2% is applied for every 3 pairs of jeans, 4% for every 6 and so on, for 150 pairs of jeans a 100% discount would apply.
Select Brands
The discount is only applied to specific brands. You cannot configure several lists to act as different conditions; you can only create one. For the discount to take effect, the brands must be created in the area specified with a brand role.
Users / Groups
The discount is applied to certain users or groups of users. If the user is one of those selected or belongs to one of the groups specified, the discount will be applied.
Location
The discount is applied if the user belongs to the geographical area specified.
Affiliate
The discount is only applied if users have accessed the shop through a specified affiliate.
Shipping type
The discount is only applied to certain shipping type.
Do not Apply to Products on Offer
The discount is only applied to products that are not on offer; if they are not, it is as if the products were not in the cart for the purposes of calculating the discount. This condition is based on the attributes of the products and not on the attributes of the shopping cart, in particular, whether they have the parameter of product on offer activated.
Do not Apply to Bundles
The discount does not apply to products belonging to a native LogiCommerce bundle. This condition is based on the attributes of the products, in particular, whether they are included in a bundle.
Period of Time
The discount is applied for a certain period of time. You can create as many conditions of this type as necessary, i.e. set time periods in which the discount will be active.
Discount Value
The value of the discount is the amount or percentage discount applied if the conditions you set are fulfilled; there will be different possibilities depending on the discount condition.
You can enter as many values as necessary, so creating multitier discounts where the mode chosen is More than X and Between X and Y. This allows you to adjust the discount widely and apply different values depending on the amount (value or number of units). In More than X mode, the upper limit is not fixed; the first tier is fixed, i.e. what is defined is the condition, but then More than X tiers can be added, providing the value of X is higher than that of the previous tier. In the Between X and Y mode, on the other hand, the lower and upper limits are set by the values entered in the condition, and tiers can only be created between these two limits. For example, if the lower limit is set at 0 and the upper limit at 10, you could create the following tiers: between 0 and 3, between 3 and 7 and between 7 and 10. The lower limit of the next tier is the upper limit of the previous tier. Tiers cannot overlap, as this would generate errors and even stop the discount being triggered.
When you apply the discount to the products, they can be grouped together or not. If you group them together, the discount is assessed for all the products in the shopping cart. If not, it is assessed for each row.

Do Not Group Products Together: The conditions are applied to each product in the product row.

Group Products Together: The conditions are applied to all the products in the shopping cart, even if they are different products.
Example: You create a condition where for every 3 products a 10% discount is applied, and also select Group Products Together. If the user buys a blue shirt, a red one and a black one, the discount will be applied. If you select Do Not Group Products Together, the user must buy 3 blue shirts, 3 red ones and 3 black ones for the discount to be applied.
Gifts
In the Gift and Choose Gift discount types, the value of the discount is the gifts themselves, and you must therefore specify what the gifts are. In the case of Gift, you only need to indicate the gift products and their quantity. In the case of Choose Gift, you have to select how to calculate the number of units available of each gift product the user can choose from. In either of these two cases, you must select the products and/or categories; if you choose a category, all the products it contains are set as promotional. Gift discount products cannot have options (e.g. size), but you must create the gift product with all its properties predefined: "size S Tshirt" or "size M trousers". On the other hand, Choose Gift products can have options (size, color, etc.), which the user must choose when they choose the gift:

Fixed Units: The maximum number of units of each gift product the user can choose are predefined.
Example: If you specify 2 fixed units, the user can choose a maximum of 2 gift products.

Percentage of Units: The units the user can choose as gifts are a percentage of the number of units purchased. Enter the percentage and, if you wish, the maximum number of gift units available, regardless of the result of the calculation.
Example: If you specify a percentage of 50% and a maximum of 2 gift units, this means:
a) If the user buys 1 unit, they cannot choose a gift (50% of 1 unit is 0.5, and the system cannot add 0.5 units of a gift).
b) If the user buys 2 units, they can add 1 gift unit (50% of 2 units is 1).
c) If the user buys 3 units, they can choose 1 gift unit (50% of 3 units is 1.5, so the system can only add 1 gift unit).
d) If the user buys 4 units, they can add 2 gift units (50% of 4 units is 2).
e) If the user buys more than 4 units, they can only add 2 gift units because this is the maximum quantity you have set.

Fixed Amount: Specifies the maximum amount the user can spend on gifts. The units available for each gift will depend on the value of Gift Cost, a property set in the LogiCommerce product datafile.
Example: You have two gifts (A and B) with a Gift Cost of €5 and €10 respectively, and under Fixed Amount you specify €10:a) The user can add 2 units of gift A (because they cost €5 + €5), but only 1 unit of gift B (because it costs €10).
b) As these quantities change dynamically on the Commerce website, the user is allowed to add 2 units of gift A (€5 each) or 1 unit of gift B (€10). If the user chooses 1 unit of gift A, the option of gift B will disappear, and they can only choose another unit of gift A. On the other hand, if the user chooses gift B, the gift area will disappear automatically because they cannot add any more.

Percentage of Total: Specifies the percentage of the total amount of the purchase and, if you wish, the maximum amount of the gift units (the first cannot be more than the second). The units available for the user to choose from will depend on the value of Gift Cost, a property set in the LogiCommerce product datafile, and on the calculation of the percentage.
Example: You have two gifts (A and B) with a Gift Cost of €5 and €10 respectively, and you set a percentage of 50% and a Fixed Amount of €10:a) With a shopping cart of €100, for example, the user can add at the most gifts worth €50 (i.e. 50% of €100), but up to a limit of €10.
b) The user can therefore only add gifts worth €10, i.e. 2 units of gift A (€5 each) or 1 unit of gift B (€10), like in the previous mode.
c) If you did not set a maximum amount, the user could choose 10 units of gift A or 5 of gift B, or else a mixture of the two up to a combined value of a maximum of €50.
Apply to Base Prices
The discount will override the offer price of the products, so it will always be applied to the base price. The product subject to the discount will stop being marked as on offer and therefore in the shopping cart its previous price will not be shown. The main purpose of this adjustment is not to cheapen products too much by applying a discount to a price that is already on offer.
Cumulative Discounts, Noncumulative Discounts and Priorities
Cumulative discounts are applied whenever the conditions are fulfilled, i.e. the discounts are accumulated or added together. Noncumulative discounts are those you wish to apply by priority, i.e. in order of application; the priority number indicates the order of application (first come priority 1 discounts, then priority 2 and so on) and only those with the lowest priority number are finally applied, i.e. those which meet the requirements first. Discounts with the same priority behave in relation to one another like cumulative discounts, i.e. if two discounts with the same priority fulfil the conditions, both are applied.
Example: Supposing there are 2 discounts (A and B) in the block of cumulative discounts, 2 in the block of priority 1 discounts (C and D) and 2 are priority 2 discounts (E and F). If the conditions of all 6 discounts are met, A, B, C and D will end up being applied. Discounts A and B would be applied because they are cumulative; discounts C and D would be applied because they have an application order before E and F, and they would both apply because discounts are cumulative if they have the same priority.
In this example, discounts E and F would only be accepted if neither of the conditions set for C and D were met. As soon as a priority 1 discount is applied, those with priority 2 or more can no longer be applied (because they are not cumulative). This is useful when you want the system to apply only one of the discounts (not both) if the conditions are met. If you want both discounts to be applied, include them in the category of cumulative discounts.
Incompatible Discounts
The following combinations are not compatible:
Fixed Amount discount + Apply to Each Product + Every X Units condition
Percentage discount + Every X Units condition
Choose Gift discount + Every X Units condition
Every X Units or Every €X condition + having more than 1 tier as discount value
Apply to Shipping discount + Apply to Total or Apply to Each Product discount
M x N discount, where M is less than or equal to N
Discounts with 2 conditions of the same type (except if the condition is Period of Time)
Select Products condition + no product or category selected