Ajouter une colonne dans la liste des commandes Magento (observer)

amahi

Expert Magento chez S3i Business
Ahmed MAHI, Développeur/ intégrateur Magento depuis 2009 ( 6 ans de bonheur avec Magento :))

Aujourd’hui on va essayer d’ajouter une colonne dans la liste des commandes mais on ne va pas surcharger la classe :


Puisque ce n’est pas recommandée dans Magento : quand une même classe est surchargée par 2 module cela cause un conflit, des fois bien sur on n’a pas le choix, contrairement a notre cas d’aujourd’hui :)
Alors on va utiliser un observer : l’événement qui nous intéresse est

Donc on doit ajouter dans notre fichier config.xml :

Comme vous remarqué ici on a déclaré le nom de la classe et le nom de la méthode à exécuter lorsque l’événement se produit, attaquons donc la méthode ‘ajouter’ de la classe Mahigento_Newcolumn_Model_Grid (Grid.php)

Alors cette fonction va ajouter une colonne ‘Méthode de livraison’ pour voire directement de quel mode de livraison s’agit- il sont avoir besoin d’ouvrir la commande, si on veut ajouter une autre information par exemple le mode de paiement
On va juste modifier la méthode addColumn :

La seul contrainte c’est que cette information doit être déjà dans la collection des commandes.
Si c’est pas le cas par exemple je veux ajouter l’email et le groupe client je doit alors modifier la collection :
Pour cela je vais ajouter la méthode:

et puis :

maintenant pour rendre mes nouvelles colonnes filtrables et tri-ables j’utilise ça :

et pour utiliser cette fonction :

Donc finalement notre class : Mahigento_Newcolumn_Model_Grid devient:

Télécharger les fichiers

6 comments

  1. Bonjour

    Article très intéressant. Cependant je ne suis pas encore très à l’aise avec tout ça, et je n’arrive pas à rajouter une colonne ID du client, pourriez vous m’aiguiller ?

    Merci

    Thomas

    1. Bonjour,
      j’ai oublier une balise dans le fichier config.xml et c’est corrigé pour ajouter l’id client il suffit de changer shipping_description par customer_id dans la methode addColumn(),
      J’ai mit les fichiers du petit module pour téléchargement. (c’est la colonne Id client qui va s’ajouter :) )

  2. Merci pour ce tutorial.

    est ce qu’il y a moyen de choisir le placement du rajout de la colonne, ou au moins de la rajouter à la fin plutôt qu’au début ?

  3. Bonjour,

    Merci pour ce super tuto, tout fonctionne !
    Par contre comment faire pour que TBTEnhanced grid exporte aussi la/les nouvelle(s) colonne(s) ?
    Une idée ?

Leave a Reply to eMageIn Cancel Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">