Magento在产品上调用isInStock()方法的问题

时间:2010-04-23 19:54:21

标签: php magento

我想检查某些产品是否有库存,但无论我做什么,isInStock()方法始终返回TRUE。我的产品是可配置的产品,没有相关产品,在“库存”选项卡下,“库存可用性”设置为“缺货”。 我究竟做错了什么? 谢谢!

3 个答案:

答案 0 :(得分:52)

Magento目前有很多历史,所以不总是这样做是个好主意 相信方法名称会做“看起来很明显”。几年前,现在显而易见的并不明显。

如果你在Mage_Catalog_Model_Product类上看下面两个方法

public function isInStock()
{
    return $this->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_ENABLED;
}
public function getStatus()
{
    return $this->_getData('status');
}

您可以看到isInStock检查状态属性,在产品管理员的“常规”部分设置。

试试这个

$stockItem = $product->getStockItem();
if($stockItem->getIsInStock())
{
    //in stock!
}
else
{
    //not in stock!
}

答案 1 :(得分:0)

$qtyStock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty();

答案 2 :(得分:0)

<?php if ((int) Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty()>0) { ?>

 <?php  } else {} ?>

它适用于简单的产品类别视图。