繁体   English   中英

Magento产品系列按自定义多选属性筛选

[英]Magento Product Collection Filter by Custom Multiple Select Attribute

我有一个几乎完整的解决方案,可以按区域选择性地显示Magento产品。

这些地区是:
联合王国
欧洲
美洲
中东
世界其他地区

已为所有客户分配了一个区域,我通过变量$ customerRegion提供了该区域。

我的所有Magento产品都有一个自定义属性'product_region',它有多个区域选项可供多种选择。

list.phtml应该只显示与客户所在地区相匹配的产品。 我有一个部分工作的解决方案:

$_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('*');

如果客户的区域是英国,并且产品的区域是英国,则过滤器按预期工作。
如果客户的区域是英国,并且产品的区域是英国和欧洲,则过滤器不能按预期工作(未给出结果)。

如何调整过滤器以获得所需的行为?

我尝试使用'in'和'like'而不是'eq',但没有成功。

谢谢。

PS查看同一问题的更简单方法是查看以下代码:

->addFieldToFilter(array(
    array('attribute'=>'product_region','eq'=>'49')
))

使用finset而不是eq (多个选择值以CSV格式存储)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM