跨境电商
经验交流分享

Magento addAttributeToFilter筛选产品多选字段

没有用MagentoaddAttributeToFilter筛选产品多选字段之前,可能会觉得这是个蛮简单的。做之前以为使用in来做筛选就可以实现,一旦结合了业务逻辑,才发现完全不是那么回事。首先来介绍下项目中运用到该方法的背景。

在该项目中,客户要求为不同级别的会员显示不同的产品。实现该功能非常简单,首先为产品添加了一个VIP推荐属性(如下图所示),该属性自动对应不同的会员组。当客户访问页面的时候,系统首先获取当前登录客户的会员级别,然后通过addAttributeToFilter方法过滤即可。

Magento不同会员显示不同商品

Magento不同会员显示不同商品

例如当钻石客户访问的时候,只需要通过如下代码即可进行筛选。下面的groutAttr变量是获取当前客户的会员组ID之后匹配的产品属性value值。

[php]
$collection->addAttributeToFilter(‘ruiwant_product_vip’, array(‘eq’ => $groupAttr));
[/php]

然后问题来了,如果这块商品不仅仅推荐给钻石会员呢?客户希望某款产品即推荐给钻石会员,又推荐给金牌会员,用上面的方式就无法成功过滤产品了。这里需要用到finset。代码如下。这样,就可以成功筛选出来了。

[php]
$allowed = array(array("finset" => array(4)));
$collection->addAttributeToFilter(‘ruiwant_product_vip’, $allowed);
[/php]

类似情况及参考文章:

http://stackoverflow.com/questions/10519670/magento-addattributetofilter-with-mutliple-select

http://www.magentocommerce.com/boards/viewthread/201312/

赞(0)
未经允许不得转载:锐想 » Magento addAttributeToFilter筛选产品多选字段
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

锐想电商 - 跨境电商经验交流分享

锐想无限