Quick script to mass enable categories in Magento

Just another easy one if you are looking to enable categories by ID - we usually incorporate this script into our product insertion API, so that it enables a category automatically for a product upon insertion. But it can also be used standalone. This script would be ideal alongside our export Magento category ID script
  • 1
    Create a CSV with a maximum of 1 column, with just the Magento category ID. Then save it to ./app/var/import/categoriesToEnable.csv. For examples sake, we will use,
  • 2
    Copy the code below into a new file, ./quick_enableCats.php
     define('MAGENTO', realpath(dirname(__FILE__)));
     require_once MAGENTO . '/app/Mage.php';
     $file = fopen(MAGENTO . "/var/import/categoriesToEnable.csv", 'r');
     while (($line = fgetcsv($file)) !== FALSE) {
     $cats = explode(",",$line[1]);
     foreach ($cats as $cat) {
     $newcats[$cat] = true;
     // Activate the categories it is in 
     foreach ($newcats as $cat=>$value) {
     if ($value && !empty($cat)) {
     try {
     $_category = Mage::getModel('catalog/category')->load($cat);
     if ($_category->getIsActive() === "0" || !$_category->getIsActive()) {
     echo "<br />Enabled ".$_category->getName();
     } catch(Exception $e) {
     echo " Caught Cat Insert exception: ", $e->getMessage();
  • 3
    Visit the file above in your browser, or via command line. It runs very quickly (approx 500 categories per second), so don't be too surprised if its over quickly!