grid

Magento : Ajouter des actions de masse à la grid des promotions panier

Par défaut la grid d’administration des promotions panier ne permets pas d’exécuter d’actions de masses.
Dans le cas de désactivation multiples il est donc nécessaire de passer sur chaque règle pour la désactiver via l’administration ( ou de créer un script ), ce qui est relativement long et fastidieux

Pour optimiser cela voici comment rajouter des actions de masses à cette liste sans surcharge.
( Cette méthode est valide pour toutes les grids existantes et ne comportant pas d’actions de masse )

Nous allons pour cela créer un nouveau module, dans mon exemple je vais l’appeler Hhennes_Test.
( Je ne détaille pas la création totale du module mais uniquement les points spécifiques à la problématique )

Pour mettre nos actions de masse nous allons utiliser l’observer : adminhtml_block_html_before
Il faut donc mettre les lignes suivantes dans le fichier config.xml de notre module

<adminhtml>
        <events>
            <adminhtml_block_html_before>
                <observers>
                    <hhennes_test_add_massaction_promo_grid>
                        <type>singleton</type>
                        <class>hhennes_test/observer</class>
                        <method>addMassActionPromoGrid</method>
                    </hhennes_test_add_massaction_promo_grid>
                </observers>
            </adminhtml_block_html_before>
        </events>
    </adminhtml>

Dans l’événement nous appelons la fonction addMassActionPromoGrid du modèle hhennes_test/observer

Voici donc le code à mettre dans ce fichier Hhennes_Test/Model/Observer.php…

Magento : Ajouter des actions de masse à la grid des promotions panier Lire la suite »

Magento : Ajouter un attribut personnalisé à la grid des produits via les observers

Vous avez forcément sur votre boutique Magento, des attributs produits spécifiques à votre site.
Si vous souhaitez les afficher dans la grid des produits, et pouvoir filtrer les produits via cet attribut, voici comment procéder.

Le méthode la plus propre est de passer par les observers de Magento, ceci évitera de créer des surcharges pouvant entrainer des problèmes de compatibilités.
Je passe volontairement toute la partie liée à la création du module pour se concentrer uniquement sur la partie spécifique à l’affichage de l’attribut dans la grid.

Pour que notre modification fonctionne, le module va se greffer sur les événements suivants :

  • core_block_abstract_to_html_before : Pour afficher l’attribut dans la grid des produits
  • eav_collection_abstract_load_before : Pour charger les valeurs de l’attribut dans la collection des produits

Voici donc les données  à faire figurer dans le fichier de configuration config.xml de votre module :
Veuillez à bien remplacer le nom du modèle ( hhennes_productgridfilter ) par le nom de votre module

<adminhtml>
        <events>
            <core_block_abstract_to_html_before>
                <observers>
                   <product_filter_reference>
                        <class>hhennes_productgridfilter/observer</class>
                        <method>onBlockHtmlBefore</method>
                    </product_filter_reference>
                </observers>
            </core_block_abstract_to_html_before>
            <eav_collection_abstract_load_before>
                <observers>
                    <product_filter_reference_load>
                        <class>hhennes_productgridfilter/observer</class>
                        <method>onEavLoadBefore</method>
                    </product_filter_reference_load>
                </observers>
            </eav_collection_abstract_load_before>
        </events>
  </adminhtml>

Passons à présent à l’édition de l’observer du module qui sera situé dans modulename/Model/Observer.php

Magento : Ajouter un attribut personnalisé à la grid des produits via les observers Lire la suite »

Magento 1.4.1.1 : Corriger grid des emails transactionnels

Par défaut dans la version 1.4.1.1 de Magento, la grid d’affichage des emails transactionnels ne fonctionne pas.
Les paramètres ne sont pas mémorisés ce qui est relativement gênant lorsqu’on doit chercher des emails à modifier.

Voici donc comment corriger cela rapidement.

En consultant le fichier de la grid app/code/core/Mage/AdminHtlml/Block/System/Email/Template/Grid.php,

j’ai constaté qu’il manquait la fonction  __construct() de la classe dans laquelle l’identifiant de la grid est déterminé, ainsi que la sauvegarde des paramètres de sessions.

Pour faire cela proprement il faut donc copier ce fichier à l’emplacement suivant  : app/code/local/Mage/AdminHtlml/Block/System/Email/Template/Grid.php.

Et rajouter en première fonction du fichier le code suivant :

//Rajout de la fonction construct pour conserver les paramètres des emails lors d'une recherche
public function __construct() {
parent::__construct();
$this->setId('EmailGrid');
$this->setSaveParametersInSession(true);
}

La grid des emails sera bien fonctionnelle après ce changement.…

Magento 1.4.1.1 : Corriger grid des emails transactionnels Lire la suite »