Written by Giles Bennett
From time to time you might need to create an attribute which isn't linked to a particular product, but instead is linked to a category. A recent example (for me) was creating a block of overlay text to float above the category image.
Create a Category Attribute in Magento
But it's not as simple to create category attributes in Magento as it is to create product attributes - but with a simple script it's not particularly difficult.
<?php require_once('app/Mage.php'); Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID)); $installer = new Mage_Sales_Model_Mysql4_Setup; $attribute = array( 'type' => 'text', 'label'=> 'Your attribute label text', 'input' => 'text', 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL, 'visible' => true, 'required' => false, 'user_defined' => true, 'default' => "", 'group' => "General Information" ); $installer->addAttribute('catalog_category', 'ATTRIBUTECODE', $attribute); $installer->endSetup(); ?>
It should go without saying that the ATTRIBUTECODE in the second to last line should be whatever you want your attribute's code to be.
Save this file as a PHP file, upload it to the web root of your site, hit it in a browser and then look in the admin panel and you should see your new category attribute ready to use at the bottom of the General Information tab.