How to Get Product Collection by Product SKU in Magento 2?

In Magento 2, getting product collection by product SKU is a very useful method when you filter the products in the catalog. In today's tutorial, we will help you how to get product collection by product SKU in Magento 2 by the below code snippet:

<?php
namespace MageDelight\Training\Block;
class Product extends \Magento\Framework\View\Element\Template
{
 /**
 * Constructor
 *
 * @param \Magento\Framework\View\Element\Template\Context $context
 * @param array $data
 */
 public function __construct(
 \Magento\Framework\View\Element\Template\Context $context,
 \Magento\Catalog\API\ProductRepositoryInterface $productRepository,
 array $data = []
 ) 
{
 $this->productRepository = $productRepository;
 parent::__construct($context, $data);
 }
/**
 * Get Product by SKU
 * @param mixed
 * @return \Magento\Catalog\Model\Product $product
 */
 public function getProductBySKU($sku)
 {
 try {
 $product = $this->productRepository->get($sku);
 } catch (\Exception $exception) {
 throw new \Magento\Framework\Exception\NoSuchEntityException(__('Such product doesn't exist'));
 }
 return $product;
 }
}

Now, call the function with the following code:

$sku = '24-MB01';
$product = $block->getProductBySKU($sku);
echo $product->getName(); // product name
echo $product->getId(); // product id

We hope we covered everything related to getting product collection by product SKU in Magento 2. If we missed out on anything, feel free to reach us out!

Also read: