如何在 Magento 2 中获取产品库存
库存管理是电子商务管理中不可或缺的一部分。在某些情况下,出于许多不同的原因,我们需要获取产品的库存信息。例如,您需要检查产品是否有库存以将其显示在类别页面上,或者防止客户将缺货的产品添加到购物车等许多情况。
在本文中,我们将逐步指导您获取产品库存 Magento 2。
从管理页面获取产品库存信息
作为管理员,您可以在分类产品网格中获取产品的库存信息:
或者在产品创建/编辑表单中,您可以编辑数量(每个来源)或查看产品的可销售数量。
对于开发人员
作为开发人员,您还需要了解产品库存信息,例如缺货状态、库存状态、剩余数量、最大数量、最小数量……以及许多其他信息。Magento 2 支持开发人员获取产品库存信息的一些方法。
使用StockItemRepository获取特定产品的库存信息
... $productId = 620; /** @var \Magento\CatalogInventory\Model\Stock\StockItemRepository $stockItem */ $stockItem = \Magento\Framework\App\ObjectManager::getInstance()->get(\Magento\CatalogInventory\Model\Stock\StockItemRepository::class) // Retrieve backorders status echo $stockItem->getBackorders(); // Get quantity of item remaining in stock echo "qty: ".$stockItem->getQty(); // Get stock status echo $stockItem->getIsInStock(); // Retrieve Maximum Qty Allowed in Shopping Cart data wrapper echo "max sale qty: ".$stockItem->getMaxSaleQty(); ...
使用GetSourceItemsDataBySku检索产品多源数量
... // To retrieve product multi-source quantities, you can use GetSourceItemsDataBySku /** @var \Magento\InventoryCatalogAdminUi\Model\GetSourceItemsDataBySku $sourceDataBySku */ //use ObjectManager to get \Magento\InventoryCatalogAdminUi\Model\GetSourceItemsDataBySku instance $sku = "24-MB01"; //sku of product $sourceDataBySku = \Magento\Framework\App\ObjectManager::getInstance()->get(\Magento\InventoryCatalogAdminUi\Model\GetSourceItemsDataBySku::class); //load quantities of assigned source $data = $sourceDataBySku->execute($sku); // the returned data should be an array including source name, source code, qty of the product in source, source status // data = array( // array( // 'source_code' => "example", // 'quantity' => 100, // 'status' => 1 // 'name' => "Example" // 'source_status' => true //) ...
产品存储库用于加载特定产品的所有信息。因此,它也用于获取股票信息。
... //use product repository to get stock data $sku = "883985891715"; /** @var Magento\Catalog\Model\ProductRepository $productRepository */ $productRepository = \Magento\Framework\App\ObjectManager::getInstance()->get(Magento\Catalog\Model\ProductRepository::class); $product = $productRepository->get($sku); if ($product){ echo $product->isSalable(); // Check is product available for sale echo $product->isAvailable(); // Check whether the product type or stock allows to purchase the product echo $product->getQty(); get quantity of product } ...
产品集合对于获取产品列表中的库存信息也很有用。您还可以使用库存属性来过滤或从集合中获取数据。
... /** @var \Magento\Catalog\Model\ResourceModel\Product\Collection $productCollection */ $productCollection = \Magento\Framework\App\ObjectManager::getInstance()->get(\Magento\Catalog\Model\ResourceModel\Product\Collection::class); //use salable option to filter product in collection $data = $productCollection ->addAttributeToFilter("is_saleable", 1) ->setPageSize(5) ->toArray(); ...
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。