Just to supplement another post we made on bulk creating categories, below is a script used for bulk updating and attaching images to categories based on a specific CSV.
There is no documentation to go with this code, I’m simply posting it because a subscriber has requested it.
<?php define('MAGENTO', realpath(dirname(__FILE__)."/..")); require_once MAGENTO . '/app/Mage.php'; umask(0); Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); $write = Mage::getSingleton('core/resource')->getConnection('core_write'); $count = 0; $headers = array(); $file = fopen(MAGENTO . '/var/import/importcats.csv', 'r'); $_category = Mage::getSingleton('catalog/category'); while (($line = fgetcsv($file)) !== FALSE) { $count++; // First header row if ($count == 1) { foreach ($line as $id=>$col) $headers[$col] = $id; continue; } $_category->load($line[$headers['ID']]); $_category->setMetaTitle($line[$headers['meta_title']]); $_category->setMetaDescription($line[$headers['meta_description']]); $_category->setDescription($line[$headers['additional_description']]); $_category->setUrlKey($line[$headers['url_key']]); $sql = "INSERT INTO catalog_category_entity_varchar (entity_type_id, attribute_id, store_id, entity_id, value) VALUES (9, 113, 0, ".$line[$headers['ID']].", '".$line[$headers['image']]."') ON DUPLICATE KEY UPDATE value = '".$line[$headers['image']]."'; "; $write->query($sql); $src = '../media/import/cat_imgs/'.$line[$headers['image']]; $dest = '../media/catalog/category/'.$line[$headers['image']]; copy($src, $dest); $_category->save(); echo "Completed ".$line[$headers['name']]."<br />"; }