Magento产品中的定制产品选件订购报告

时间:2012-02-14 07:49:32

标签: php magento

我正在尝试在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!

3 个答案:

答案 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');
        }
}