How to create a directory in Magento 2 Programmatically?

How to create a new Folder or Directory Magento 2?
When you are working for a custom module in Magento 2 and need to add the log to the custom file inside the var/log folder.

Log folder contains the multiple log files and if you want to create a new folder for your custom log of the module, You can create a New Folder programmatically using WriteInterface. Continue reading “How to create a directory in Magento 2 Programmatically?”

How to verify is Directory exists at specific path Magento 2?

Many times you need to verify the current path is a regular directory or not in Magento 2 and if directory exists you need to create a new file or do some custom logic.

But How you can verify this path is a directory or not using
Magento 2, You can verify the given path is the regular directory or not. Continue reading “How to verify is Directory exists at specific path Magento 2?”

How to get stock status by SKU Magento 2?

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.