2

Looking through the Magento code (specifically the process() method of the Mage_SalesRule_Model_Validator class), the handling section for case Mage_SalesRule_Model_Rule::BUY_X_GET_Y_ACTION: seems to want to take the total ITEM PRICE * QUANTITY of the "discount quantity" off of the quote item. However, that only works when you have > X quantity of the item in the cart: EG

If you have a Buy 3 Get 1 free rule, it only applies if you actually have 4 in the cart. This is a basic rule, no conditions or special action conditions. If you have a Buy 1 Get 1 free rule, you would have to have 2 in your cart, etc. I have a bugfix ticket in the queue for my workplace so it applies to the actual quantity in the cart, but for Buy 1 Get 1 free it would essentially equate to "Buy 1 get it free", which is definitely not the right solution.

Is this supposed to be actually adding additional quantity to the cart? If not, what is the intended behavior? If so, where exactly does it do that? Is there already a patch available to fix this?

1 Answer 1

2

from what you've explained this appears to be working as expected.

If you were to take the promotion out of the website and use it in a physical store, then you would expect any customer wanting to take advantage of "Buy one, get one free" to have two items, as if it applied to one item, it would simply be "Get it free".

It is expected behaviour in a supermarket for example, that if you take two items to the paypoint, you get the offer, but if you only take one, the cashier is unlikely to go and get another and add it to your basket for you.

However, in that case, the cashier would likely point out the offer and ask if you would like to take advantage of it- this is something that can be replicated in Magento with a little work (I don't believe you can do it with standard functionality).

For example, you can add a message into the cart that shows if one of their products has an active rule applied to it, and inform the customer. I don't believe that you should force the customer into accepting the promotion, but they should be aware of it and given the option.

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.