¿Cómo puedo agregar una columna a la cuadrícula en la sección Administrador en Ventas> Pedidos?
¿Cómo puedo agregar una columna a la cuadrícula en la sección Administrador en Ventas> Pedidos?
Respuestas:
Inchoo escribió un gran artículo sobre la ampliación de la cuadrícula de pedidos. Y en el blog de Atwix hay un artículo sobre cómo agregar una columna de una tabla diferente.
La publicación del blog de Inchoo básicamente lo extiende con una extensión personalizada. En caso de que no esté familiarizado con la escritura de su propia extensión, le sugiero que tome un botín en el tutorial de Alan Storms o en el de Magento 4U .
Reescribirá la Mage_Adminhtml_Order_Grid
clase de bloque agregando una columna al _prepareColumns
método y extendiendo el _prepareCollection
método con su campo personalizado
Es un proceso simple de 2 pasos. (por ejemplo, quiero agregar la dirección de correo electrónico y la ciudad de pedidos en esta cuadrícula de pedidos).
Copie este archivo central a su local primero en el mismo directorio. app / code / core / Mage / Adminhtml / Block / Sales / Order / Grid.php
Paso 1: Agregue la siguiente línea de código en la función _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'
));
Paso 2: Agregue la siguiente línea de código en la función _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 consulta general será como:
SELECT main_table
*., sales_flat_order_address
. email
AS customer_email
, sales_flat_order_address
. city
DESDE sales_flat_order_grid
COMO main_table
INTERIOR ÚNASE sales_flat_order_address
A main_table.entity_id = sales_flat_order_address.parent_id DONDE (sales_flat_order_address.address_type = 'facturación')
Modifique el código según su necesidad.
Espero que ayude.
Puede usar mi respuesta de una publicación anterior en Agregar columna a una cuadrícula (observador): la columna 'store_id' en donde la cláusula es un tema ambiguo para agregar columnas adicionales a la cuadrícula de pedidos de ventas a través de un observador.
Las reescrituras son tan ayer;)
Puedes hacer esto usando eventos. Vea una respuesta anterior aquí:
Agregar columna de empresa a la cuadrícula de administración de clientes con Observer
que también incluye una forma de ajustar los filtros.
Simplemente necesita ajustar la cuadrícula a la que apunta en el primer bit de código:
if ($event->getBlock() instanceof
Mage_Adminhtml_Block_Newsletter_Subscriber_Grid
) {