Magento : Ajouter un attribut produit via un module

Cet article est assez ancien, malgré toute l'attention que j' apporte à mes contenus il est possible que celui-ci ne soit plus d'actualité.
N'hésitez pas à me le signaler si nécessaire via le formulaire de contact.

Petit script pratique aujourd’hui pour ajouter rapidement un attribut produit via un module personnalisé.
Dans notre cas nous allons également créer un groupe d’attribut spécifique qui sera ajouté à tous les jeux d’attributs produits.
Puis pour finir nous ajouterons l’attribut directement dans ce groupe d’attributs.

Le code suivant est à placer dans le fichier d’install ou d’upgrade de votre module.

 

$installer = $this;
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
$installer->startSetup();
 
/**
 * Création du nouvel Attribut produit "product_picto"
 * Creation of the new product attribute "product_picto"
 */
$setup->addAttribute('catalog_product', 'product_picto', array(
    'label' => 'product_picto',
    'type' => 'varchar',
    'input' => 'select',
    'backend' => '',
    'frontend' => '',
    'global' => 0,
    'visible' => true,
    'required' => false,
    'user_defined' => 1,
    'option' => array(
        'value' => array(
            'none' => array('none'),
            'exclu-web' => array('exclu-web'),
            'nouveaute' => array('nouveaute'),
            'top-ventes' => array('top-ventes'),
        )
    ),
    'used_in_product_listing' => 1,
    'default' => 'none',
));
 
 
/**
 * Création d'un groupe d'attribut "V2" et ajout du nouvel attribut "product_picto" dans ce groupe pour tous les jeux d'attributs
 * Creation of an attribute group "V2" and add of the new attribute "product_picto" in this attribute group  for all attributes sets
 */
$attributesSetIds = $setup->getAllAttributeSetIds('catalog_product');
 
foreach ($attributesSetIds as $attributesSetId) {
 
    $setup->addAttributeGroup('catalog_product', $attributesSetId, 'V2');
    $setup->addAttributeToGroup('catalog_product', $attributesSetId, 'V2', 'product_picto');
 
}
 
$installer->endSetup();

Après l’installation ou la mise à jour de votre module voici le résultat obtenu 🙂

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.