Can someone please tell me why this price rule only works if the quantity 2 of the same SKU? I want the rule to work when any 2 SKU's are added to cart with the sample attribute.enter image description here

  • +1 good question. Please accept an answer so future visitors (like me) know where to look without trying each answer!
    – Jongosi
    Dec 4, 2014 at 13:35
  • We wanted this to be buy one get one. Now with this code, people can add five items into the cart, and they'll all be discounted 50%. Not what we were looking for.
    – user34175
    Dec 14, 2015 at 19:50

5 Answers 5


If you look at your Actions tab you'll notice that your conditions are:

  • If ALL of these conditions are TRUE:
  • Quantity in cart is 2

Which is why it is only applied if there are a quantity of 2 of the same product. There's a great guide available on http://www.magentocommerce.com over here:

Buy 1, Get 1

Apply: Percent of product price discount
Discount Amount: 50
Maximum Qty Discount is Applied To: 0
Discount Qty Step (Buy X) 2
Apply to Shipping Amount: No
Free Shipping: No
Stop Further Rules Processing: No

If ALL of these conditions are TRUE:

Magento by default does not support multiple SKUs for buy X get Y free. I suggest that you search from https://marketplace.magento.com/ for Special Promotions or use the Special Promotions Pro from Amasty. Amasty's Special promotions pro really works for our needs and especially on this kind of scenario.


This is what you want to setup. I've tested this and it works perfectly.

For the conditions -


And for the actions -


  • 1
    I don't mind being down voted, but please let me know what's wrong with this answer if you're going to do it. Mar 28, 2014 at 13:49
  • James this works thank you for taking your time to help. Much appreciated
    – Nick
    Mar 31, 2014 at 9:56
  • No problem Nick, I like a good challenge! Would you mind accepting the answer so that the issue is solved. Thanks Mar 31, 2014 at 11:19

That works well for buy 1 get 1 free but how about for buy 2 get 1 free. I have amended the total quantity to 3 and the discount amount to 33.3333 but how do I make it step up in increments. Currently that setup gives a 33.3333% discount on 4 and 5 items for example whereas I only want it to discount in multiples of 3. Therefore 4 and 5 items should still have the same discount amount as was given for 3. 6 would have double the discount amount as the customer would have purchased the necessary additional 2 to get another 1 free.

I have tried fiddling with the required quantity and discount step but they seem to require the product to all be the same rather than just from the same category...

Hope that makes sense?


Here is the Magento official documentation on Buy X Get Y http://docs.magento.com/m1/ce/user_guide/marketing/price-rule-shopping-cart-buy-x-get-y-free.html

  1. New Shopping Cart Price Rule
  2. Conditions if item has sku and quantity >= 2
  3. Action is Buy X Get Y Discount Amt = 1 Discount Qty = 1 Apply Rule to cart items matching SKU
  4. Create Label and Save

JamesAllwood answer and 7ochem will apply 50% off if you buy an odd number of products, which is not Buy One Get One Free. Also note if doing it by SKU, applying the rule to cart items matching the SKU is important. Otherwise it will apply BOGO to every item in your cart.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.