我正在尝试在Magento的“产品订购”报告中添加新列。我已经为每个产品添加了自定义选项,我想知道如何在报告视图中显示这些自定义选项。
到目前为止,我已经读过可以在app / code / core / Mage / Adminhtml / Block / Report / Product / Ordered / Grid.php中添加列,如下所示:
$this->addColumn('sku', array(
'header' =>Mage::helper('reports')->__('Product Sku'),
'sortable' =>false,
'index' =>'sku'
));
但是我如何添加我为自己的产品创建的自定义选项呢?我正在使用Magento Community Version 1.6.2。
提前Thanx!
答案 0 :(得分:2)
实际上你必须添加代码:
$this->addColumn('sku', array(
'header' =>Mage::helper('reports')->__('Product Sku'),
'index' =>'sku'
));
在文件的方法_prepareColumns中 app / code / core / Mage / Adminhtml / Block / Report / Product / Sold / Grid.php(not Ordered)
答案 1 :(得分:0)
您必须扩展的类是Mage_Reports_Model_Resource_Product_Ordered_Collection
,更具体地说是父类方法Mage_Reports_Model_Resource_Product_Collection::addOrderedQty()
。
添加product_options
属性可让您访问订购商品上的任何选项
但有一个问题:
// on the select instance:
->group('order_items.product_id')
这将按产品ID合并任何记录。因此,如果同一产品订购两次,您将只看到其中一种产品的选项
这可以归结为你应该建立一个基于这个的单独报告,你也可以在product_options
分组。
获得带有产品选项的产品系列后,只需拨打
$product->processBuyRequest(unserialize($product->getData('product_options')))
。
之后,所有选项都可以使用$product->getCustomOptions()
来检索数组,或getCustomOption($code)
来检索单个数组。
答案 2 :(得分:0)
不要编辑核心,请使用观察者:
public function appendCustomColumn(Varien_Event_Observer $observer)
if ($block->getType() == 'adminhtml/report_product_sold_grid') {
$block->addColumnAfter('Product Name', array(
'header' => 'Sku',
'type' => 'text',
'index' => 'sku',
), 'sku');
}
}