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')
))
InformationsquelleAutor TonyC83 | 2013-08-04
Schreibe einen Kommentar