Filter product collection by option value.
Filter by option value
The product collection filter by attribute option value.
$statusEnable = Mage_Catalog_Model_Product_Status::STATUS_ENABLED;
$collection = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToFilter('status',
array('eq' => $statusEnable)
)
->addAttributeToSelect('*')
->addAttributeToFilter('[attibute_name]',
array('eq' => '[value]')
);
Filter by dropdown option value
The product collection filter by dropdown option value.
$sAttributeName = '[custom_attribute_identifier_id]'; //for example: color, size
/*
* Get custom attribute option values
*
*/
$optionValues = Mage::getResourceModel('catalog/product')
->getAttribute($sAttributeName)
->getSource()
->getAllOptions(false);
/*
* Select the option id for the choosen dropdown option value
*
*/
foreach($optionValues as $options) {
if($options['label'] == '[choosen_value]') {
$optionIds[] = $options['value'];
}
}
/* print_r($optionIds); */
/*
* Filter product collection by dropdown option id
*
*/
$collection = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToFilter('status',
array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED)
)
->addAttributeToSelect('*')
->addAttributeToFilter($sAttributeName,
array('in' => $optionIds)
);
[choosen_value] In frontend, selected dropdown value to match option values to get option id.
No comments:
Post a Comment