Home > Magento > Fixing “Catalog Price Rules” cart issue in Magento

Fixing “Catalog Price Rules” cart issue in Magento

June 29th, 2010

After recently upgrading one of my stores running Magento Commerce I found out the the latest version (at this time had a major bug. Don’t want to sound too harsh, but unfortunately Magento’s support was again awful – there have been one thread on the forum and one issue in their bug tracking system for a while now (almost two weeks if not more) and still no update, although as I said the bug has quite an impact – even tweet’ed the problem to @magento and haven’t gotten any reply (again it’s not the first time). Yes, the product is free, yes it’s open source, but I think a bit of transparency and better communication could come to their advantage.

Bug details/behavior

So, updated from to, everything looks fine, catalog price rules are being applied in the catalog (categories and product pages), but when adding the product to the cart the quote item price was the regular price not the special one.


After a few hours playing with the rules, observer and other core elements I found the problem. A big “thank you” goes to “myself” who posted the second comment for the issue mentioned above. The problem was within the CatalogRule Observer, when fetching the ID of the Customer Group. Here’s how to fix it:

1 – create the following folders in your Magento distro: app/code/local/Mage/CatalogRule/Model
2 – copy app/code/core/Mage/CatalogRule/Model/Observer.php to app/code/local/Mage/CatalogRule/Model
3 – open the new/copied file and go to line 105. Change this code:

        if ($observer->hasCustomerGroupId()) {
            $gId = $observer->getEvent()->getCustomerGroupId();
        } elseif ($product->hasCustomerGroupId()) {
            $gId = $product->hasCustomerGroupId();
        } else {
            $gId = Mage::getSingleton('customer/session')->getCustomerGroupId();


        if ($observer->hasCustomerGroupId()) {
            $gId = $observer->getEvent()->getCustomerGroupId();
        } elseif ($product->hasCustomerGroupId()) {
            $gId = $product->getCustomerGroupId();
        } else {
            $gId = Mage::getSingleton('customer/session')->getCustomerGroupId();

To be more precise, you have to change hasCustomerGroupId to getCustomerGroupId on line 105.

You can now enjoy your store again!

  1. Rudra Prakash
    September 7th, 2017 at 16:19 | #1


    I have a issue when i make a catalog rule its works fie for 3 days but after 3 days its stop working.I have checked log nothing showing there.Also i checked admin log no body changed from admin.I am using Enterpise

  2. March 30th, 2013 at 11:52 | #2

    Thanks for solution Crist, it’s really working.

  3. Miguel
    August 22nd, 2012 at 06:06 | #3

    You’r a ROCKSTAR!

  4. Cristi
    April 23rd, 2012 at 10:51 | #4

    As far as I remember, doesn’t have the bug described here. So your problem is somewhere else…

  5. April 22nd, 2012 at 22:10 | #5

    Hi, I’m using version and I’m trying to set a catalog promotion.
    I already reindexed all, and cleaned up cache, bt it’s not working.
    Can this be fixed with what you decribed? thanks.

  6. Paul
    March 13th, 2012 at 19:20 | #6

    Steve did you find a fix / solution to this problem?
    My new site went live the other week and I am always having to re apply the catalogue rules.
    It is really a pain.

  7. Giannis
    February 6th, 2012 at 12:29 | #7

    I have the same problem using 1.6.1 version …

    In catalog list pages, rule is applied, however in the product page rule is lost…

    Any workaround regarding this? really stupid bug…

    It looks like the catalog price index is causing this. You just have to push the “apply rules” button again and then it’s working until the next index.

    A quick hack, won’t be to reapply rules when price index is changing??

  8. Steve
    January 31st, 2012 at 03:12 | #8

    We have the same issue. Running 1.5, and Catalogue Price Rules drop off every 24 hours. We have set up cron jobs, edited cron.php, and attempted to source solutions with absolutely no luck.

  9. Jordi
    January 16th, 2012 at 11:13 | #9

    Hi, I have this problem but I lose the rule in the product view.
    I have applied a 50% discount in all the catalog but, suddenly, once per two days the price in the list is the special one but in the product view I can’t see it!

    I have done your solution but the problem is not fixed!!

  10. January 9th, 2012 at 12:03 | #10

    We found that the catalog price rules in are getting “lost” after some time, meaning they are not applied any more (thoogh the backend is saying they are applied).

    It looks like the catalog price index is causing this. You just have to push the “apply rules” button again and then it’s working until the next index.

    We’ve now set the price index to manual change and will observe it.

  11. Heather
    December 20th, 2011 at 11:18 | #11

    Thank you!

  12. Cristi
    September 6th, 2011 at 11:12 | #12

    Biof & Rikki, as the title of the post says, this patch is only for Mage This has been fixed in 1.4.2. If your cart rules don’t get displayed, you’re probably doing something wrong – also, please note that bundle products and cart rules are quite messy.

  13. Rikki
    September 6th, 2011 at 08:31 | #13

    I’m having the same problem on – the discount just doesn’t get displayed in the checkout review step, where in the cart is says it’s applied fine. Seems to only occur with Specific Coupon promotions.

  14. August 5th, 2011 at 12:20 | #14

    We run the website on Magento,
    and application of catalog price rules are a real nightmare, it is completely random, sometimes we apply the rule ten times and it still doesn’t work, and finally works the day after, sometimes it never works at all, sometimes the price is correct on the product card, but when getting to the checkout, the price comes back to regular!! And finally sometimes, we have a sale rate up to 70% when we applied only 50%.

    Does somebody have the same kind of problem?

  15. Cristi
    June 21st, 2011 at 09:43 | #15 doesn’t have this problem, thus it doesn’t need the fix explained in this post. however, make sure the cronjob is running properly and that the catalog rule is valid – the conditions actually generate a set of products.

  16. Joy
    June 20th, 2011 at 23:30 | #16

    Please HELP!!! I cannot get the discounted prices to display in my shopping cart. I am using version & the code in app/code/core/Mage/CatalogRule/Model/Observer.php is:

    if ($observer->hasCustomerGroupId()) {
    $gId = $observer->getEvent()->getCustomerGroupId();
    } elseif ($product->hasCustomerGroupId()) {
    $gId = $product->getCustomerGroupId();
    } else {
    $gId = Mage::getSingleton(‘customer/session’)->getCustomerGroupId();
    So it should not need changing

  17. May 16th, 2011 at 18:54 | #17

    so far everything looks great at http://www.kerainfusion.com I manually re-applied the catalog prices and are waiting for the next two days window which is the time it take to delete my special prices from the product list….

  18. May 16th, 2011 at 18:52 | #18

    While I wait for two days to confirm whether the issue is fixed I also applied the following suggestion: http://magentoexpert.co.uk/tag/catalog-price-rules/

  19. May 16th, 2011 at 17:51 | #19

    NOPE!!! TWO days after applying the fixes and running the cron the issue is back on Any ideas on how to fix this issue? It was working just fine for months! Perhaps some of the new extensions I installed is creating this issue. The last to install were:
    I will research further…

  20. May 14th, 2011 at 18:26 | #20

    For I found out that this code does not work, but creating a cron to reindex and also another cron to run config.xml solved the issue. Info on how to create a cron to reindex your website can be found at http://www.yireo.com/tutorials/magento/magento-administration/663-magento-14-cronjobs

  21. May 14th, 2011 at 17:23 | #21

    Hello all, thanks for your informative comments. here, and my catalog price is showing ok on the listing page (list or grid) but the detail page shows no special price. Moreover, if I click on “add to cart” either from detail page or from listing page the product is listed in my shopping cart without its special price…I have tried everything even a cron that runs every 8 hours…it works for 24 to 36 hours then special price is losted on the detail page. Thanks for your input.

  22. May 12th, 2011 at 12:14 | #22

    You are awesome. This fixed the stupid thing for me straight away. Magento is really starting to bug me.

  23. jaumepc
    May 9th, 2011 at 15:14 | #23

    thank you! works fine!!

  24. Cristi
    March 24th, 2011 at 14:24 | #24

    Menno, is your cronjob setup properly and running? If it is, then you have a problem.

  25. March 24th, 2011 at 13:41 | #25

    Hi! I think I have the same problem Marc has. I keep resetting the catalog price rules, and it seems to work. But after a while (I have not timed yet) it goes wrong again. The correct prices are displayed, but when a customer adds it to his cart the original price is displayed. So I think Marc is right about this.

    Marc, you mentioned reindexing, what index are we talking about: Product Prices?

  26. Marc
    March 24th, 2011 at 12:58 | #26

    Okee, thanks allot, I will keep an eye on the test I have done and see if it works for at least 3 days lol. Else i will try out the cronjob. Never noticed it was into the root.

    Thanks again for ur time.

    Cheers Marc

  27. Cristi
    March 24th, 2011 at 12:20 | #27

    Well, first of all Magento needs the cron to run every 5 minutes, regardless of the catalog rules. So you DO have to set that up on your server. You can either ask support or do it yourself, the idea is that it has to run every 5 minutes. More about this here: http://www.magentocommerce.com/wiki/groups/227/setting_up_magento_in_cron and here http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/how_to_setup_a_cron_job

    Regarding the “after 3 days it stops working” comments, I honestly don’t take them as general truths. If something works for a day or two, I don’t see any reason why it could fail exactly on the 3rd day – unless you run our of memory, disk space or who knows what else. For instance, I have quite a few Magneto installations, and I never ever had a single problem like this. Ok, catalog rules stopped working on the upgrade, but with the fix in this post everything was back to normal. So, my advice is to setup magento properly, install the cronjon on the server, apply this patch if you’re on, and keep an eye on things. If you experience problems with catalog rules not being applied after midnight, until 1 AM (usually orders that are placed during 12 and 1 AM will have the regular prices and not the discounted/special prices), try changing the line you mentioned in /app/code/core/Mage/CatalogRule/etc/config.xml to 0 0 * * * which would make the cron run at midnight instead of 1 AM.

  28. Marc
    March 24th, 2011 at 11:09 | #28


    Well your solution works, but when i read peoples comments then it seems, after about 3 days, it stops working. Then after reindex it works again. By changing the cronjob this can be fixed?

    I’m expecting no updates for the shop, but what do i need to change the cron into? Im not really into cronjobs.

    On line 150 of config.xml: schedule cron_expr 0 1 * * * /cron_expr /schedule

    Or do i need to set the cronjob on the server by using Direct Admin?
    If so, exactly how do I need to do this?

  29. Cristi
    March 23rd, 2011 at 17:18 | #29

    not sure I really understand the question, but yes, you can change the cron schedule in that file. the only inconvenience would be that it might get overwritten on the next upgrade, so you might want to add the same structure to one of your own local extensions:
    crontab / jobs / catalogrule_apply_all / schedule / cron_expr = 0 1 * * * Haven’t tested this but it should overwrite the settings in /app/code/core/Mage/CatalogRule/etc/config.xml

  30. Marc
    March 23rd, 2011 at 14:59 | #30


    Hi Cristi,

    To avoid the “after a couple of days set back wrong again”, how do i have to set my cron? Can it be changed into the /app/code/core/Mage/CatalogRule/etc/config.xml file?

    0 1 * * *

  31. March 16th, 2011 at 21:46 | #31

    Thanks that fixed my checkout problem!
    I’ve got a similar problem (related problem?) where the price rule price shows up fine in the product page and the checkout (now) but in the list page (or category page) it only shows regular price (or with a sale price if one is set for that product).

  32. March 16th, 2011 at 11:56 | #32

    Thanks Cristi for this bugfix! It works fine

  33. Marcel
    March 7th, 2011 at 16:06 | #33

    I think you shoud ask your hosting if mod_security is enabled on your server, also check error_log for what kind of error you get

  34. Cristi
    March 2nd, 2011 at 23:17 | #34

    Mark, that never happened to me and I think I’ve got 2 or 3 1.4.2’s. try a fresh install of magento 1.4.2 to test this. if it persist, it might a problem with their interface/javascripts. however, i really doubt that.

  35. March 2nd, 2011 at 14:28 | #35


    I know this isnt the same issue but as its in the same area I thought you may have come across it, basically when I try to add shopping cart price rules in the backend, I get as far as adding conditions but then it always kicks me back to the dashboard when I try selecting the condition. This happens in IE, FF and Safari. Im on V1.4.2

    Have you come across this issue and do you have any suggestions?


  36. February 26th, 2011 at 07:13 | #36

    Okay, I found the issue. In the upgrade from to the shopping cart price rule adds a new dropdown box for selecting No Coupoon or Specific Coupon. This was missing from the admin page, so any coupon added was defaulting to No Coupon. So any coupon code entered was applied to all orders.

    If you have this issue go to \app\code\core\Mage\Adminhtml\Block\Promo\Quote\Edit\Tab\Main.php insert this about line 166 before the –

    $fieldset->addField(’coupon_code’, ‘text’, array(

    $fieldset->addField(’coupon_type’, ‘select’, array(
    ‘name’ => ‘coupon_type’,
    ‘label’ => Mage::helper(’salesrule’)->__(’Coupon’),
    ‘required’ => true,
    ‘options’ => Mage::getModel(’salesrule/rule’)->getCouponTypes(),

  37. February 22nd, 2011 at 18:10 | #37

    Perfect! Thanks!

  38. Attila F.
    February 15th, 2011 at 12:21 | #38


    It’s is working on my site!
    Magento ver.

    Thank you;)

    You saved me many time!


  39. February 10th, 2011 at 00:06 | #39

    Excellent, thank you!

  40. Cristi
    February 7th, 2011 at 09:42 | #40

    Adam, if I remember correctly there was a problem with Logged in/Non-logged in users and catalog price rules. Not sure if I’m right, but I think the non-logged in group ID was 0 and that was not being tested properly somewhere in the code – there was a !condition, instead of checking for null or false, which made !0 to evaluate as true as well – or something like that 🙂

  41. February 6th, 2011 at 15:16 | #41

    I think I may have found a bit of a ‘hacky’ solution to this in your local observer.php file, find line 118 and replace…



    With this:

    // Check if the user is logged in before applying discount
    $session = Mage::getSingleton(‘customer/session’, array(‘name’=>’frontend’));
    if ($session->isLoggedIn()) {

    It’s just an if statement which will only apply all rules to only logged in customers. I guess it’s only ok if you don’t care about adding any other catalog price rules.

  42. February 6th, 2011 at 14:48 | #42

    I’m also having a nightmare with this, but my requirement is even simpler:

    I want 10% discount on a few products when a customer is logged in. When I set it in the admin to ‘Logged In’ it doesn’t work. Then if I select ‘General’ and ‘Logged In’ the discount works, but it also works for those not logged in.

    I think there’s probably an issue somewhere in the code which isn’t checking for logged in customers properly.

    I’ve also noticed inconsistencies between the catalog prices and the shopping cart prices on the frontend. Any ideas?

  43. Cristi
    January 26th, 2011 at 23:35 | #43

    Hey Santanu, what you described sounds very weird and I don’t have a fix since I can’t replicate it. So here what I would do:
    * try disabling the cache and see if it’s not actually a caching problem
    * same thing if you use flat catalog
    * disable all custom & community extensions, ideally one by one, and see if this bug isn’t caused by that
    if none of the above helps, try following the getPrice thread – check the code and see why the special price is not being applied. good luck!

  44. January 26th, 2011 at 21:59 | #44

    Hello Cristi, I googled to your thread since I am facing a strange problem. I am running a book-store on Magento and faced the usual problems with the catalog price rules (including what you described) but after lot of digging through the forums, and setting up the cron and modifying the config.xml, the rules are working properly i.e they do not disappear after 2/3 days, quote price=special price in the cart etc. BUT the issue, I face now, is that when a customer buys a product, strangely the front catalog price starts showing the REGULAR price again !! when i check the price in the cart, it displays the discounted price (10% off) !! I have to manually save&apply the rule again to get back front price to special price. sorry for such a long one…just thought to share this and hoping for a fix.
    Cheers, Santanu

  45. Channing
    January 23rd, 2011 at 11:33 | #45

    I have the same problem as Sarah…
    “I did as instructed and it worked. However now it is not working again.” Any ideas?

    A cronjob is running every 5 minutes accessing cron.php… But no luck so far…

  46. Heather
    January 13th, 2011 at 21:24 | #46

    Thank you for this fix! I’ve been trying to fix this for a week and finally found your instructions. No more hate mail from my customers thinking we are trying to scam them!!! Thank you, Thank you, Thank you!!!!

  47. Cristi
    January 12th, 2011 at 14:11 | #47

    I bet there’s something in this comments thread that might come in handy so check it out

  48. sarah
    January 12th, 2011 at 13:16 | #48

    I did as instructed and it worked. However now it is not working again. Any ideas?

  49. January 2nd, 2011 at 17:26 | #49

    Thank you so much, this was driving me crazy. I have clients running magento 1.3 still just because each release that is “stable” is so fricken inconsitent and untested it is very frustrating.

    You saved me hours of work messing with it. Thank you!!!

  50. Michael V
    December 30th, 2010 at 13:39 | #50

    I was beaking my balls on this one. Thank you so much.

    Best regards

  51. channing
    December 8th, 2010 at 19:27 | #51

    THANK YOU VERY MUCH !!!!!!!!!!
    I use and your method fixed the problem !

  52. marcio
    December 6th, 2010 at 18:01 | #52

    not work in

  53. Phillip
    November 18th, 2010 at 03:00 | #53

    You are the man, my friend.

  54. Knade
    November 17th, 2010 at 11:27 | #54

    Anyone else having any issue with Catalog price rules when applied to a category not working? Im on

    If I try to add a 50% discount it doesn’t do it at all. I’ve experience setting up other rules on other sites.

  55. Pratham
    October 30th, 2010 at 06:57 | #55

    Hi ,

    This works for me also. Thank you very much for this solution. You saved me at key point.

  56. Benjamin Heckler
    October 13th, 2010 at 23:25 | #56

    Thanks man, you saved me a heap of time and stress here.

  57. October 13th, 2010 at 03:43 | #57

    Thank you! Was having same issue on – problem now solved with your fix 🙂

  58. Nicolas
    October 5th, 2010 at 00:06 | #58


    I’m having a similar issue to the one you posted. For some reason, I don’t seem to be able to add Payment Method as a rule in the shopping cart rules. It just freezes and sends me back to the main dashboard, without so much as an error log.

    Cart rules are working otherwise fine on my installation. If you run into any solution for this issue, let me know!

  59. Cristi
    September 29th, 2010 at 20:17 | #59

    this fix has nothing to do with logged in customers or multiple groups or anything else. it’s just about a typo in the code, preventing the rule to be applied in the cart. make sure to read the details/behavior section of the post.

    for not logged in users, there might be something wrong with the condition, as not logged in user id is null (i think). i remember checking this one too, as I saw the bug several times on the forums, but I couldn’t find anything in the code – and also I haven’t run into it. yet.

  60. David
    September 29th, 2010 at 19:08 | #60

    Has nothing to do with “NOT LOGGED IN” users. It only happens if I select more than one usergroup! Seems to have to do with payment method selecting in the rule…
    Anyway. I could “solve” it temporarily by creating one cart rule for every user group.
    Definitly annoying though…

  61. David
    September 29th, 2010 at 18:57 | #61

    problem still exists:
    For Magento, cart price rule like “10% off on payment method XY”. It works for logged in users, but not for “NOT LOGGED IN” users…
    Applied the described fix, nothing changed.

  62. Costa
    September 24th, 2010 at 08:06 | #62

    Thanks so much, you rock Cristi

  63. Cristi
    September 16th, 2010 at 11:01 | #63

    Cron jobs are required if you want your store to work properly. It sends newsletters, generates sitemaps, indexes stuff, reapplies catalog rules and probably more that I’m missing now. Indeed there’s no indication of catalogrule_apply_all in the crons tables. However, you can see it in Mage/CatalogRule/etc/config.xml:
    <schedule><cron_expr>0 1 * * *</cron_expr></schedule>

  64. pavel.polyakov
    September 16th, 2010 at 10:08 | #64

    How I can check that shopping cart price rules are influenced by CRON ?

    Today I got the same ‘it works yesterday, but stopped working today’ error. So I read that I need to configurate CRON job for my magento. I did it. But I don’t see any shopping price rules connected tasks in my cron_schedule table.

    The only thing I see there is something about mails.

    So how I can be sure that it would help me? Or maybe I need to do some additional steps to put this thing on the CRON?

  65. September 14th, 2010 at 17:11 | #65

    Exact same thing with me. A couple of days fine, then it breaks. I hide the original price so they are really confused!

  66. Ilse
    September 9th, 2010 at 21:03 | #66

    Hello Cristi, I almost forgot to answer (shame on me…)
    Thanks for the help! In the end it was a cron problem. The reset to former prices happened at 12pm, the recalculation was set at 1am as default, but 1am was in my system 2 hours earlier – so at 11pm.
    I noticed it by the datestamp in the database for the cronjobs. I have it running every hour now, and it is working fine…

  67. vaviv
    September 6th, 2010 at 13:38 | #67

    i use Magento ver. and i have a problem with a shopping cart price rule.
    1.i make a rule name for single client with discount 10% off with some coupon code.
    2.in a first step in checkout page everything is look good (the prices and the discount)
    3. In the last step of checkout page (payment page) the discount is not there
    4. When i’m going to admin area i see this rule name is inactive…..

    Any idea?

  68. Vince
    September 2nd, 2010 at 16:34 | #68

    Wow..Cristi and Simon Lagendijk….thanks for you’re comments and great fix! I send you nothing but good vibes and good things to come for you guys! Made my day!

  69. September 2nd, 2010 at 11:01 | #69

    Great work. The fix works fine for me!

  70. Cristi
    August 27th, 2010 at 16:59 | #70

    Have you properly setup a cronjob for magento?

  71. Peter
    August 27th, 2010 at 14:44 | #71

    Thanks, this solution works perfect…. But we i use catalogue pricerules, these rules Will be applied for à sort thime. When applied à rule everything is Oké, but after à few days cart is not showing correct prices anymore. When we noticed this, and apply THE rule again everything is fine ….. For à short time…. Does anyone have à solution for this?

  72. August 26th, 2010 at 15:35 | #72

    Hi, I can only say TTHHHAAANNNKKK YOU

  73. henrik
    August 26th, 2010 at 15:15 | #73

    Thank you so much.

    Great work!

    Best Regards

  74. Cristi
    August 14th, 2010 at 13:02 | #74

    My first thought is that your conditions are wrong. Try a simple rule like if sku equals some sku of your product, offer 10% discount. save it, go to the frontend, add that product in the cart and check to see if it’s applied. It should be, but if it’s not, make sure you don’t have any extensions overwriting Shopping Cart rules.

  75. August 14th, 2010 at 10:56 | #75

    I am having problems with Shopping Cart Price Rules, specifically using conditions. I am trying to apply a simple conditional rule and it doesn’t seem to pick up. I tested a coupon code and that actually worked. However, using only conditionals didn’t work at all. I am using and any help would be much appreciated. Thanks!

  76. Andrew
    August 11th, 2010 at 20:30 | #76

    This works in also. Thanks!

  77. August 11th, 2010 at 14:02 | #77

    Thanks for the fix! Just started offering fixed discounts to some of my clients and found this error. Everything’s back on track now.

  78. Cristi
    August 9th, 2010 at 12:21 | #78

    Ilse, your problem might actually consist of several issues. Make sure you check the following:
    – cron is scheduled and running correctly
    – re-index everything
    – refresh all cache
    – if you are using use the patch described in this post.

    I had no problems with, so you should also check to see if you have any extensions that modify catalog rules or shopping cart rules – if you do, disable them for the moment, and test the store again. If there are no extensions, try a clean install on a staging environment and try to replicate the issue (adding minimal data to the store).

    Good luck!

  79. August 8th, 2010 at 11:46 | #79

    I don’t understand why the prices are showing correctly in the catalogue, but not in the shopping cart. Ant today I noticed that (apparently sometimes) the correct price is showing in the catalogue, but not in the product view and the shopping cart…
    After applying the rules again, everything is working fine…
    I don’t think this is a cron problem, is it?

  80. August 6th, 2010 at 15:03 | #80

    Hello Cristi, I have this problem too in
    I created some catalogue price rules, and they are showing fine in the catalogue. But then suddenly (and this is not daily) when adding such a discounted product to the shopping cart, it is showing the old price…
    When I go back and re-apply my price rules, it works fine again.
    I noticed this by examining google analytics and searching for products that were added to shopping cart but not bought…
    I’m losing customers with this problem – very annoying.
    Can you help me out?

  81. July 21st, 2010 at 09:09 | #81

    Let me get into both ‘might be’ solutions 🙂 Otherwise I seriously have to think about upgrading to 1.4.1 or even better, a fresh install of the newest version.

    I’ll get back to you 🙂


  82. Cristi
    July 21st, 2010 at 09:05 | #82

    OK, I see what you mean. Have you tried to replicate the same problem to simple products (or any other type of products)? If this problem only applies to bundles, it might be a problem with that type of products, not with catalog rules.

    Another way to test it would be to open Observer.php and see what print_r shows for $product and $product->getSpecialPrice(). Everything related to catalog rules happens in that file – if the corresponding method is not triggered, there’s a problem with attaching the observer to the correct event or the event is not triggered at all.

    Another problem I found on the forums was with member groups – sometimes catalog price rules were not applied to “Not logged in” customers, but I wasn’t able to replicate it on my installation.

    Hope this helps…

  83. July 20th, 2010 at 20:44 | #83


    Hi chris, thanks 4 the reply and sorry mine is late.

    My problem is this:

    When I create a bundle product, fi:

    product A = $ 10
    product B = $ 20

    Together I give bundle discount of 10%.

    So a little math tells us: 10 + 20 = 30 – 10% (3) = 27.

    This GOOD price will show up in the detailed page but when a customer adds the bundled product to his cart Magento will charge the normal 30 instead of the discounted bundle price 🙁

    Hope you get my point.

  84. Sue
    July 17th, 2010 at 07:23 | #84

    i would like to reproduce this error.

    I would like to use “special Price” as “Per Month” price and but have magento add the “regular price” to the cart.

    however, i’m using magento and in the file there is only this;

    “if ($observer->hasCustomerGroupId()) {
    $gId = $observer->getEvent()->getCustomerGroupId();
    } else {
    $gId = Mage::getSingleton(‘customer/session’)->getCustomerGroupId();

    how can i reproduce this error, i tried cutting and pasting the original code you mention but it did not work.

    thank you

  85. July 15th, 2010 at 15:40 | #85

    T H A N K Y O U ! ! ! ! !

    My site is B2B with loads of discount rules and this has saved the day!

  86. harkman
    July 1st, 2010 at 17:24 | #86

    Thank you very much for your research and the fix.

  87. Cristi
    June 30th, 2010 at 15:45 | #87

    Yes, is different and everything should work fine on that version. Could you describe your problem? Is it the same as this one? Maybe your cron doesn’t work and rules aren’t applied, maybe you have another rule overwriting this rule, maybe some custom code… I do have other (and 1.3.x.x) stores and they seem to be working fine.

  88. June 30th, 2010 at 15:22 | #88


    I have tried it but guess what… I am still using Magento and there is no such exact code in Observer.php so I can’t change it 🙂

    My problerm remains. I guess the file has been rewritten in version 1.4.1.

    To bad because I’m to affraid to upgrade 🙁

  89. fifaking
    June 30th, 2010 at 05:28 | #89

    Thanks alot! ! you save my life~

  90. June 29th, 2010 at 14:51 | #90

    If this works you’re realy da MAAAAAN 🙂

  91. Simon Lagendijk
    June 29th, 2010 at 14:42 | #91

    Thanks for your fix. I came across the same issue.

    There’s a little problem with your fix. Price rules for the group “NOT LOGGED IN” are not working. If you change line 105 to the following, everything works as it should be:

    $gId = Mage::getSingleton(‘customer/session’)->getCustomerGroupId();

    You can also comment out the second elseif part:

    if ($observer->hasCustomerGroupId()) {
    $gId = $observer->getEvent()->getCustomerGroupId();
    //} elseif ($product->hasCustomerGroupId()) {
    // $gId = $product->getCustomerGroupId();
    } else {
    $gId = Mage::getSingleton(‘customer/session’)->getCustomerGroupId();

  1. No trackbacks yet.