Skip to main content
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
Bumped by Community user
edited title
Link

Sorting and filtering not working with custom column in Customer Grid in magentoMagento

edited title
Link

Sorting and filtering not working in Customer Grid innin magento

Source Link

Sorting and filtering not working in Customer Grid inn magento

I have add a custom column in customer grid by copying core Grid.php file to local folder. I want to show last order date of customer in a column. So I have tried below code in collection.

protected function _prepareCollection()
    {
        $collection = Mage::getResourceModel('customer/customer_collection')
            ->addNameToSelect()
            ->addAttributeToSelect('email')
            ->addAttributeToSelect('created_at')
            ->addAttributeToSelect('group_id')
            ->addAttributeToSelect('track_device')
            ->addAttributeToSelect('inchoo_socialconnect_fid')
            ->addAttributeToSelect('inchoo_socialconnect_gid')
            ->joinAttribute('billing_postcode', 'customer_address/postcode', 'default_billing', null, 'left')
            ->joinAttribute('billing_city', 'customer_address/city', 'default_billing', null, 'left')
            ->joinAttribute('billing_telephone', 'customer_address/telephone', 'default_billing', null, 'left')
            ->joinAttribute('billing_region', 'customer_address/region', 'default_billing', null, 'left')
            ->joinAttribute('billing_country_id', 'customer_address/country_id', 'default_billing', null, 'left');
            

       // add last_order_date column     
            $sql ='SELECT MAX(o.created_at)'
                . ' FROM ' . Mage::getSingleton('core/resource')->getTableName('sales/order') . ' AS o'
                . ' WHERE o.customer_id = e.entity_id ';
            $expr = new Zend_Db_Expr('(' . $sql . ')'); 
        
            $collection->getSelect()->from(null, array('last_order_date'=>$expr));
     
     
        $this->setCollection($collection);

        return parent::_prepareCollection();
    }

here is the column code--

$this->addColumn('last_order_date', array(
            'header'    => Mage::helper('customer')->__('Last Order Date'),
            'type'      => 'datetime',
            'align'     => 'center',
            'index'     => 'last_order_date',
            'filter'    => true,
            'sortable'  => true ,               
            'gmtoffset' => true,        
        ));

column showing correct values but Sorting and Filtering not working for this column. What is wrong there.