You can get product data by product SKU in Magento 2 by below code snippets,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | <?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,
1 2 3 4 | $sku = '24-MB01'; $product = $block->getProductBySKU($sku); echo $product->getName(); // product name echo $product->getId(); // product id |