In this post I am going to explain how to get list of all products or you can say product collection in magento 2.
1. Using Dependency Injection
Add below code snippet in Block class.
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()
{
$productCollection = $this->_productCollectionFactory->create()
->addAttributeToSelect('*')
->addAttributeToFilter('visibility', \Magento\Catalog\Model\Product\Visibility::VISIBILITY_BOTH)
->addAttributeToFilter('status', \Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED)
->setOrder('entity_id', 'DESC');
return $productCollection;
}Add below code snippet in template file.
// Get product collection
$productCollection = $block->getProductCollection();
echo "<pre>";
print_r($productCollection->getData());
echo "</pre>";
if ($productCollection && count($productCollection) > 0) {
foreach ($productCollection AS $product) {
echo $product->getId() . "<br/>";
echo $product->getName() . "<br/>";
echo $product->getProductUrl() . "<br/>";
}
}
2. Using Object Manager
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$productCollectionFactory = $objectManager->create('Magento\Catalog\Model\ResourceModel\Product\CollectionFactory')->create();
// Get product collection
$productCollection = $productCollectionFactory->addAttributeToSelect('*')
->addAttributeToFilter('visibility', \Magento\Catalog\Model\Product\Visibility::VISIBILITY_BOTH)
->addAttributeToFilter('status', \Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED)
->setOrder('entity_id', 'DESC');
echo "<pre>";
print_r($productCollection->getData());
echo "</pre>";
if ($productCollection && count($productCollection) > 0) {
foreach ($productCollection AS $product) {
echo $product->getId() . "<br/>";
echo $product->getName() . "<br/>";
echo $product->getProductUrl() . "<br/>";
}
}
Write an article about ecommerce that help people to grow their ecommerce business. You’ll find best ecommerce guide, news, tips & more!


Leave a Reply