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 <core@magentocommerce.com>
 */
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.

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.

  • 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 – Zubi Sep 15 '18 at 7:33
  • @Zubi are you able to get customer email id? – Shubham Khandelwal Sep 15 '18 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. – Zubi Sep 17 '18 at 3:04
  • please check my question again, I have updated the full code from the file.Thanks – Zubi Sep 17 '18 at 3:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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