Como posso adicionar uma coluna à grade na seção Admin em Vendas> Pedidos?
Como posso adicionar uma coluna à grade na seção Admin em Vendas> Pedidos?
Respostas:
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_Grid
classe de bloco, adicionando uma coluna ao _prepareColumns
método e estendendo o _prepareCollection
método com seu campo personalizado
É 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
,. email
AS customer_email
, sales_flat_order_address
. city
FROM sales_flat_order_grid
AS main_table
INNER JOIN sales_flat_order_address
ON 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.
Você pode usar minha resposta de uma postagem anterior em Adicionar coluna a uma grade (observador) - a coluna 'store_id' na cláusula where é um problema ambíguo para adicionar colunas extras à grade da ordem de vendas através de um observador.
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
) {