제품의 재고 상태가 inock/outofstock인지 여부를 확인하려고합니다. 각 상태를 나타내는 정수는 괜찮습니다. "재고 있음"/ "재고 없음"문자열 자체는 반드시 필요하지 않습니다.magento2 - 제품의 재고 상태를 사용/사용 중지하는 방법은 무엇입니까?
나는 여러 가지 시도를 해 보았습니다.
1)
$inStock = $obj->get('Magento\CatalogInventory\Api\Data\StockItemInterface')->getisInStock()'
// Magento\CatalogInventory\Api\Data\StockItemInterface :: getisInStock returns true no matter what, even for 0qty products
// summary: not useful. How do you get the real one?
2)
$inStock = $obj->get('\Magento\CatalogInventory\Api\StockStateInterface')->verifyStock($_product->getId());
// test results for "verifyStock":
// a 0 qty product is in stock
// a 0 qty product is out of stock
// summary: fail. find correct method, with tests.
3)
$stockItemRepository = $obj->get('Magento\CatalogInventory\Model\Stock\StockItemRepository');
stockItem = $stockItemRepository->get($_product->getId());
$inStock = $stockItem->getIsInStock();
// Uncaught Magento\Framework\Exception\NoSuchEntityException: Stock Item with id "214"
// summmary: is stockitem not 1to1 with proudctid?
이상한 것은, 재고 수량을 얻는 것은 잘 작동한다.
$availability = (String)$obj->get('\Magento\CatalogInventory\Api\StockStateInterface')->getStockQty($_product->getId(), $_product->getStore()->getWebsiteId());
왜 getIsInStock이 작동하지 않습니까?