我需要在销售订单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 1.9.2.1
好问题。我也有类似的问题。我通过为我的专栏使用自定义渲染器解决了这个问题。
首先添加您的销售订单网格块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_Gridge_Widget_Render_MyColumn),并扩展Mage_Adminhtml_Block_Widget_Grid_Column_renderer_Abstract。
覆盖渲染(Varien_Object$row)方法。在这里,您可以执行特定的操作(执行api请求,以任何方式进行操作)并返回字符串。要构建您的请求,您需要使用param$row的数据。
这应该有效:)如果你需要更多信息,请发表评论。