Kartris contains a number of features that enable you to draw attention to particular items or provide special prices that will encourage purchases.

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.

Cross-selling means being able to sell an additional product or service to an existing customer. One powerful way to do this is targeted links between certain products that might appeal to similar buyers, or are related. For example, if you sell electronic items, you might wish to link through to the appropriate batteries or carry case.

Related product links are one-way in that if you create a link from product 'A' to product 'B', there will be no link from product 'B' to product 'A' (unless you create this separately of course). The logic is probably obvious – in the case above regarding batteries, you would not want to visit the battery page and see links to every single electronic item that links to this type of battery.

Single direction links gives you more control and choice than bi-directional links; you can always achieve bi-directional links by adding relationships on both items, if you wish.

Related products

Navigate to a product page and click the 'Related Products' tab.

In the text box, start to type the name, or part of the name of the product you wish to create a link to.

A list of products will appear – select the correct one. Then click 'Add New' and it will appear below. You can repeat the same process to relate more products with this one.

You can delete any relationships from the list too.

Don't forget to click 'Save' to store the changes.

Coupons are special codes that can be entered by a customer before checkout to obtain some kind of discount (fixed or percentage). They can also unlock promotions too.

Coupons can have various restrictions on use; from the time period during which there are valid to the number of times they can be used. A fixed value coupon, if used on an order of lower value, will not give change or retain the unused value.

Couopon creation

Navigate to 'Miscellaneous > Coupons' – you will see a list of previously created coupons (if any), and a link to create new ones.

You can choose the value of coupon discount (fixed amount or percentage), or you can select to link the coupon to any non-live promotion, which will be available only to customers who use the coupon (see 7.1.6. Linking promotions with a coupon for more details). You can also specify the start and finish date of the coupon, and whether the coupon is reusable or not. Coupons that are not reusable will expire when used.

The 'coupon code' checkbox lets you choose whether to enter the coupon code yourself. This way, you can choose something short, memorable and easy to type. This is useful if you create multiple use coupon codes to publish in and advertisement for example.

If you want to create multiple coupons of the same kind in one go, then the store will name them with pseudo-random codes.

You can disable and re-enable any coupons from the listing.

You can delete coupons only if they have not been used. Any coupon that was used for an order is protected from deletion, so the record of it will always remain.

Tax authority rules typically require that money-off coupons be applied as cash would. For example, if you had an order which contained two items of similar price, one of which had tax and the other that did not, if you applied the coupon to the taxable one to reduce its price, you thereby reduce or even zero the tax due on the order. However, if you applied the coupon to the non-taxable item, the total tax on the order remains the same. Similarly, coupons must always be applied to the order total after tax, just like cash would. The value of a coupon should be evenly applied across the tax inclusive prices of all items in the order in proportion to their value. Kartris does this, and will also calculate the % split of the coupon itself between the tax and order value.

It is a common feature of many transactions to provide discounts for quantity to encourage bulk purchases. Sometimes this is referred to as 'price breaks'.

Kartris has a flexible quantity discounts system that allows unlimited price breaks for any quantities specified. This is set at version level (since it is the version that holds the price info).

Simply click to edit a version, and then click the 'Quantity Discount' tab.

Enter the quantity break point, and the price for purchases of that number or more. Note that the price you must enter is per item, so prices should go DOWN as the quantity goes up.

quantity discounts
Make sure you enter the discounted price PER ITEM, and not for the total number of items.

If quantity discounts are available, the user will see a link for quantity discounts on the front end when viewing the product.

If a user adds 5 items into the basket (below the price discount level) and then later adds a further 6, the system will automatically pool these together and apply the discount from that point on. Similarly, if a user adds 10 items (with discount) and then removes one from the basket, they will immediately be recalculated at the normal price.

Powered by tomeCMS