Browsing articles tagged with "product Archives - Page 2 of 2 - Kalpesh Mehta"
May 26, 2013
kalpesh

Magento filter products by status

Get all the products with status equal to enabled/disabled.

If you are using Flat Catalog in Magento, you will not get disabled products by this filter as in flat table all the products are only enabled one. You can check if your Magento website uses flat catalog or not by going here:
Admin > System > Configuration > Catalog section > Catalog > Frontend

Check Use Flat Catalog Category and Use Flat Catalog Product, if they are Yes it means you are using flat catalog, if they are No it means you are NOT using flat catalog.

So, if you don’t have flat catalog enabled and you want to filter all the products with status equal to disabled, you can use below code:

1
2
3
4
5
6
7
8
$products = Mage::getModel('catalog/category')->load($category_id)
->getProductCollection()
->addAttributeToSelect('*') //whatever attributes you want to get here
->addAttributeToFilter(
    'status',
    array('eq' => Mage_Catalog_Model_Product_Status::STATUS_DISABLED) 
        //replace DISABLED to ENABLED for products with status enabled
);
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());
Jun 6, 2011
kalpesh

Magento: Get all the values of a Magento EAV for a particular attribute code

If you have ever wondered how to get all the values of any EAV attribute for products in Magento, then this is the workaround for you:

1
2
3
4
5
6
$attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', 'color'); //here, "color" is the attribute_code
$allOptions = $attribute->getSource()->getAllOptions(true, true);
foreach ($allOptions as $instance) {
    $myArray[$instance['value']] = $instance['label'];
}
Mage::log($myArray);

You will get list of all colors in an array called “myArray” in value => label format.

Pages:«12

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