Как получить доступность продукта с идентификатором продукта в 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();
Должен также работать