Pregunta

Estoy tratando de filtrar una colección de productos basada en un atributo que es un atributo multi-selecto.Aquí está mi código,

$collection2 = Mage::getModel('catalog/product')->getCollection();

$collection2->addAttributeToSelect('name'); 
$collection2->addAttributeToSelect('manufacturer');
$collection2->addAttributeToSelect('printer_family');
$collection2->addAttributeToSelect($attributeCode);

$collection2->addFieldToFilter(array(
array('attribute'=>'manufacturer','eq'=>$ctname), 
)); 


$collection2->addFieldToFilter(array(
array('attribute'=>'printer_family','eq'=>$value), //this filter is not working
)); 

La variable $ valor se recupera de la siguiente manera

$product->getAttributeText($attributeCode);

¿Puede alguien decirme qué estoy haciendo mal?

¿Fue útil?

Solución

solo cambio

->addFieldToFilter(array(
array('attribute'=>'printer_family','eq'=>$value), //this filter is not working
)); 

a

addFieldToFilter('printer_famil',
    array(
        array('finset'=> array($val1)),
        array('finset'=> array($val2)),
        array('finset'=> array($val3)),
    )
);

Compruebe los enlaces:

https://jmpmaniacs.wordpress.com/2012/03/03/2012/03/03/filter-product-collection-for-multi-magent-attribute-in-magento/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top