How to get product image url in Magento 2?

In the e-Commerce Site, Each Product contains unique images like Small Images, Base images, and thumbnail images.

Many times in custom development we need to required get the product URL in Magento 2. If you are developing some features related to images and want to retrieve the image URL, You can achieve the image full URL by referring to this article.

If you are dealing with PWA stuff and want to fetch the product image URL by GraphQL, Get Product Image URLs with GraphQl Continue reading “How to get product image url in Magento 2?”

How to get product collection by product sku in magento 2?

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

How to get product collection by product id in magento 2?

You can get product data by product id 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 Id
    * @param int
    * @return \Magento\Catalog\Model\Product $product
    */
    public function getProduct($id)
    {
        return $this->productRepository->getById($id);
    }
}

Call inside template file by below code,

$product_id = 1;
$product = $block->getProduct($product_id);
echo $product->getName(); // product name
echo $product->getSku(); // product sku