Muchas veces es necesario ampliar la información que aporta las categerias de magento, por ejemplo con otra descripción u otra imagen.

He visto 2 soluciones:

  • Onsertando un nuevo registro de forma manual directamente en la tablas (eav_attibute, etc…). No es muy recomendable ya que además según el atributo y para que necesitas escribir en varias tablas
  • Haciendo un pequeño componente que usaremos una vez y luego borraremos. El proceso es parecido a el sistema de actulización de atributos que explican en la wiki de Magento. Aquí explicaré como hacerlo y al final dejaré el zip por si se quiere descargar

El módulo lo llamaremos AddAttributeCategory y constará de 3 ficheros. El primero situado en app\code\local\DD\AddAttributeCategory\etc\config.xml que configura el módulo

         <config>
   <modules>
      <DD_AddAttributeCategory>
         <version>0.1.0</version>
      </DD_AddAttributeCategory>
   </modules>
   <global>
      <resources>
         <AddAttributeCategory_setup>
            <setup>
               <module>DD_AddAttributeCategory</module>
               <class>Mage_Catalog_Model_Resource_Eav_Mysql4_Setup</class>
            </setup>
            <connection>
               <use>core_setup</use>
            </connection>
         </AddAttributeCategory_setup>
      </resources>
   </global>
</config>

El siguiente fichero será el cual realiza la acción de añadir el atributo. Está dentro del fichero de instalación situado en app\code\local\DD\AddAttributeCategory\sql\addattributecatalog_setup\mysql4-install-0.1.0.php

 <?php
$installer = $this;
$installer->startSetup();
$installer->addAttribute('catalog_category', 'imagen_destacados', array(
                        'type'              => 'varchar',
                        'backend'           => 'catalog/category_attribute_backend_image',
                        'frontend'          => '',
                        'label'             => 'Imagen Destacados',
                        'input'             => 'image',
                        'class'             => '',
                        'source'            => '',
                        'global'            => 0,
                        'visible'           => 1,
                        'required'          => 0,
                        'user_defined'      => 0,
                        'default'           => '',
                        'searchable'        => 0,
                        'filterable'        => 0,
                        'comparable'        => 0,
                        'visible_on_front'  => 0,
                        'unique'            => 0,
                        'position'          => 1,
                    ));
$installer->endSetup();?>

Finalmente activamos en nuevo módulo en magento mediante el fichero app\etc\modules\DD_AddAttributeCategory.xml

 <config>
    <modules>
        <DD_AddAttributeCategory>
            <active>true</active>
            <codePool>local</codePool>
        </DD_AddAttributeCategory>
    </modules>
</config>

Ya solo queda entrar en el backend y ver que, efectivamente se muestra este nuevo atributo.

Es recomendable una vez ejecutado borrar el módulo ya que en algunos casos vuelve a intentar crear el atributo y produce un error. No olvidar desactivas la cache antes de realizar nada.

Comentar que se pueden añadir atributos nuevos, usando los modelos de Magento o se pueden crear unos propios (p.e combos con valores). Para eso añadiremos el fichero \code\local\DD\AddAttributeCategory\Model\Entity\Attribute\Source\addattributecatalog.php

class DD_AddAttributeCategory_Model_Entity_Attribute_Source_Test extends Mage_Eav_Model_Entity_Attribute_Source_Table
{
    public function getAllOptions()
    {
        return array(
            array(
                'value' => 'none',
                'label' => Mage::helper('adminhtml')->__('Nada')
            ),
            array(
                'value' => 'prueba1',
                'label' => Mage::helper('adminhtml')->__('Prueba 1')
            ),
            array(
                'value' => 'prueba2',
                'label' => Mage::helper('adminhtml')->__('Prueba 2')
            )

        );
    }
}

y finalmente ampliaremos el fichero de configuracion de nuestro modulo app\code\local\DD\AddAttributeCategory\etc\config.xml con

<config>
   <modules>
      <DD_AddAttributeCategory>
         <version>0.1.0</version>
      </DD_AddAttributeCategory>
   </modules>
   <global>
      <resources>
         <AddAttributeCategory_setup>
            <setup>
               <module>DD_AddAttributeCategory</module>
               <class>Mage_Catalog_Model_Resource_Eav_Mysql4_Setup</class>
            </setup>
            <connection>
               <use>core_setup</use>
            </connection>
         </AddAttributeCategory_setup>
      </resources>
<models>
  <addattributecategory>
    <class>DD_AddAttributeCategory_Model</class>
  </addattributecategory>
</models>
    </global>
</config>

Puedes descargarlo pulsando e DD_AddAttributeCategory. El código incluye solo las parte de ejemplo que añade una imagen adicional.