如何检查可配置产品是否缺货?

时间:2014-08-15 08:02:48

标签: magento inventory configurable-product

我们都知道magento中的可配置产品与简单产品相关联。

如果与可配置产品关联的简单产品成为Inventory = 0,则表示可配置产品缺货

所以问题是如何检测可配置产品是否缺货?我想检测,所以我可以在前端显示“缺货”文字。

类似这样的事情

if($configurable_product->isOutOfStock()) {
   echo "Out of Stock";
}

我怎样才能在Magento中这样做?

4 个答案:

答案 0 :(得分:7)

if (!$configurable->isSaleable() ||$configurable_product->getIsInStock()==0){
// out of stock
}

检查儿童简易产品:

$allProducts = $configurable->getTypeInstance(true)
                ->getUsedProducts(null, $configurable);
            foreach ($allProducts as $product) {
                if (!$product->isSaleable()|| $product->getIsInStock()==0) {
                    //out of stock for check child simple product
                }
            }

答案 1 :(得分:0)

$product = Mage::getModel('catalog/product')->loadByAttribute('sku', $sku);
$stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product->getId());
$qty = $stockItem->getData('qty');
$inStock = $stockItem->getData('is_in_stock');

if ($qty < 1 || $inStock == 0) {
    // OutOfStock
}

我更喜欢用qty仔细检查,因为根据配置设置,产品在qty == 0时不会总是缺货。

答案 2 :(得分:0)

对Quovadisqc的答案稍作更新/更正。定义$ qty时应该是

$qty = $stockItem->getData('qty'); // correct

而不是目前在那里,

$qty = $stockItem->setData('qty'); // incorrect

我发布此评论作为评论,但我没有足够的代表。

答案 3 :(得分:0)

在产品的foreach循环中,以下if语句有效。

@ReturnInsert(returnOnly=true)