Как получить доступность продукта с идентификатором продукта в magento?

Можно ли получить доступность продукта, передав идентификатор продукта системе Magento?

Я напишу в этом, если найду ответ...

Ответы

Ответ 1

Чтобы получить количество (в наличии) для любого данного продукта

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

Ответ 2

Вы можете получить информацию о запасе (Mage_CatalogInventory_Model_Stock_Item класс) по идентификатору продукта без загрузки данных о продукте (по крайней мере, в Magento 1.7)

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

И затем вы можете использовать getQty() и другие методы на объекте $stockItem для получения требуемой информации. Их можно найти в исходном файле для класса

Ответ 3

Для некоторых типов продуктов нуль qty продукта не означает, что он отсутствует на складе. Затем вы можете использовать

 $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);
        }

Ответ 4

Magento 1.7

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

Должен также работать