Como añadir un atributo en una categoría en Magento


Notice: Undefined variable: post in /furanet/sites/diegomestre.com/web/htdocs/wp-content/themes/docpress/functions.php on line 294

Notice: Trying to get property of non-object in /furanet/sites/diegomestre.com/web/htdocs/wp-content/themes/docpress/functions.php on line 294

Como añadir un atributo en una categoría en Magento

Bien,

Voy a explicar un problema con el que nos podemos tener que enfrentar ocasionalmente al trabajar con Magento. Y es la necesidad de crear un atributo en un lugar diferente al producto. Para crear un atributo a un producto lo haremos tranquilamente desde el propio administrador de Magento, con lo cual no necesitamos acceder al código ni a la base de datos en ningún momento.

Pero si esto mismo lo queremos hacer en una categoría o en un cliente, la cosa cambia, al no estar el administrador preparado para ello. Magento utiliza el sistema EAV (Entidad – Atributo – Valor), lo cual facilita la creación de atributos, al no tener que crear nuevas tablas para él, con el engorro de conocer todas las relaciones entre tablas que ello implica. Si conoces el sistema EAV, no te costará trabajo entrar a la base de datos y crear ahí el atributo.

Si no conoces el EAV, o no te apetece entrar a manosear la base de datos, lo cual es bastante razonable, puedes hacerlo muy fácilmente simplemente usando este fragmento de código. Yo voy a tratarlo aquí para ejecutarlo desde un php “a pelo”, aunque fácilmente podrás implementarlo en tu módulo, o en el sitio que te convenga

require_once 'app/Mage.php';
Mage::app(); 

$setup = new Mage_Eav_Model_Entity_Setup('core_setup');

$setup->addAttribute('catalog_category', 'miatributo', array(
'group'         => 'General Information',
'input'         => 'text',
'type'          => 'varchar',
'label'         => 'Mi atributo',
'backend'       => '',
'visible'       => 1,
'required'      => 0,
'user_defined' => 1,
'global'        => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
));

Si ya has trabajado con Magento, todo te resultará muy familiar y sólo con esto ya serás capaz de implementarlo y si no aquí te explico cuatro cositas para que te aclares:

Las líneas 1 y 2 simplemente cargan las clases de Magento para poder trabajar con ellas
Línea 4, instancia la clase que necesitamos
Línea 6, utiliza el método addAttribute, el primer parámetro es el tipo de atributo, el segundo el identificadoar (código del atributo) y el tercer parámetro pasa en un array los valores necesarios para el atributo, grupo, tipo de input, tipo de valor, etiqueta del valor, si es visible, si es obligatorio para la categoría, etc…

¿Fácil no?

Si no te aclaras coméntame aquí y trataré de ayudarte

Escribe tu comentario

comentarios

Comments

  1. Hi! I’ve been reading your blog for a long time now and finally got the bravery to go ahead and give you a shout out from Kingwood Texas! Just wanted to tell you keep up the great job!

  2. en que directorio guardo esto?

    • Hola Miguel,

      No has de guardarlo en un directorio, es un archivo php que simplemente ejecutas y esa llamada a addAttribute creará tu atributo.

      Simplemente fíjate en la línea 1 que hace una llamada a app/Mage.php, esto es una llamada desde el raíz. O sea sube tu php al raíz y ejecútalo ahí, o bien a una carpeta corrigiendon esta llamada en la línea 1

      Espero haberte ayudado amigo

Speak Your Mind

*