we are trying to set-up the following rule

  • 50% discount on your first (any) T-shirt

So when you buy 1 or 2 T-shirts you get 50% discount on the first product only. Can this be done?

I managed setting up the rule as below. This works for 1 SKU. When I add 1 or 2 the discount is always (only) 50% on the first product.

But now when I add another SKU: then the rule is fired all over again. And now the 50% discount is also applied to the second SKU

It needs to be applied only to the first (or any first) SKU, then stop ...

Many thanks!

enter image description here

  • have u tried using the conditions?? – Aedonis Jan 31 '15 at 16:02
  • I have tried all. There is no identifier: first product only. Any ideas? – snh_nl Jan 31 '15 at 16:25

This can't be done with default promotions. The only way to do it in standard Magento is to use a coupon code that can only be used once per customer.

If you don't want to use a coupon code, you will have to program your own validation (start with Mage_SalesRule_Model_Validator) or write an observer that stores if your rule has already been processed using Mage::register(). The event you're looking for is sales_quote_address_discount_item and it would be as simple as not calling the process() method of the validator if the Mage::registry() tells you the rule has already been applied.


So this was very educational. I got it working using a combination of an observer and a rewrite. Result cart

I didn't integrate it into the promotion rules, as that would be quite a bit more work. Instead, I made a system configuration where you can fill in the names of the rules you want to work only for one order row. Admin config

You can download it here. Doesn't come with support. :)

| improve this answer | |
  • How then do it with a coupon? – snh_nl Jan 31 '15 at 16:25
  • Ack, sorry. I totally forgot that coupon usage per customer is also tied to logged in customers. So, if you need this for unregistered users, you can't without writing code (or an extension). – Melvyn Jan 31 '15 at 16:47
  • Per customer is not our issue. Setting it up for first product only ... That's the hard one – snh_nl Jan 31 '15 at 17:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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