2013-02-13 128 views
4

對於Magento,我很新。據我所知,我需要形成可配置的產品,以管理不同大小的產品。我想單獨在產品視圖頁面中顯示每種尺寸的庫存數量。這可能嗎?我的屬性名稱是'大小'。我已經使用下面的代碼來獲得庫存數量。但是,無法獲得可配置產品的單個簡單產品的庫存數量。在Magento中顯示可配置產品的簡單產品清單

<?php 
$__manStock = $_product->getStockItem()->getManageStock(); 

$__invAmt =(int)Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty('small'); 
if ($__manStock > 0) 
    { 
    echo $this->__("$__invAmt"); 
    } 
?> 

回答

18

$_product是您的可配置產品。

要獲得其所有簡單的產品使用:

$_product->getTypeInstance(true)->getUsedProducts (null, $_product); 

所以,你可能有類似:

foreach ($_product->getTypeInstance(true)->getUsedProducts (null, $_product) as $simple) { 
    $stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($simple)->getQty(); 
    echo $simple->getName()." with size ".$simple->getSize()." have a stock of $stock"; 
    echo '<br/>'; 
} 

我讓你適應您的具體需求,並根據需要

+0

完美的工作,謝謝。 – oodalgic 2013-04-23 21:14:55

+0

它工作得很好。感謝您的摘錄。 – Chofoteddy 2014-11-28 19:36:35

0

問的問題我將所有產品彙總到一個數字中,並且不加逗號:

$itemsinstock = 0; 
foreach ($_product->getTypeInstance(true)->getUsedProducts (null, $_product) as $simple) { 
    $stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($simple)->getQty(); 
    $stock = round($stock,2); 
    echo $simple->getName()." : $stock pieces"; 
    echo '<br/>'; 
    $itemsinstock+= $stock; 
} 
echo $itemsinstock; 
相關問題