Promotions are special offers that provide some benefit to customers if the order meets certain criteria. Offers such as 'buy one, get one free' are classic examples, though the Kartris system is somewhat more flexible than this.

Promotions can be created and managed by going to 'Products > Promotions' in the back end.

The basic principle of promotions is that they are two-sided. On one hand you have the item or amount required to be purchased or spent in order to trigger the promotion. On the other side, there is the saving or free product(s) that are received.

Promotions can rapidly cause major problems when they overlap, as it creates many more possible options as to what rules should be applied.

For example, if you have a buy two 'A' and get 'B' free in a store that also has buy two 'A' and get 'C' free, you are effectively giving both B and C away when the user buys two of 'A'. Other problems can occur when one of the 'free' items (B or C) in the case of the above, also earns some promotion discount. For example, if you had another promotion buy B get D free, then the item B (which is free thanks to one of the promotions above) also results in a free item 'D'. So the purchase of two 'A' now gives B, C and D for free. Probably not was intended when each promotion was created.

To limit the chance of multiple promotions, stores may wish to limit the total number of promotions that can be triggered in a single order. The config setting frontend.promotions.maximum can be set to zero for 'no limit', or any number above to limit promotions.


When clicking the 'New' link, the promotion form comes up.

The promotion can be given a name, in multiple languages if you store supports that, and a checkbox can be set to determine if the promotion is 'live' (available) or not.

You can choose a start and finish data and you can also set the maximum number of this promotion that can be applied.

The sort value helps set the priority with which a promotion will be treated if there are multiple overlapping promotions (for example, the conditions of items in the basket triggers two different promotions).

Promotions consist of two sides – the first being what the customer must spend or purchase, and the second being what they receive as a result. We refer to these as part 'A' and part 'B' for simplicity.

On the promotions page, part 'A' is set on the left hand side, and part 'B' on the right hand side.

From the first dropdown menu of part 'A', the type of promotion can be chosen. Once a type is selected, textboxes will appear to let you specify further information. For example, if you select buy [X] of [P] (buy a certain number of a certain product), a textbox appears for the quantity (X). Enter a whole number. A second textbox also appears for the product (P). Enter the name or part of a product name here, and the filtered box will display the options. Select the appropriate one, and it will be entered to the textbox. The last step is to click the 'Add' link to add this new pattern to part 'A'. It will turn into a blue link just below the dropdown menu.

Note that you can add multiple requirements to part 'A'. So you could have a requirement to buy one product D, and spend $10, for example.

The next step is to fill out what the customer receives on part 'B'. The process is similar to that for part 'A'. Again, remember to click 'Add' to register your selection. You can create multiple received items too.

Multiple Requirements: If you enter multiple requirements, e.g.
  • Spend X
  • Buy 1 item from Category Y
then all requirements will need to be met to unlock the promotion. In other words, it is an AND rather than OR operation. The customer must spend X AND buy 1 item from category Y.

Categories: Category-based promotions are not recursive. This means they only apply to products immediately within a category, not products nested within subcategories of the category.
It is strongly advised that you consider carefully the result of promotions and the possible ways they can potentially work in ways that seem to the detriment of either the store or the customer. The promotions system is extremely complicated, there are infinite possibilities and what might seem logical in one context doesn't in another. Some examples to avoid, or that may be problematic are outlined below,

This list is by no means exhaustive, but is a useful guide to the pitfalls and problems that can arise with promotions:

  • Cyclical promotions - you should avoid cases where an item can appear on both sides of promotions, as you can have situations where buying one item earns you another for free, and having 'bought' that item then earns you another item for free, and so on. Remember that items can be included in promotions through being in a certain category, as well as by being specifically included.

  • Promotions involving items with different prices - for example, let's say you have a buy one get one free promotion on a product that has four differently priced versions. If a user picks two items, you would typically want to give the cheaper one free. However, if they buy 4 items together, and you just give the 2 cheapest free, it may cost them more than if they made two separate purchases of 2 items (where they could get the cheapest and second most expensive items for free instead of the two cheapest). The logic of dealing with such promotions in the fairest way possible is highly complex and dependent on a number of factors; what seems fair in one situation may well not seem fair in another. It is far simpler to have buy one get one free type promotions only on items of the same price.

We are often asked why we don't add promotional items automatically to the basket, rather than require customers to do this.

There are several reasons. Firstly, a promotion may not give a free item. It may be buy A get 50% off B. In such cases, the user has to decide whether they want the additional item at that reduced price, or not. We cannot automatically decide for them.

Secondly, the promotion may be buy A get B free, but this 'B' might be a product with several versions or be an options product. So we have no way to know which version a user wants, or what options they might want even if we know the item will be free and so they'll almost certainly want one.

In some cases, a promotion may 'gift' a specific version for free, so there is no doubt that a user would benefit from having this item. But for consistency, we don't add it in such cases. The page where the item is, as well as the basket will highlight the promotions that are available on these items, but the ultimate decision to add items to the basket is for the customer, just as it would be in a regular supermarket. If an item is buy one, get one free, a nice cashier (if you can still find a human) might let you know about it if you only have one in your basket. But it's still up to you to go get it - they won't keep them under the till in order to add it for you.

For reference, these are the types of promotion components available:

Part 'A':

Buy [X] of version [V] – e.g. buy 2 barbecue beans, small size

Buy [X] of items from category [C] – e.g. buy 5 items from 'books'

Buy [X] of product [P] – e.g. 1 barbecue beans (any size)

Spend [£][X]

Part 'B':

Get [X] of [V] for free – e.g. get 1 barbecue beans (small size) free

Get [X]% off [V] – e.g. get 10% off barbecue beans (small size)

Get [£][X] off – e.g. get £5 off

Get [X] of [P] for free – e.g. get 1 floor mat (any colour) free

Get [X]% off [P] – e.g. get 5% off 1 floor mat (any colour)

Get [X]% off items from category [C] – e.g. get 15% off any book


[X] = a whole number

[V] = a specific version of a product

[P] = a product (any version)

[C] = a category

[£] = the default currency (£, $, etc. depending on your store)

Promotions are typically publicly visible and available to all customers. But in certain cases, you may want to create a promotion but only make it available to a certain customer, or give it as a 'one off' incentive.

From Kartris v1.4 onwards, it is possible to combine the coupons functionality with promotions. You create a promotion in the standard way, but the 'Active?' checkbox must be unchecked (so the promotion is not live, otherwise it would be available to any user already).

You then create a new coupon, and select 'Promotion' from the value menu. The value textbox changes to another dropdown menu. From here you can select the promotion you wish to link this coupon to.

Creating a promotion triggered by a coupon

Remember - only promotions which are inactive (the 'Active?' box is not checked) can be linked to coupons. Because any promotion that is active will be available anyway, so would not need a coupon to activate it.

Powered by tomeCMS