Come posso aggiungere una colonna alla griglia nella sezione Amministratore in Vendite> Ordini?

Come posso aggiungere una colonna alla griglia nella sezione Amministratore in Vendite> Ordini?

Risposte:
Inchoo ha scritto un ottimo articolo sull'estensione della griglia degli ordini. E sul blog Atwix c'è un articolo sull'aggiunta di una colonna da una tabella diversa.
Il post sul blog di Inchoo lo estende sostanzialmente con un'estensione personalizzata. Nel caso in cui non si abbia familiarità con la scrittura della propria estensione, suggerirei di fare un bottino nel tutorial di Alan Storms o in quello di Magento 4U .
Riscrivi la Mage_Adminhtml_Order_Gridclasse di blocco aggiungendo una colonna al _prepareColumnsmetodo ed estendendo il _prepareCollectionmetodo con il tuo campo personalizzato
È un processo semplice in 2 passaggi. (per es. voglio aggiungere indirizzo e-mail e la città dell'ordine in questa griglia degli ordini).
Copia questo file principale nel tuo locale prima nella stessa directory. app / code / core / Mage / Adminhtml / block / vendite / ordine / Grid.php
Passaggio 1: aggiungere la seguente riga di codice nella funzione _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'
));
Passaggio 2: aggiungere la seguente riga di codice nella funzione _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 query generale sarà come:
SELEZIONE main_table. *, sales_flat_order_address. emailAS customer_email, sales_flat_order_address. cityA PARTIRE DALsales_flat_order_grid COME main_tableINTERNO ISCRIVITI sales_flat_order_addressSU main_table.entity_id = sales_flat_order_address.parent_id DOVE (sales_flat_order_address.address_type = 'fatturazione')
Modifica il codice in base alle tue necessità.
Spero che sia d'aiuto.
Puoi usare la mia risposta da un post precedente su Aggiungi colonna a una griglia (osservatore) - Colonna 'store_id' in cui la clausola è un problema ambiguo per aggiungere colonne aggiuntive alla griglia dell'ordine di vendita attraverso un osservatore.
Le riscritture sono così ieri;)
Puoi farlo usando gli eventi. Vedi una risposta precedente qui:
Aggiungi la colonna Azienda alla griglia di amministrazione dei clienti con Observer
che include anche un modo per regolare i filtri.
Devi semplicemente regolare la griglia di destinazione nel primo bit di codice:
if ($event->getBlock() instanceof
Mage_Adminhtml_Block_Newsletter_Subscriber_Grid
) {