Managing Promotions & Discounts in Magento 1 – Shopping Cart Price Rules

Promotions (discounts) can be applied automatically in the cart or a specific coupon code can be set up for it.   These are all managed from the PROMOTIONS > SHOPPING CART PRICE RULES area.

From here you are able to set up simple and complex promotions – automatically applied to the shopping cart or redeemable by way of a coupon code.

Some features applicable to all shopping cart price rules:

  • Start / Expiry dates can be set for discounts / coupon codes
  • Promotions can be given a limited use per customer
  • Promotions can be applied to all customers or specific customer groups
  • Limits can be set to each promotion – in terms of how many items in the cart or value of cart

Adding a new shopping cart price rule

Press the ‘add new rule’ button in the top right-hand side of your screen and you will see the below screen:

Rule Name: This is a descriptive name for your reference (does not show up on the frontend)

Description: Any more info – for your reference.  This is not required.

Status: Active / Inactive – set to ‘active’ by default.   To deactivate your rule, set to ‘inactive’ and save.

Customer Groups: To which customer groups does this rule apply?   You have to choose at least one – select at least ‘not logged in’ and ‘general’ (hold the Ctrl key on your keyboard to select multiple groups and click on them).

Coupon: Do you want to create a coupon for this rule (set to ‘no coupon’ by default).  If you enable coupon, you will see additional fields asking if you want to generate a specific code manually or if you want it to auto-generate.   The easiest one is to set one manually so you can set it how you want.

From/To Date:  Here you can set from what date to what date you want the price rule to be active. For example you can set starting from to a future date so it automatically starts then.

Priority: If you have a number of promotions running and some cross over, you can set a priority – which will say which rule you have set has priority over the other in case they cross.  0 is the highest priority – then 1, 2, 3 etc. have less priority.

Public in RSS Feed: RSS means Really Simple Syndication.  Syndicate means to ‘publish or broadcast something simultaneously – in the case of RSSing your promotions, you can broadcast this to many channels on the internet.


The next tab is called ‘conditions’ and this is often confused with the ‘actions’ tab’s ‘apply rule to the following products….’

For the most promo actions you can use product attributes in both Conditions and Actions tabs. But what is the difference? Think of “Conditions” and “Actions” as of “Cause” and “Effect”. It means that Conditions you set define in which situation the rule will be applied, no matter of the discount calculation settings. And product attributes you set in the Actions tab will determine to which products the discount will apply when Conditions are met.



This is where all the magic happens.  When you choose from the drop ‘apply’ dropdown, you’ll see lots of choices.  Depending on which you choose, the fields below it may change.


But to run down the basic fields.

The settings listed here are used in most of the shopping cart price rules actions.

  • Discount Amount’ field indicates discount percent / fixed amount applied by a rule. For example, if you type in 100 here the item will get 100% discount or €100 euro discount.
  • Maximum Discount’ field sets the limit to the amount of discount the rule will apply to a cart. For example, if you want to set a limit to the quantity in the cart or amount in Euro the discount is applied to.
  • Free Shipping’ is a default Magento setting which, when enabled, will replace shipping charge for the order (or specific products, depending on which option you’ve selected) with zero shipping charges
  • Stop Further Rules Processing’ is another default Magento setting which is designed to stop the lower priority rules (see above re applying priorities) from being applied.
  • Calculate Discount Based On’ the setting controls the base price which will be used to calculate the discount amount.  This applies when you are setting a discount rule to a product when it may have a special price assigned to it.  At this point, the shopping cart price rule would apply the discount combination based on the original price, rather than the discounted price.


1. Percent of product price discount:

This is a simple percent off products in the shopping cart.  In this example, I’m promoting the fact that if a customer adds 5 or more products to their cart, they get 10% off.  Please note in the screenshot below that €2.02 is 10% off €16.45 plus 23% VAT 🙂

How did I set this up?  I simply set the ‘apply’ to ‘percent of product price discount.  I set the discount amount to ’10’ which is 10%, and then I set the action condition to IF ALL THESE CONDITIONS ARE TRUE: Quantity in cart equals or greater than 5.   If you kept this to ‘is‘ 5, if someone had 6 or more in their cart, the discount would disappear.

2. Fixed amount discount / fixed amount discount for whole cart

Fixed amount discount‘ and ‘fixed amount discount for whole cart‘ are two different rules.  They both apply to give a fixed amount discount – however the difference being that the fixed amount discount CAN BE APPLIED TO MANY PRODUCTS in the cart – ie give multiple discounts and the fixed amount discount to whole cart just applies the discount to the whole cart.    Usually this would be applied if a threshold is reached or certain products are purchased and you can give for example 10 euro discount.

In the below example, you’ll see a ‘fixed amount discount’ example where the cart has reached a threshold of €100 or greater and you get a €10 discount.  However I have not set a limit to the amount of products this fixed amount discount can be applied to, so it’s applying it for all 10 quantity – so you get a discount of 100 euro (10 time 10 euro).

In the example below, all I have changed is the ‘fixed amount discount for whole cart’ and this now disregards the quantity and gives just 10 euro off the whole cart.


In the backend, in the ‘conditions’ area, I have set the ‘subtotal’ to be ‘equal or greater than’ 100.


In the ‘actions’ area, you’ll see I’ve selected ‘fixed amount discount’ (you can also choose …for whole cart).  I have given the ‘discount amount’ 10 (10 in currency) and now I set the ‘max qty discount is applied to’ 1 – meaning that if I had 10 items in the cart, that the 10 Euro discount wouldn’t be applied to every item in the cart 🙂  So be sure to set this if you don’t want to give the discount for every quantity in the cart.

Buy X quantity, pay for Y quantity of the same product

Discount is applied based on quantity of a specific product – for example buy 5 and pay for just 4.

The cheapest / Buy One, Get One Free

Buy two of any product / product range get the cheapest for free.  Example two for 1 on a specific product or choose two original toners and get the cheapest free.

‘Most expensive’ action…

Buy a number of products and apply a discount – to the most expensive product in the cart.

Get discount for each amount spent.

If customer reached a threshold of say 100 euro spent, he gets 5 euro off.  For every extra 100 euro spent, he gets another 5 euro off.

Percent discount: Buy X and get Y Free

Customer buys 1 product and gets another product with a % discount – 100% if required.  For example, buy 1 box of a4 paper and get a box of bic pens free (or reduced price).

Fixed discount: Buy X and get Y Free

Customer buys 1 product and gets another product with a fixed discount.  For example, buy 1 box of a4 paper and gets 2 euro off a box of bic pens.

Buy X get Y – Fixed Price

As points 8 & 9, but rather than assigning a discount, the Y (free / discounted) product is given a set price.  For example – buy an HP printer and get a set of cartridges for Y price.

Buy X and get number of Y free

This is also configurable as a percent, fixed discount or fixed price (as above 3 examples).

An example of this is if customer buys 10 boxes of paper, then he can get a 30% discount / 20 euro or fixed price (say 50 euro) off 5 packs of popular office coffee….

Each 2nd, 4th, 6th with discount.

This is also configurable as a percent, fixed discount or fixed price (as above 3 examples).

Customer can get a set discount on every 2nd, 4th or any such multiple that he adds to cart.  For example, every 5th box of envelopes, he gets 10% discount / 20 euro off / for a set price.

Every 2nd / 3rd item ‘after’ x amount has discount applied to it.

If you have products that are bought in multiples regularly, you can assign discounts based as above, but only after a certain threshold.  So after the customer buys 5 boxes of paper, thereafter after every 2nd of 4th, a discount is applied.

Group of items of set price / discount.

You can assign a group of products, if all bought together, a set price or discount.  If there are products you sell as a bundle – for example paper, envelopes, files and highlighters for 50 euro or 10% of the total price of that bundle.

Product in specific range receive discount after threshold of products reached.

Limit can be set to how many products discount is applied to.  Example – if I buy 5 desks, on every extra desk (6th, 7th etc) a discount is applied to each extra desk I purchase.

Auto-add promotional items.

You can ‘give away’ promotional items – by automatically adding them to the cart under certain conditions.   For example, if you were to buy a set of highlighters and got a free pen.   Or just a freebee added to every purchase, a ‘BOGOF’, or if a threshold has been met, a certain item is added to the cart for free.



Leave a Reply