2012-02-14 132 views
2

我正在嘗試在Magento的「產品已訂購」報告中添加新列。我已經爲每個產品添加了自定義選項,我想知道如何讓這些自定義選項顯示在報告視圖中。Magento產品中的自定義產品選項已訂購報告

到目前爲止我讀過,人們可以在app /代碼/核心/法師/ Adminhtml /座/報告/產品/有序/ Grid.php像這樣添加列:

$this->addColumn('sku', array(
     'header' =>Mage::helper('reports')->__('Product Sku'), 
     'sortable' =>false, 
     'index'  =>'sku' 
)); 

但如何我會去添加我爲我的產品創建的自定義選項嗎?我正在使用Magento Community Version 1.6.2。

Thanx提前!

回答

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

其實你必須添加代碼:

$this->addColumn('sku', array(
     'header' =>Mage::helper('reports')->__('Product Sku'), 
     'index'  =>'sku' 
)); 
在文件 應用程序/代碼/核心/法師/ Adminhtml /座/報告/產品/銷售/ Grid.php的方法_prepareColumns

(不有序)

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'); 
     } 
} 
相關問題