2011-10-21 44 views
2

我正在使用分組產品來跟蹤促銷活動。簡單的產品有時屬於多個分組產品,因此檢查parentProductIds是沒有用的。我想知道如何通過分組(促銷)SKU購買產品時跟蹤分組產品ID。我可以看到它存儲在訂單中的info_buyRequest和super_product_config中,但是如何將這些信息返回?有沒有辦法讓它在購物車/報價中出現?如何從所購產品或購物車產品中獲取分組產品編號

回答

5

我能夠在車下面的代碼來得到它。 PHTML,在foreach($這個 - > getItems()爲$ _item):

$values = unserialize($_item->getOptionByCode('info_buyRequest')->getValue()); 
$parentId = $values['super_product_config']['product_id']; 
0

根據您想要獲取此信息的位置,您可以在保存銷售時的結帳流程後獲取該信息。然後,您可以使用事件sales_order_save_after並在類中創建一個方法來獲取分組產品的項目。 這裏重要的是有關於產品和產品 這裏的家長信息類Mage_Sales_Model_Order_Item的對象是一個例子:

public function processSalesOrder($observer) 
{ 
    $order = $observer->getOrder() 
    $quoteItems = $order->getItemsCollection(null, true); 

    /*@var $item Mage_Sales_Model_Order_Item */ 
    foreach ($quoteItems as $item) { 

     $parent = $item->getParentItem(); 
     if(!is_null($parent)){ 
      // do your stuff - you have a product parent which has children product 
      // $item is the children 
      echo 'The parent product is ' . $parent->getSku(); 
      echo 'One of the children product is' .$item->getSku(); 
     } 

} 
+1

謝謝,但這似乎並不奏效。它到達foreach,但$ parent爲空。 – aynber

0

在購物車頁面組合產品被視爲一個簡單的產品。在Magento 2中,您可以從會話中獲取這些簡單產品的父代碼。這對我有效:

<?php 

$catalogSession = $_SESSION['catalog'];    
$parentId = $catalogSession['last_viewed_product_id']; 

?>