Magento:在没有连接的情况下在销售订单网格中添加列

时间:2015-12-17 13:44:10

标签: php magento

我需要在销售订单adminhtml网格中添加自定义列。 由于我通过向特定increment_id请求数据从外部REST API获取该网格的数据,因此我无法使用使用magento数据库的教程来加入所需的表。

还有其他方式:

function rendering_sales_order_row_before($rowdata)  {
    $columnContent = $restapi->callByIncrementId($rowdata['increment_id']);
    $this->addColumn("Custom Column", $columnContent);
}

(此代码应该只是说明我的目标,我知道解决方案看起来会完全不同)

是否有可能以优雅的方式在magento中实现这一目标?

编辑:我正在使用magento 1.9.2.1

1 个答案:

答案 0 :(得分:0)

好问题。我有一个类似的问题。我通过为我的专栏使用自定义渲染器解决了这个问题。

首先添加您的销售订单网格块 XX_ModuleName_Block_Adminhtml_Order_Grid 。重写 Mage_Adminhtml_Block_Sales_Order_Grid ,扩展它并通过重写 _prepareColumns()方法添加您的列。

$this->addColumn('my_column', array(
        'header' => Mage::helper('sales')->__('My Column'),
        'width' => '80px',
        'index' => 'my_column',
        'type' => 'text',
        'order' => 'x',
    ));

然后添加自定义渲染器( XX_ModuleName_Block_Adminhtml_Sales_Order_Grid_Widget_Renderer_MyColumn )并扩展 Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract

重写渲染(Varien_Object $ row)方法。在这里,您可以执行特定操作(执行api请求,以任何方式操作)并返回字符串。要构建您的请求,您希望通过param $ row 使用数据。

这应该有效:)如果您需要更多信息,请发表评论。