A bundle can be made up of N component products, and in our case the price of each component is managed through an ERP system. A customer can buy the components as a bundle, and receive a discount for doing so. What we'd like to do is set up the bundle's pricing as Dynamic so that the price of the bundle is calculated as the total of each of the component products, then use a Catalog Price Rule to apply a discount (e.g. $10.00) to the total. The components can also be purchased individually (at full price), so simply applying a rule to one or more of the components isn't really an option for this case.

This allows the administrator to change the prices on each of the components without having to adjust the overall bundle price and saves a lot of effort.

I've tried configuring a price rule that applies to a bundle to see what happens, and no discount was applied. I checked all of the usual things like making sure the rule was active and had been applied, date ranges and other constraints were met, etc so I'm reasonably confident my rule was configured correctly. A quick code review of Mage_Bundle_Model_Product_Price suggests that Catalog Price Rules aren't checked when calculating bundle prices.

Is this something Magento supports? And if so, are there any special tricks or gotcha's to be aware of?

  • Try shopping cart price rules instead.
    – pspahn
    Nov 6, 2013 at 7:42
  • A shopping cart price rule would only be applied once the customer adds the bundle to the cart. A Catalog Price Rule would allow the the discounted price to appear on the PDP as well so it meeds our needs better. Nov 6, 2013 at 22:03

2 Answers 2


A bit old, and hopefully you have found a solution by now.

I have a similar requirement- A bundle with dynamic pricing that applies a percent discount to the bundle. Items can be purchased separately at full price, but if they are purchased in the bundle they are discounted by %2

Use the special price of the bundle product. For bundle products it is changed to a % - It is the percent the product will be discounted TO. ( For my 2%, I needed the special price to be 98)

It auto populates Special Price From Date, but if you leave Special Price to Date blank it will always give the special price.

Now your requirement is a dollar amount off, and this allows for a percentage off. If you are locked on to the dollar amount I am sure you could extend the special price calculation logic to allow you to make it a dollar amount off.


Unfortunately Magento does not support this out of the box.

Enterprise Edition has a feature called "Target Rules", but I am not familiar with using that feature so I am not sure if that's the implementation you're looking for (which, of course, requires an upgrade to EE).

Even if there was a clever way to use product attributes to get this kind of thing to work with Catalog Price Rules, I imagine the overhead added to catalog management is going to offset whatever perceived effciency gain you're expecting.

Shopping Cart Price Rules were designed with your situation in mind. The fact that they are applied only once you get to the cart is the inconvenience/undesired aspect for your situation. Since they can also be used to alter price based on other things (like Customer Group), it would be problematic for them to function on the product page and you'd add an order of magnitude more complexity to the already finicky price display templates. You may want to consider which aspect of Magento you want to modify, either the way catalog price rules work, or how the presentation block is used on the product pages.

I am sure there are some third-party modules out there that can accomplish your goal (or a reasonable facsimilie). I would suggest researching those that are available or else coming up with a new method that is supported by Magento to accomplish your goal.

  • ...just an additional thought, you could use freely available promo codes instead. Just display the promo code and discount to the user and have it apply based cart contents.
    – pspahn
    Nov 7, 2013 at 1:01

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.