2

Currently I'm getting Customer name, email and product amount, price in Abdandont cart reports.

I am getting reports on following page in Magento ver. 1.9.2.4 Admin panel. System > Shopping Basket > Abandoned Baskets

I have tried to add manually an additional field for phone number in magento abandoned carts grid.

See here: enter image description here

But Its not capturing phone number, and field displays empty results. I have used following code:

<?php

/**
 * Adminhtml abandoned shopping carts report grid block
 *
 * @category   Mage
 * @package    Mage_Adminhtml
 * @author      Magento Core Team <[email protected]>
 */
class Mage_Adminhtml_Block_Report_Shopcart_Abandoned_Grid extends Mage_Adminhtml_Block_Report_Grid_Shopcart
{

    public function __construct()
    {
        parent::__construct();
        $this->setId('gridAbandoned');
    }

    protected function _prepareCollection()
    {
        /** @var $collection Mage_Reports_Model_Resource_Quote_Collection */
        $collection = Mage::getResourceModel('reports/quote_collection');

        $filter = $this->getParam($this->getVarNameFilter(), array());
        if ($filter) {
            $filter = base64_decode($filter);
            parse_str(urldecode($filter), $data);
        }

        if (!empty($data)) {
            $collection->prepareForAbandonedReport($this->_storeIds, $data);
        } else {
            $collection->prepareForAbandonedReport($this->_storeIds);
        }

// var_dump($collection);
// die();
        //Custom Join to show phone number
        //

    // Get customer telephone.
        $collection->getSelect()
        ->joinLeft(
        array('table_billing'=>'customer_entity_int'),
        ('table_billing.entity_id=main_table.customer_id AND table_billing.attribute_id=31'), // 'default_billing' attribute id = 13
        array('table_billing_value'=>'value')
        )

 ->joinLeft(
    array('table_billing_telephone'=>'customer_address_entity_varchar'),
    ('table_billing_telephone.entity_id=`table_billing`.`value` AND table_billing_telephone.attribute_id=31'), // 'telephone' attribute id = 31 
    array('telephone'=>'value')
    );   
// var_dump($collection);
// die();

        $this->setCollection($collection);
        return parent::_prepareCollection();
               //return Mage_Adminhtml_Block_Report_Grid_Shopcart::_prepareCollection();
    }

    protected function _addColumnFilterToCollection($column)
    {
        $field = ( $column->getFilterIndex() ) ? $column->getFilterIndex() : $column->getIndex();
        $skip = array('subtotal', 'customer_name', 'email'/*, 'created_at', 'updated_at'*/);

        if (in_array($field, $skip)) {
            return $this;
        }

        parent::_addColumnFilterToCollection($column);
        return $this;
    }

    protected function _prepareColumns()
    {
        $this->addColumn('customer_name', array(
            'header'    =>Mage::helper('reports')->__('Customer Name'),
            'index'     =>'customer_name',
            'sortable'  =>false
        ));

        $this->addColumn('email', array(
            'header'    =>Mage::helper('reports')->__('Email'),
            'index'     =>'email',
            'sortable'  =>false
        ));
         $this->addColumn('telephone', array(
              'header'    =>Mage::helper('reports')->__('Phone'),
              'index'     =>'telephone',
              'filter_index' => 'table_billing.attribute_id',
             'sortable'  =>false
         ));


        $this->addColumn('items_count', array(
            'header'    =>Mage::helper('reports')->__('Number of Items'),
            'width'     =>'80px',
            'align'     =>'right',
            'index'     =>'items_count',
            'sortable'  =>false,
            'type'      =>'number'
        ));

        $this->addColumn('items_qty', array(
            'header'    =>Mage::helper('reports')->__('Quantity of Items'),
            'width'     =>'80px',
            'align'     =>'right',
            'index'     =>'items_qty',
            'sortable'  =>false,
            'type'      =>'number'
        ));

        if ($this->getRequest()->getParam('website')) {
            $storeIds = Mage::app()->getWebsite($this->getRequest()->getParam('website'))->getStoreIds();
        } else if ($this->getRequest()->getParam('group')) {
            $storeIds = Mage::app()->getGroup($this->getRequest()->getParam('group'))->getStoreIds();
        } else if ($this->getRequest()->getParam('store')) {
            $storeIds = array((int)$this->getRequest()->getParam('store'));
        } else {
            $storeIds = array();
        }
        $this->setStoreIds($storeIds);
        $currencyCode = $this->getCurrentCurrencyCode();

        $this->addColumn('subtotal', array(
            'header'        => Mage::helper('reports')->__('Subtotal'),
            'width'         => '80px',
            'type'          => 'currency',
            'currency_code' => $currencyCode,
            'index'         => 'subtotal',
            'sortable'      => false,
            'renderer'      => 'adminhtml/report_grid_column_renderer_currency',
            'rate'          => $this->getRate($currencyCode),
        ));

        $this->addColumn('coupon_code', array(
            'header'    =>Mage::helper('reports')->__('Applied Coupon'),
            'width'     =>'80px',
            'index'     =>'coupon_code',
            'sortable'  =>false
        ));

        $this->addColumn('created_at', array(
            'header'    =>Mage::helper('reports')->__('Created At'),
            'width'     =>'170px',
            'type'      =>'datetime',
            'index'     =>'created_at',
            'filter_index'=>'main_table.created_at',
            'sortable'  =>false
        ));

        $this->addColumn('updated_at', array(
            'header'    =>Mage::helper('reports')->__('Updated At'),
            'width'     =>'170px',
            'type'      =>'datetime',
            'index'     =>'updated_at',
            'filter_index'=>'main_table.updated_at',
            'sortable'  =>false
        ));

        $this->addColumn('remote_ip', array(
            'header'    =>Mage::helper('reports')->__('IP Address'),
            'width'     =>'80px',
            'index'     =>'remote_ip',
            'sortable'  =>false
        ));

        $this->addExportType('*/*/exportAbandonedCsv', Mage::helper('reports')->__('CSV'));
        $this->addExportType('*/*/exportAbandonedExcel', Mage::helper('reports')->__('Excel XML'));

        return parent::_prepareColumns();
    }

    public function getRowUrl($row)
    {
        return $this->getUrl('*/customer/edit', array('id'=>$row->getCustomerId(), 'active_tab'=>'cart'));
    }
}

I took help from here: Collection loads wrong data?

I've made changes in following file:

/public_html/app/code/local/Mage/Adminhtml/Block/Report/Shopcart/Abandoned/Grid.php

but it did not work. Can you please guide me through.

The attribute ID i have double checked from database and its 31 for phone number.

2 Answers 2

0

If you have customer email then you can their data very easily. you just need to load customer using their email like:

     $customer = Mage::getModel("customer/customer");

     $customer->setWebsiteId(Mage::app()->getWebsite('admin')->getId());

   $customer_Data = $customer->loadByEmail($email);

now Print $customer_Data you will get whole data of customer as well as customer number.

4
  • Thanks for your reply. I am not good developer, I need help, on following file, what code I can add? /public_html/app/code/local/Mage/Adminhtml/Block/Report/Shopcart/Abandoned/Grid.php In my code which I have posted in question, anyway to tweak, if totally new code i have to add then where? Thanks Sep 15, 2018 at 7:33
  • @Zubi are you able to get customer email id? Sep 15, 2018 at 7:42
  • Yes @Shubham, I am getting email already, because there is a plugin to get this, but phone number is not there, which I want to add manually. I am going to show you the whole code of the file. so may you can get idea of my issue. Sep 17, 2018 at 3:04
  • please check my question again, I have updated the full code from the file.Thanks Sep 17, 2018 at 3:12
0

try this solution, it worked for me

http://mydons.com/how-to-show-additional-fields-in-magento-abandoned-carts-grid/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.