Magento: Get list of all Categories

Here, I will show you how you can get list of all categories of your Magento Shop.

You might want to display all categories in homepage or any CMS page. There are different ways to get the category listing. Here are some:-

Get all categories

The following code will fetch all categories (both active and inactive) that are present in your Magento Shop.


$categories = Mage::getModel('catalog/category')
					->getCollection()
					->addAttributeToSelect('*');

Get all active categories

The following code will fetch all active categories that are present in your Magento Shop. Thus filtering the inactive categories.


$categories = Mage::getModel('catalog/category')
					->getCollection()
					->addAttributeToSelect('*')
					->addIsActiveFilter();

Get active categories of any particular level

The following code will fetch all active categories of certain/specific level. Here, I have chosen level 1. Also sorting categories by name.


$categories = Mage::getModel('catalog/category')
					->getCollection()
					->addAttributeToSelect('*')
					->addIsActiveFilter()
					->addLevelFilter(1)
					->addOrderField('name');

Get store specific categories

The following code will fetch all active store specific categories. The following helper function does so:-

getStoreCategories($sorted=false, $asCollection=false, $toLoad=true)


$helper = Mage::helper('catalog/category');

// sorted by name, fetched as collection
$categoriesCollection = $helper->getStoreCategories('name', true, false);

// sorted by name, fetched as array
$categoriesArray = $helper->getStoreCategories('name', false, false);

Hope this helps. Thanks.