Adicionar coluna a Admin> Vendas> Grade de pedidos

Respostas:

20

Inchoo escreveu um ótimo artigo sobre a extensão da grade de pedidos. E no blog Atwix, há um artigo sobre como adicionar uma coluna de uma tabela diferente.

A postagem do blog Inchoo basicamente o estende com uma extensão personalizada. Caso você não esteja familiarizado com a criação de sua própria extensão, sugiro que você faça uma pilhagem no tutorial de Alan Storms ou no Magento 4U .

Você reescreverá a Mage_Adminhtml_Order_Gridclasse de bloco, adicionando uma coluna ao _prepareColumnsmétodo e estendendo o _prepareCollectionmétodo com seu campo personalizado

Sander Mangel
fonte
7

É um processo simples de 2 etapas. (por exemplo, quero adicionar o endereço de e-mail e a cidade do pedido nessa grade de pedidos).
Copie esse arquivo principal para o seu local primeiro no mesmo diretório. app / code / core / Mage / Adminhtml / Block / Sales / Order / Grid.php

Etapa 1: adicione a seguinte linha de código na função _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'
    ));

Etapa 2: adicione a seguinte linha de código na função _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'));

A consulta geral será como:

SELECT main_table. * sales_flat_order_address,. emailAS customer_email, sales_flat_order_address. cityFROM sales_flat_order_gridAS main_tableINNER JOIN sales_flat_order_addressON main_table.entity_id = sales_flat_order_address.parent_id WHERE (sales_flat_order_address.address_type = 'cobrança')

Modifique o código de acordo com sua necessidade.
Espero que ajude.

Abhilash
fonte
1

Reescrições são tão ontem;)

Você pode fazer isso usando eventos. Veja uma resposta anterior aqui:

Adicionar coluna Empresa à grade de administração de clientes com o Observer

que também inclui uma maneira de ajustar os filtros.

Você só precisa ajustar a grade que você está alvejando no primeiro bit de código:

if ($event->getBlock() instanceof
                Mage_Adminhtml_Block_Newsletter_Subscriber_Grid 
            ) {
ProxiBlue
fonte