Magento Produkt-Sammlung Filtern von Benutzerdefinierten Multiple-Attribut Auswählen
Habe ich eine fast vollständige Lösung für das zeigen von Magento Produkte gezielt nach region.
Den Regionen sind:
UK
Europa
Americas
Naher Osten
Rest der Welt
Alle Kunden zugewiesen wurden, eine region, die ich gemacht habe zur Verfügung über die variable $customerRegion.
Alle meine Magento-Produkte haben ein benutzerdefiniertes Attribut 'product_region", der region verfügbaren Optionen für mehrfach-Auswahl.
Liste.phtml sollten nur Produkte präsentieren, die mit dem Kunden region. Ich habe eine teilweise funktionierende Lösung:
$_productCollection = Mage::getResourceModel('catalog/product_collection')
->addCategoryFilter(Mage::getSingleton('catalog/layer')->getCurrentCategory())
->addAttributeToFilter('product_region',
array('eq' => Mage::getResourceModel('catalog/product')
->getAttribute('product_region')
->getSource()
->getOptionId($customerRegion)
)
)
->addAttributeToSelect('*');
Wenn der Kunde eine region ist Großbritannien, und das Produkt der region ist Großbritannien, der filter arbeitet wie erwartet.
Falls der Kunde die region ist Großbritannien, und das Produkt der region ist Großbritannien UND Europa, wird der filter nicht wie erwartet funktioniert (es werden keine Ergebnisse angegeben).
Wie kann ich passen Sie die filter, um das gewünschte Verhalten?
Habe ich versucht, mit 'in' und 'wie' statt 'eq', die aber nicht erfolgreich waren.
Danke.
P. S. Ein einfacher Weg, um das gleiche problem zu betrachten, der den folgenden code:
->addFieldToFilter(array(
array('attribute'=>'product_region','eq'=>'49')
))
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
finset
statteq
(wählen Sie mehrere Werte gespeichert werden, die im CSV-format)