- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-17-2019
04:16 AM
09-17-2019
04:16 AM
how to call product collection in observer
public function execute(\Magento\Framework\Event\Observer $observer)
{
{
$product = $observer->getProduct();
$_product_sku = $product->getSku();
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$_actual_product = $objectManager->create('\Magento\Catalog\Api\ProductRepositoryInterface')->get($_product_sku);
$attributes = $product->getAttributes();
}
this is not wrorking? can any one help on how to get the productObject in observer?
Labels:
3 REPLIES 3
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-17-2019
05:08 AM
09-17-2019
05:08 AM
Re: how to call product collection in observer
Hello @Mag.Net ,
1. To create an observer, you must place your class file under your <module-root>/Observer directory.
2 .Your observer class should implement Magento\Framework\Event\ObserverInterface and define its execute function.
If my answer is useful, please Accept as Solution & give Kudos
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-17-2019
05:38 AM
09-17-2019
05:38 AM
Re: how to call product collection in observer
Hi @Mag.Net
Here is solution, for Magento 1 and Magento 2. Please check.
Magento 1:
$products = Mage::getModel('catalog/product')->getCollection(); foreach($products as $prod) { $product = Mage::getModel('catalog/product')->load($prod->getId()); }
Magento 2:
You can directly get product collection by using Object Manager observer file. Although it's not recommended to use Object Manager directly in Magento 2.
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $productCollection = $objectManager->create('Magento\Catalog\Model\ResourceModel\Product\Collection'); $collection = $productCollection->addAttributeToSelect('*')->load(); foreach ($collection as $product){ echo 'Name = '.$product->getName().'<br>'; }
Let me know if you are looking for something similar.
Thanks
--
If my answer is useful, please Accept as Solution & give Kudos
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-17-2019
06:00 PM
09-17-2019
06:00 PM
Re: how to call product collection in observer
Hi @Mag.Net,
You can get product object using below way:
$product = $observer->getEvent()->getProduct();
If you want to use object manger, then you can use below code.
BTW Magento don't recommend to use object manager directly.
<?php
$productId = 8;
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$currentproduct = $objectManager->create('Magento\Catalog\Model\Product')->load($productId);
echo $currentproduct->getName();
?>
I hope it will help you!
You can get product object using below way:
$product = $observer->getEvent()->getProduct();
If you want to use object manger, then you can use below code.
BTW Magento don't recommend to use object manager directly.
<?php
$productId = 8;
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$currentproduct = $objectManager->create('Magento\Catalog\Model\Product')->load($productId);
echo $currentproduct->getName();
?>
I hope it will help you!