You can get product data by product SKU in Magento 2 by below code snippets,
<?php namespace Rbj\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; } }
Call product collection under the template file by below code,
$sku = '24-MB01'; $product = $block->getProductBySKU($sku); echo $product->getName(); // product name echo $product->getId(); // product id