How to get product collection in Magento 2

Table Content

Get Collection in Magento 2 means showing the items in your store when you run the command. With the code snippet in this topic, you can request the specific number of the product as you need. Let’s start calling the product in your Magento 2 store now!

Learn more: Get product collection by category ID in Magento 2

Overview of getting product collection in Magento 2

While there are different actions to get a certain product collection in Magento 2, they are loading, filtering (e.g. by attributes), and sorting. In this article, I will only introduce the fundamental steps to help you start working with product collection. Here are two initial steps:

  • Step 1: Declare in Mageplaza_HelloWorld Block
  • Step 2: Display product collection in phtml file

Step 1: Declare in Mageplaza_HelloWorld Block

You will use a block class of the module Mageplaza_HelloWorld, then possibly inject the object of \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory in the constructor of the module’s block class.

app/code/Mageplaza/HelloWorld/Block/HelloWorld.php

<?php
namespace Mageplaza\HelloWorld\Block;
class HelloWorld extends \Magento\Framework\View\Element\Template
{    
    protected $_productCollectionFactory;
        
    public function __construct(
        \Magento\Backend\Block\Template\Context $context,        
        \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory,        
        array $data = []
    )
    {    
        $this->_productCollectionFactory = $productCollectionFactory;    
        parent::__construct($context, $data);
    }
    
    public function getProductCollection()
    {
        $collection = $this->_productCollectionFactory->create();
        $collection->addAttributeToSelect('*');
        $collection->setPageSize(3); // fetching only 3 products
        return $collection;
    }
}
?>

Note: You can request the number of the product collection, which is a limited or unlimited number. While implementing this function, you will need to extend the code based on the requirement.

Step 2: Display product collection in phtml file

Print out the product collection in phtml file with the below code:

$productCollection = $block->getProductCollection();
foreach ($productCollection as $product) {
    print_r($product->getData());     
    echo "<br>";
}

Now, you can get the data of each product in the requested collection.

Hope that you can perform this function easily on your project. If you have any queries about getting product collections by filtering or sorting or any questions in general, use the comment section below!

Related Post

Image Description
Sam is the CEO & co-founder of Mageplaza, a company established to support Magento merchants with different powerful tools and resources. Sam Nguyen is also the CEO & founder of Avada Commerce, an e-commerce solution provider headquartered in Singapore – aiming to support more than a million online businesses to grow and develop.

People also searched for

  • magento 2 how to get product collection
  • magento 2 get product collection
  • get product collection magento 2
  • get product collection in magento 2
  • magento 2 product collection
  • magento2 get product collection
  • magento 2 get all products
  • magento 2 collection
  • how to get product collection in magento 2
  • magento 2 get collection
  • get all product collection in magento 2
  • magento 2 collection factory
  • magento 2 get all product collection
  • magento 2 product collection factory
  • magento 2 get all products programmatically
  • magento 2 get product collection using object manager
  • magento 2 get product collection by sku
  • magento 2 get products collection
  • how to get product collection in magento 2 programmatically
  • magento 2 custom product list
  • magento 2 get product collection by product id
  • magento 2 get product collection filter by attribute value
  • magento 2 get all products collection
  • magento 2 get featured products collection
  • magento 2 load product collection
  • magento 2 get product collection by ids
  • magento 2 product collection filter by product id
  • magento 2 get product collection filter by attribute
  • magento 2 collection limit
  • 2.3.x, 2.4.x
x