MAGENTO::Sales Order Grid Customization - Add SKU list and customer email column to the grid


Add SKU list and Customer Email column to the grid

Supposed you had copied your code\core\Mage\Adminhtml\Block\Sales\Order\Grid.php to code\local\Mage\Adminhtml\Block\Sales\Order\Grid.php because you want to display the subtotals, credit card types, total of items ordered for the sales order. The new version of Magento which is 1.4.1

in code\local\Mage\Adminhtml\Block\Sales\Order\Grid.php change like this

protected function _prepareCollection()
{
$collection = Mage::getResourceModel($this->_getCollectionClass());
$collection->getSelect()->joinLeft( array('sfoi'=>'sales_flat_order_item'), 'main_table.entity_id=sfoi.order_id', array( 'sku' =>'sfoi.sku' ) );
$collection->addExpressionFieldToSelect ( "sku", "GROUP_CONCAT(sku SEPARATOR ' , ')", $fields="" );
$collection->getSelect()->group("entity_id");
$collection->getSelect()->joinLeft(array('sfo'=>'sales_flat_order'), 'main_table.entity_id=sfo.entity_id', array('customer_email'));
$this->setCollection($collection);
$collection->addFilterToMap('created_at', 'main_table.created_at');
return parent::_prepareCollection();
}

protected function _prepareColumns(){ 
......
......
$this->addColumn('sku', array(
            'header'=> Mage::helper('catalog')->__('SKU'),
            'width' => '140px',
            'type'  => 'text',
            'index' => 'sku',
        ));
        $this->addColumn('customer_email', array(
            'header' => Mage::helper('sales')->__('Customer Eamil'),
            'index' => 'customer_email',
    'width' => '140px',
        ));
........
........
}

in app\code\local\Mage\Sales\Model\Mysql4\Order\Collection.php
public function getSelectCountSql()
{
/* @var $countSelect Varien_Db_Select */
$countSelect = parent::getSelectCountSql();

$countSelect->resetJoinLeft();
$countSelect->reset(Zend_Db_Select::GROUP); // add this to reset the GROUP
return $countSelect;
}

Comments

  1. Magento site should be unique to your business and build brand loyalty. And best for Ecommerce sites,which should have flawless code to get good results. Thanks for sharing this post. Magento Programmers India

    ReplyDelete

Post a Comment

Popular posts from this blog

AIOMgr: Preparing flush failed with VERR_NOT_SUPPORTED, disabling async flushes

Create Virtual Host in IIS Server

The model type is invalid. please select an item from the list ( ASP.Net MVC)