1. 程式人生 > >Magento 訂單後臺增加支付介面來源列

Magento 訂單後臺增加支付介面來源列

在後臺訂單列表上增加支付方式,讓客服工作更輕鬆,一眼就看出是哪個支付介面的了

1.3.2.4以前的版本,是修改app/code/core/Mage/Adminhtml/Block/Sales/Order/Grid.php

protected function _prepareCollection()
{
$tablePre= (string)Mage::getConfig()->getTablePrefix();
//TODO: add full name logic
$res = Mage::getResourceModel(“sales/order_payment”);
$paymentWhere = array(“entity_type_id” => $res->getTypeId());
$attributes =$res->loadAllAttributes()->getAttributesByCode();
foreach ($attributes as $attrCode=>$attr) {
if ($attr->getAttributeCode()==”method”){
$attId = $attr->getAttributeId();
}
}
$paymentMethodWhere = “{{table}}.attribute_id = ‘$attId’”;
         $collection = Mage::getResourceModel(‘sales/order_collection’)
->addAttributeToSelect(‘*’)
->joinAttribute(‘billing_firstname’, ‘order_address/firstname’, ‘billing_address_id’, null, ‘left’)
->joinAttribute(‘billing_lastname’, ‘order_address/lastname’, ‘billing_address_id’, null, ‘left’)
->joinAttribute(‘shipping_firstname’, ‘order_address/firstname’, ‘shipping_address_id’, null, ‘left’)
->joinAttribute(‘shipping_lastname’, ‘order_address/lastname’, ‘shipping_address_id’, null, ‘left’)
  ->joinTable($tablePre . ‘sales_order_entity’, ‘parent_id=entity_id’, array( ‘quote_payment_id_for_join’ => ‘entity_id’ ) , $paymentWhere, ‘left’ )
->joinTable($tablePre.’sales_order_entity_varchar’, ‘entity_id=quote_payment_id_for_join’, array( ‘payment’ => ‘value’ ) , $paymentMethodWhere, ‘left’ )
            ->addExpressionAttributeToSelect(‘billing_name’,
‘CONCAT({{billing_firstname}}, ” “, {{billing_lastname}})’,
array(‘billing_firstname’, ‘billing_lastname’))
->addExpressionAttributeToSelect(‘shipping_name’,
‘CONCAT({{shipping_firstname}}, ” “, {{shipping_lastname}})’,
array(‘shipping_firstname’, ‘shipping_lastname’));
$this->setCollection($collection);
return parent::_prepareCollection();
}

然後增加列:
protected function _prepareColumns()
{
$this->addColumn(‘real_order_id’, array(
‘header’=> Mage::helper(‘sales’)->__(‘Order #’),
‘width’ => ’80px’,
‘type’  => ‘text’,
‘index’ => ‘increment_id’,
));
    $this->addColumn(‘payment’, array(
‘header’ => Mage::helper(‘sales’)->__(‘Payment’),
‘index’ => ‘payment’,
‘sortable’  => false,
));

1.4.2.0 1.5.1.0是修改app\code\core\Mage\Adminhtml\Block\Sales\Order\Grid.php

protected function _prepareCollection()
{
$collection = Mage::getResourceModel($this->_getCollectionClass());
  $collection->getSelect()->joinLeft(array(‘payments’ => $collection->getTable(‘sales/order_payment’)),
‘payments.parent_id = main_table.entity_id’,
‘method’
);
$this->setCollection($collection);
return parent::_prepareCollection();
}
protected function _prepareColumns()
{
$this->addColumn(‘real_order_id’, array(
‘header’=> Mage::helper(‘sales’)->__(‘Order #’),
‘width’ => ’80px’,
‘type’  => ‘text’,
‘index’ => ‘increment_id’,
));
if (!Mage::app()->isSingleStoreMode()) {
$this->addColumn(‘store_id’, array(
‘header’    => Mage::helper(‘sales’)->__(‘Purchased From (Store)’),
‘index’     => ‘store_id’,
‘type’      => ‘store’,
‘store_view’=> true,
‘display_deleted’ => true,
));
}
$this->addColumn(‘created_at’, array(
‘header’ => Mage::helper(‘sales’)->__(‘Purchased On’),
‘index’ => ‘created_at’,
‘type’ => ‘datetime’,
‘width’ => ’100px’,
));
  $this->addColumn(‘payments’, array(
‘header’ => Mage::helper(‘sales’)->__(‘payments’),
‘index’ => ‘method’,
));