2011-04-12 74 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); 
     } 
相關問題