跨境电商
经验交流分享

Magento产品Dropdow属性id和value相关方法

品牌馆是很多网上商城必备的功能,Magento默认不包含有品牌馆的概念,虽然可以通过分类来模拟该效果,但实现起来,还是和真正意义上的品牌馆差别很大,并且需要在模板上做不少的修改。

最近项目中,开发了一款Magento品牌馆(Ruiwant_ShopbyBrand)插件,在获取产品collection的时候,涉及到了一些过滤参数。例如,在后台创建了一个自定义产品属性ruiwant_shopbybrand_brand,该属性类型为dropdown。该属性包含下面的值。

option_id        value

1                    佳能

2                   尼康

当客户点击手表品牌馆的时候,会列举出佳能,尼康,等等手表的Logo及名称,点击名称之后,会进入到该品牌的产品列表中。这里会遇到参数获取问题。我们可以直接获取到佳能、尼康这些自定义属性的value值,但是在addAttributeToFilter()到collection的时候,必须提供ruiwant_shopbybrand_brand的id值才能进行过滤,这里就需要根据自定义属性的value值,来获取到他的option id。大概代码如下。

[php]

$productModel = Mage::getModel(‘catalog/product’);
$attr = $productModel->getResource()->getAttribute("ruiwant_shopbybrand_brand");

if ($attr->usesSource()) {
echo $value_id = $attr->getSource()->getOptionId("佳能");
}

[/php]

毫无疑问,代码最终追踪到了Mage_Eav_Model_Entity_Attribute_Abstract类,attribute中定义的usesSource()和getSource()方法均可在其中找到,最后getSource()方法返回的是Mage_Eav_Model_Entity_Attribute_Source_Abstract类,该类中定义了getOptionId()和getOptionText()方法,分别用来通过值获取id和通过id获取值。

另附品牌馆的几张截图,目前属于最初版本,URL及页面样式均未做优化。

Magento品牌馆

Magento品牌馆

Magento品牌馆产品列表

Magento品牌馆产品列表

品牌馆-后台演示1

品牌馆-后台演示1

品牌馆-后台演示2

品牌馆-后台演示2

赞(0)
未经允许不得转载:锐想 » Magento产品Dropdow属性id和value相关方法
分享到: 更多 (0)

评论 1

评论前必须登录!

 

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

锐想无限