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_Grid
classe di blocco aggiungendo una colonna al _prepareColumns
metodo ed estendendo il _prepareCollection
metodo 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
. email
AS customer_email
, sales_flat_order_address
. city
A PARTIRE DALsales_flat_order_grid
COME main_table
INTERNO ISCRIVITI sales_flat_order_address
SU 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
) {