Je voudrais sélectionner des produits en fonction de plusieurs critères de différents attributs.
Je sais comment utiliser $collection->addAttributeToFilter('someattribute', array('like' => '%'));
Mais je voudrais utiliser plusieurs attributs pour [~ # ~] ou [~ # ~] condition.
Comme:
$collection->addAttributeToFilter('someattribute', array('like' => 'value'));`
OR
$collection->addAttributeToFilter('otherattribute', array('like' => 'value'));`
Pour obtenir des produits qui soit "someattribute" OU "otherattribute" défini sur "value"
C'est possible?
oui, ça l'est.
$collection->addAttributeToFilter(
array(
array('attribute' => 'someattribute', 'like' => 'value'),
array('attribute' => 'otherattribute', 'like' => 'value'),
array('attribute' => 'anotherattribute', 'like' => 'value'),
)
);
Si vous souhaitez utiliser la même chose pour la fonction addFieldToFilter pour les collections qui n'utilisent pas l'EAV, vous pouvez utiliser le format suivant:
$collection->addFieldToFilter(
array(
'someattribute',
'otherattribute',
'anotherattribute',
),
array(
array('like' => 'value'),
array('like' => 'value'),
array('like' => 'value'),
));
Une autre chose à considérer pour atteindre "OU" est:
->addFieldToFilter(
'type_id',
['in' => ['simple', 'configurable']]
)
Pour addAttributeToFilter:
$collections = Mage::getModel('sales/order')->getCollection()
->addAttributeToFilter('increment_id', array('in' => $sellerIncrementIds))
->addAttributeToFilter('status', ['in' => ['pending','pending_seller_confirmation']]);