2013-01-07 54 views
0

我在「sales_order_place_after」事件中創建了一個事件觀察者,當用戶在Magento的結帳中下訂單時觸發事件觀察者。該事件觸發了我的觀察員,他需要獲得以下信息,然後將其發送到外部庫存管理系統。Magento - 在訂單中獲取產品Sku和數量

需要

信息:訂單

  1. 的SKU,每個產品的數量我已經包含下面我觀察模型的一部分。我正在訪問訂單對象。我可以得到訂單中的所有物品,但是如何獲得構成訂單的每件產品的SKU。例如,使用簡單的產品很容易。 但是,對於捆綁或可配置的產品,我不知道如何通過sku和數量訪問組成該捆綁產品的兒童。這是我需要捆綁和可配置產品的信息。我需要選擇的sku和數量的孩子。對於我的生活,我無法弄清楚用什麼方法來訪問這些信息。我希望有這樣的:$ item-> getBundleChildrenSkuQuantity();

    $order = $observer->getEvent()->getOrder(); 
        $joomecomPacket = array(); 
    
        if ($order->getTotalItemCount() > 0) { 
         $items = $order->getAllItems(); 
    
         foreach ($items as $item) { 
          $productType = $item->getProductType(); 
    
          switch ($productType) { 
           case 'bundle': 
    
           break; 
           case 'configurable': 
    
           default: // simple products 
            if (isset($joomecomPacket[$item['sku']])) { 
             $joomecomPacket[$item['sku']] += $item['qty_ordered']; 
            } else { 
             $joomecomPacket[$item['sku']] = $item['qty_ordered']; 
            } 
           break; 
          } 
         } 
        } 
    

回答

0

試試這個:

$items = $order->getAllVisibleItems(); // gives only parent items 

foreach ($items as $item){ 

$childItem = $item->getChildren(); //do something with $cildItem like $childItem->getSku() etc... 

} 
1

你錯過了你的配置情況後休息。默認情況下正在執行可配置產品。

相關問題