我想检查某些产品是否有库存,但无论我做什么,isInStock()
方法始终返回TRUE
。我的产品是可配置的产品,没有相关产品,在“库存”选项卡下,“库存可用性”设置为“缺货”。
我究竟做错了什么?
谢谢!
答案 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 {} ?>
它适用于简单的产品类别视图。