Magento 2, You can get stock status by Product SKU. If you want to load Stock details using SKU, you can get the details of the Stock related information.
You need to use Magento\CatalogInventory\Model\StockRegistry to fetch stock status.
Using Stock Status Data, You can get the stock related info at the Website level, Stock is in stock, Backorder status, Qty, ProductId, Min. Qty, Manage Stock and many other stock field data.
<?php
namespace Jesadiya\StockStatus\Model;
use Psr\Log\LoggerInterface;
use Magento\Store\Model\StoreManagerInterface;
use Magento\CatalogInventory\Model\StockRegistry;
class StockStatus
{
/** @var LoggerInterface */
protected $logger;
/**
* @var StoreManagerInterface
*/
private $storeManager;
/**
* @var StockRegistry
*/
private $stockRegistry;
public function __construct(
LoggerInterface $logger,
StoreManagerInterface $storeManager,
StockRegistry $stockRegistry,
) {
$this->logger = $logger;
$this->stockRegistry = $stockRegistry;
$this->storeManager = $storeManager;
}
/**
* country full name
*
* @return string
*/
public function getStockStatus($sku)
{
$stockData = null;
try {
$stockStatus = $this->stockRegistry->getStockStatusBySku(
$sku,
$this->storeManager->getWebsite()->getId()
);
$stockData = $stockStatus->getStockItem();
} catch (\Exception $exception) {
$this->logger->error($exception->getMessage());
}
return $stockData;
}
}
Get the stock status using SKU value as a method parameter,
$sku = '111A1234';
$stockData = $this->getStockStatus($sku);
var_dump($stockData->debug());
When you debug the Stock data you got all the required information of the Product Stock.