在sales_flat_order中添加并显示新列,并在magento的订单网格中显示此列

时间:2014-05-14 06:46:07

标签: magento

我在sales_flat_order中添加了一个新列(已导出)并添加了此位置的文件:

应用程序/代码/核心/法师/ Adminhtml /砌块/销售/订购/ Grid.php

protected function _prepareCollection()
{
 $collection = Mage::getResourceModel($this->_getCollectionClass())
    ->addAttributeToSelect('*')
    ->joinAttribute('exported','sales/order','sales_flat_order.entity_id',null,'left');
}

protected function _prepareColumns()
{
 $this->addColumn('exported', array(
            'header' => Mage::helper('sales')->__('Exported'),
            'index' => 'exported',
            'type'  => 'checkbox',
            'name'  =>'exported',
            'value'    =>$this->getExported()==1 ? 'true' : 'false',
          ));
  }

之后它显示在管理网站的订单网格上,但它没有显示值和名称,

我是magento的新人,所以请帮助我, 卡住了2天。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

方法_prepareCollection()使用sales_flat_order_grid表作为源,因此您必须将该列添加到sales_flat_order_grid表,并从sales_flat_order表的相应列更新该列的值。

在这种情况下,Magento会自动更新sales_flat_order_grid表中的此列以供将来订单使用。

显示布尔列的更好方法是Yes / No renderer。在_prepareColumns()方法

中使用以下代码
 $this->addColumn('exported', array(
            'header' => Mage::helper('sales')->__('Exported'),
            'index' => 'exported',
            'type'  => 'options',
            'width' => '70px',
            'options' => array(
                1  => Mage::helper('sales')->__('Yes'),
                0  => Mage::helper('sales')->__('No'),
            ),
        ));

还有一些关于cutomizing order grid的其他有用的文章。看看下面的链接: