May 10, 2013
kalpesh

Magento get products by attribute set id or name

In Magento get all the products by specific attribute set ID or Name with below code snippet. If you want to get products by attribute set Name, then first get the attribute set ID from name as shown in the first 4 lines of code. If you already have attribute set ID, ignore first 4 lines of code as it is only used if you have attribute set Name and not it’s ID.

The resultant array will give you all the products with all the attributes and values. You can narrow the attributes that you only need by specifying them when you call $products->addAttributeToSelect(*) or when you get all data from product $prod->getData().

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//If planning to get all products by attribute set NAME
$attrSetName = 'your_attribute_set_name_here';
$attributeSetId = Mage::getModel('eav/entity_attribute_set')
    ->load($attrSetName, 'attribute_set_name')
    ->getAttributeSetId();

//If planning to get all products by attribute set ID
$attributeSetId = 'your_attribute_set_id_here';

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

$products->addAttributeToSelect('*');

$products->load();
foreach($products as $prod) {
        $productsArray[] = $prod->getData(); //get all data or specify any attribute
}

Mage::log($productsArray());

1 Comment

  • can you do it for magento2 ?

Leave a comment

 

Welcome to my Blog

Kalpesh MehtaHelping Magento developers in their day-to-day development problems since 2011. Most of the problems and solutions here are my own experiences while working on different projects. Enjoy the blog and don't forget to throw comments and likes/+1's/tweets on posts you like. Thanks for visiting!

Certifications

Honor

Recognition

Magento top 50 contributors

Magento top 50 contributors

Contributions