I try to get a collection of Mage::getModel('catalogrule/rule') but when I do Mage::getModel('catalogrule/rule')->getCollection() I have an error because can't call a function of boolean.

I do a if:

if(Mage::getModel('catalogrule/rule')) echo "hello"; else echo "no";

Always say "no".

  • check my answer and tell me what you get? – Divyesh May 11 '18 at 8:20
  • I get nothing, empty value – str_lml May 11 '18 at 8:25

Use below code:

$rules = Mage::getModel('catalogrule/rule')->getCollection()->addFieldToFilter('is_active', 1);

    echo "hello"; 
    echo "no";
  • i get this: Call to a member function getCollection() on boolean – str_lml May 11 '18 at 8:26

Working code:

$catalogrules = Mage::getModel('catalogrule/rule')->getCollection()->addFieldToFilter('is_active', 1);

foreach($catalogrules as $rule){
    echo '<pre>'; 
    echo '</pre>';

   echo "hello"; 
   echo "no"; 

You will get all active catalogPrice rules with rules data.


First, try have you got class?

 echo get_class(Mage::getModel('catalogrule/rule'));die;

if you got empty value your module is inactive.

Please, active your Module:-


is your module


is <active>true</active> ?


System > Configuration > Advanced > Disable modules output

Check your module is active?

  • I can't call the method getCollection because when I call to Mage::getModel('catalogrule/rule') return false. – str_lml May 11 '18 at 8:07
  • But is a core module no?. How can i active this module? – str_lml May 11 '18 at 8:31
  • i just update my answer, please check @str_lml – Divyesh May 11 '18 at 8:37
  • Yes, I have all modules active. I have 3 environments, Production, Quality and Local. In production and local i can use Mage::getModel('catalogrule/rule') but in Quality i can't – str_lml May 11 '18 at 9:05
  • Yes, I have in the file Mage_All.xml the Mage_CatalogRule active – str_lml May 11 '18 at 11:15

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.