gpt4 book ai didi

Magento 将付款方式添加到管理订单网格

转载 作者:行者123 更新时间:2023-12-04 10:39:39 30 4
gpt4 key购买 nike

我正在尝试向销售订单网格添加自定义列,并且已将联接和列添加到集合中,但该列显示为空。此外,当我尝试过滤时,出现以下错误:未找到列:1054“where 子句”中的未知列“方法” .我的代码似乎与大多数教程中的代码相同,所以我不明白为什么我的专栏没有任何付款数据。我回应了最终的 SQL 查询并在 MySQL Workbench 中运行它,结果和语法似乎很好。我错过了什么吗?我需要在 sales_flat_order_grid 表中添加一列吗?我意识到我的“漂亮”付款方式名称可能与我在进行过滤时在列中显示的付款代码不太吻合,但是在过滤选项中使用付款代码时我遇到了同样的问题。我想我会在获得一些列数据后找到那个细节。我正在使用企业版 1.12.0.2。

应用程序/代码/本地/mymodule/adminhtml/block/sales/order/grid:

     protected function _prepareCollection()
{
$collection = Mage::getResourceModel($this->_getCollectionClass());
$collection->getSelect()->joinLeft(array('sfop'=>'sales_flat_order_payment'), 'main_table.entity_id = sfop.parent_id',array('sfop.method'));
$this->setCollection($collection);
return parent::_prepareCollection();
}

protected function _prepareColumns()
{ //edited for brevity...only my additions below![enter image description here][1]
$payments = Mage::getSingleton('payment/config')->getActiveMethods();
$methods = array();
foreach ($payments as $paymentCode=>$paymentModel)
{
$paymentTitle = Mage::getStoreConfig('payment/'.$paymentCode.'/title');
$methods[$paymentCode] = $paymentTitle;
}

$this->addColumn('method', array(
'header' => Mage::helper('sales')->__('Payment Method'),
'index' => 'method',
'filter_index' => 'sfop.method',
'type' => 'options',
'width' => '70px',
'options' => $methods,
));

}

Admin Screen

最佳答案

您需要返回 Admin Grid 的父级,而不是您正在重写的类的父级。

将方法 _prepareCollection() 替换为以下内容:-

protected function _prepareCollection()
{
$collection = Mage::getResourceModel($this->_getCollectionClass());
$collection->join(array('payment'=>'sales/order_payment'),'main_table.entity_id=parent_id','method');
$this->setCollection($collection);
return Mage_Adminhtml_Block_Widget_Grid::_prepareCollection();
}

关于Magento 将付款方式添加到管理订单网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17887808/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com