addAttributeToFilter and OR condition in Magento's Collection

ÉricP picture ÉricP · Mar 14, 2011 · Viewed 49.5k times · Source

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

Rito picture Rito · Mar 14, 2011

yes it is.

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