Search code examples
phpmagento2.2

How to get products by category id in magento 2.2.1?


I am working in Magento 2.2.1, I am trying to get product-collection of a category by its category id.

Every time when i use to call using this example, I always get an error.


Solution

  • Try Below Code:

    <?php
    $objectManager =  \Magento\Framework\App\ObjectManager::getInstance();        
    
    $categoryFactory = $objectManager->get('\Magento\Catalog\Model\CategoryFactory');
    $categoryHelper = $objectManager->get('\Magento\Catalog\Helper\Category');
    $categoryRepository = $objectManager->get('\Magento\Catalog\Model\CategoryRepository');
    $store = $objectManager->get('Magento\Store\Model\StoreManagerInterface')->getStore();
    
    $categoryId = 47; // YOUR CATEGORY ID
    $category = $categoryFactory->create()->load($categoryId);
    
    $categoryProducts = $category->getProductCollection()
                                 ->addAttributeToSelect('*');
    
    foreach ($categoryProducts as $product) 
    {
        $imageUrl = $store->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA) . 'catalog/product' . $product->getImage();
        ?>
    
         <div class="product-container">
                      <a href="<?= $product->getProductUrl(); ?>">
    
                         <div class="new-arrivals-image"><img src="<?= $imageUrl;?>"></div>
                         <div class="product-name"><span class="name"><?= $product->getName(); ?></span></div>
                      </a>
                      <div class="price"><span class="pt"><?= $product->getPrice(); ?></span></div>
                   </div>
    
    <?php
    }
    ?>
    

    I hope it will help you