Magento: How to get / filter all products by attribute value?

Here, I will show you how you can filter or fetch products related to any particular attribute and value.

A simple scenario will be filtering products by manufacturer/brand. Suppose, I want to get all products under ‘Samsung’ manufacturer/brand.

For this, you need the attribute code and attribute value ID for which you are fetching products.

To fetch attribute name and value, you can see my previous post here:- Magento: How to get attribute name and value?

Now, lets move on to the code. Here is how you can do this:-


/**
 * Get all products related to any particular brand
 * Let us suppose that we are fetching the products related to 'Samsung' brand 
 * Let us suppose the Manufacturer ID of Samsung = 3
 */
 
$manufacturerId = 3;
$attributeCode = 'manufacturer';

$products = Mage::getModel('catalog/product')
					->getCollection()
					->addAttributeToFilter($attributeCode, $manufacturerId);

// print all products
echo "<pre>"; print_r($products->getItems()); echo "</pre>";

Hope this helps. Thanks.