我正在尝试在订单和发票的网格上显示付款选项(在后端)。
我已经复制了核心文件
app/code/core/Mage/Adminhtml/Block/Sales/Order/Grid.php
app/code/core/Mage/Adminhtml/Block/Sales/Invoice/Grid.php
到本地文件夹,然后编辑函数_prepareCollection()和_prepareColumns()。准备列是一个明智的选择,问题在于收集。
我的更改:
文件:app / code / core / Mage / Adminhtml / Block / Sales / Order / Grid.php
protected function _prepareCollection(){
$collection = Mage::getResourceModel($this->_getCollectionClass());
$collection->getSelect()->joinLeft('sales_flat_order', 'main_table.entity_id = sales_flat_order.entity_id',array('total_qty_ordered', 'shipping_description'));
$collection->getSelect()->joinLeft('sales_flat_order_payment', 'sales_flat_order_payment.parent_id = main_table.entity_id',array('method'));
// this is custom function that retrieves an array with payment option and its label
$metode = $this->getActivePaymentMethods();
// we get labels of payment options
foreach ($collection as $afn) {
foreach ($metode as $method) {
if ($method['value'] == $afn['method']) {
$afn->setData('method', $method['label']);
}
}
}
$this->setCollection($collection);
return parent::_prepareCollection();
}
这段代码实际上做了应该做的事情。它检索此订单上使用的付款和送货选项。但之后,将“方法”添加到集合中会打破分页和排序。
它在一个页面上显示所有订单,并且没有订购。发票也是如此。
我现在用谷歌搜索了一个小时没有任何运气。你能给我一些方向去看看吗?
谢谢。