2011-10-21 17 views
2

グループ化された商品を使用してプロモーションを追跡しています。シンプルな製品は、複数のグループ化された製品に属していることがありますので、parentProductIdsのチェックは役に立ちません。グループ化された(プロモーション)SKUを通じて製品を購入する際に、グループ化された製品IDを追跡する方法が不思議です。私はそれが注文内のinfo_buyRequestとsuper_product_configに格納されているのがわかりますが、どうすればその情報を取り戻すことができますか?そしてカート/見積もりでそれを出す方法はありますか?購入した商品またはカートの商品からグループ化された商品IDを取得する方法

答えて

5

私はカート内の次のコードでそれを得ることができました。 PHTML、foreachの($ _itemとして>のgetItems()の$ this - )で:

$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はnullです。 – aynber

0

カートページグループ化された製品で、単純な製品として扱われます。 Magento 2では、これらの単純な製品の親IDをセッションから取得できます。これは私のために働いた:

<?php 

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

?> 
関連する問題