Hi,
I'm using 2.4 and I'm looking to filter a product collection with a certain attribute(s).
For example - show all products that are black or show all products that are square etc. Is there no search query or filter to do this?
I had to create categories for this in Magento 1, Black category, Square category etc. I can't find a way to filter all products in this way, only within an existing catagory.
Thank you.
Try to use below code:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $productCollection = $objectManager->get("Magento\Catalog\Model\Product")->getCollection(); $productCollection->addAttributeToSelect("color")->addAttributeToFilter( array( array('attribute'=> 'color','notnull' => true), array('attribute'=> 'color','neq' => ''), array('attribute'=> 'color','neq' => 'NO FIELD'), ),'','left' ); $productIds = array(); foreach ($productCollection as $product) { $productIds[] = $product->getId(); } print_r($productIds);
It may help you!
Problem Solved? Please click on 'Kudos' & Accept as Solution!
Thanks for the reply, where would this be used? Is the only way to filter products programatically like this?