Ajouter une colonne à Admin> Ventes> Grille de commandes


Réponses:


20

Inchoo a écrit un excellent article sur l'extension de la grille de commande. Et sur le blog Atwix, il y a un article sur l'ajout d'une colonne à partir d'un tableau différent.

Le billet de blog Inchoo l'étend essentiellement avec une extension personnalisée. Dans le cas où vous n'êtes pas familier avec l'écriture de votre propre extension, je vous suggère de prendre un butin au didacticiel Alan Storms ou à celui de Magento 4U .

Vous allez réécrire la Mage_Adminhtml_Order_Gridclasse de blocs en ajoutant une colonne à la _prepareColumnsméthode et en étendant la _prepareCollectionméthode avec votre champ personnalisé


7

C'est un processus simple en 2 étapes. (par exemple, je veux ajouter l' adresse e-mail et la ville de commande dans cette grille de commande).
Copiez ce fichier principal dans votre répertoire local dans le même répertoire. app / code / core / Mage / Adminhtml / Block / Sales / Order / Grid.php

Étape 1: ajouter la ligne de code suivante dans la fonction _prepareColumns ()

$this->addColumn('email', array(
        'header'    => Mage::helper('catalog')->__('Customer Email'),
        'index'     => 'email',
        'type' => 'text'
    ));
$this->addColumn('city', array(
        'header'    => Mage::helper('catalog')->__('Order From City'),
        'index'     => 'city',
        'type' => 'text'
    ));

Étape 2: ajouter la ligne de code suivante dans la fonction _prepareCollection ()

$collection->getSelect()->join('sales_flat_order_address', 'main_table.entity_id = sales_flat_order_address.parent_id' ,array('email'=> 'email', 'city'=> 'city' ));
$collection->addFieldToFilter('sales_flat_order_address.address_type', array('eq' => 'billing'));

La requête globale sera comme:

SELECT main_table. *, sales_flat_order_address. emailAS customer_email, sales_flat_order_address. cityDEPUIS sales_flat_order_gridCOMME main_tableINNER JOIN sales_flat_order_addressON main_table.entity_id = sales_flat_order_address.parent_id WHERE (sales_flat_order_address.address_type = 'billing')

Modifiez le code selon vos besoins.
J'espère que cela pourra aider.



En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.