ÉricP ÉricP - 7 months ago 27
PHP Question

addAttributeToFilter and OR condition in Magento's Collection

I'd like to select products depending on several criteria from different attribute.

I know how to user

$collection->addAttributeToFilter('someattribute', array('like' => '%'));


But I'd like to use several attribute for OR condition.

Like:

$collection->addAttributeToFilter('someattribute', array('like' => 'value'));`


OR

$collection->addAttributeToFilter('otherattribute', array('like' => 'value'));`


To get products which either 'someattribute' OR 'otherattribute' set to 'value'

Is it possible?

Answer

yes it is.

$collection->addAttributeToFilter(
    array(
        array('attribute'=> 'someattribute','like' => 'value'),
        array('attribute'=> 'otherattribute','like' => 'value'),
        array('attribute'=> 'anotherattribute','like' => 'value'),
    )
);

see also in Magento Wiki