2011-04-12 77 views
14

是否可以通过将产品ID传递给Magento系统来获得产品可用性?如何使用magento中的产品ID获得产品可用性?

我将张贴在此,如果我找到了答案......

+1

得到的答案...! \t \t $ model = Mage :: getModel('catalog/product'); \t \t $ _product = $ model-> load($ product_id); (int)Mage :: getModel('cataloginventory/stock_item') - > loadByProduct($ _ product) - > getQty(); 这将获取一个产品的数量.. – balanv 2011-04-12 07:52:59

+0

你可以把它放在答案中,并正确地格式化代码。它可能会帮助其他人。 – 2011-04-12 08:02:50

+0

我正在新的Stackoverflow ..我可以把答案24小时后才..这就是为什么发表评论.. – balanv 2011-04-12 08:06:02

回答

28

要提取的数量(库存)对于任何给定的产品

$model = Mage::getModel('catalog/product'); 
$_product = $model->load($product_id); 
$stocklevel = (int)Mage::getModel('cataloginventory/stock_item') 
       ->loadByProduct($_product)->getQty(); 
+4

所有应有的尊重工作答案 - 这个答案的前两行是非常浪费。 '$ product_id'可以直接在stock_item模型的'loadByProduct()'方法中使用。 “Anatoly A. Kazantsev”的答案具有非常优越的表现。此答案通过不必要地加载完整产品模型来滥用服务器资源。 – FactoryAidan 2016-01-31 09:54:06

17

你可以得到股票信息(Mage_CatalogInventory_Model_Stock_Item类)由产品的ID,而无需加载整个产品数据(至少在Magento 1.7)

$stockItem = Mage::getModel('cataloginventory/stock_item') 
       ->loadByProduct($productId); 

然后你就可以使用getQty()和其他方法对象获取所需的信息。你可以找到它们的源文件中的类

2

Magento的1.7

$product = Mage::getModel('catalog/product')->load($productId); 
$qty = $product->getStockItem()->getQty(); 

应太

6

对于某些类型的产品实行零数量的产品并不意味着它是脱销。然后你可以使用

$stockStatus = Mage::getModel('cataloginventory/stock_item') 
        ->loadByProduct($product) 
        ->getIsInStock(); 

收集的方式之一是

$collection = Mage::getModel('catalog/product')->getCollection() 
       ->addAttributeToFilter('status', 1) 
       ->addFieldToFilter('visibility', Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH) 
       ->addAttributeToSelect('*'); 



     if (! Mage::helper('cataloginventory')->isShowOutOfStock()) { 
      Mage::getSingleton('cataloginventory/stock')->addInStockFilterToCollection($collection); 
     } 
相关问题