我们都知道magento中的可配置产品与简单产品相关联。
如果与可配置产品关联的简单产品成为Inventory = 0,则表示可配置产品缺货
所以问题是如何检测可配置产品是否缺货?我想检测,所以我可以在前端显示“缺货”文字。
类似这样的事情
if($configurable_product->isOutOfStock()) {
echo "Out of Stock";
}
我怎样才能在Magento中这样做?
答案 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)