2013-08-02 61 views
8

我試圖加載已添加到客戶購物車中的簡單產品,但是當我檢索這些項目時,它顯示了父配置。從購物車配置中獲取簡單產品

$cart = Mage::getSingleton('checkout/cart'); 
$productIds = array(); 

foreach ($cart->getQuote()->getAllVisibleItems() as $item) { 
    $productIds[] = $item->getProduct()->getId(); 
} 

var_dump($productIds); 

例如,當我向購物車中添加小,中,大時,這將返回所有相同的可配置ID。我怎樣才能獲得個人簡單的產品?我試圖檢索在簡單產品級別上設置的屬性值。

回答

16

考慮看看如何Magento呈現結帳/車頁面上您的購物車中的項目後,我能找到這app/code/core/Mage/Checkout/Block/Cart/Item/Renderer/Configurable.php

/** 
* Get item configurable child product 
* 
* @return Mage_Catalog_Model_Product 
*/ 
public function getChildProduct() 
{ 
    if ($option = $this->getItem()->getOptionByCode('simple_product')) { 
     return $option->getProduct(); 
    } 
    return $this->getProduct(); 
} 

所以,在這個問題把它應用到的片段,這將是

foreach ($cart->getQuote()->getAllVisibleItems() as $item) { 
    $productId = $item->getProduct()->getId(); 
    if ($option = $item->getOptionByCode('simple_product')) { 
     $productId = $option->getProduct()->getId(); 
    } 
    $productIds[] = $productId; 
} 
+11

對於其他人:一個行代碼:$ _item-> getOptionByCode( 'simple_product') - > getProduct() - >的getId(); –

相關問題