magento 获取自定义产品属性和属性值
2012-11-05 16:21
295 查看
在magento系统中经常要自定义自己的产品属性,在后台自定义的产品属性如何获取呢,下面根据属性类型的不同分别说明
产品属性要想在前台获取到需要设置属性的Used in Product Listing 为true
1、下拉列表的产品属性
如定义了一个表示产品的硬件支持类型的下拉列表属性support_hardware就可以这样获取
2、文本类型的产品属性
如定义了一个属性叫version_number用来表示产品的版本号,这个属性是文本类型的,那么就可以这样获取
当得到产品对象后我们可以获取产品的各种属性,如果我们要获取满足一定属性条件的产品集呢?这时候就需要根据产品属性对产品过滤了
magento提供的根据属性过滤的接口有两种,一种是addAttributeToFilter,另一种是直接操作数据库通过getSelect()->where()的方法
1、addAttributeToFilter接口
比如我们想要获取APP产品支持的系统版本(属性name是system_version)在4.2以上的的产品集,就可以这么做
2、通过getSelect()->where()直接操作数据库
通过这种方式要求对数据库结构属性,通常我们会用
怎么通过where写复杂的查询数据库语句会在另一篇中讲解
获取产品后通常还要加上对产品做产品是否是激活,是否在当前商店的判断
下面讲下怎么获去属性的值
1、假设我们知道attribute的ID为149,就可以这样获取属性的value和label
2、怎么根据attribute的name来得到attribute对象还在研究中
在实际应用时通常要获取可用来过滤产品的的属性,也就是filterable attributes,获取的方法如下:
产品属性要想在前台获取到需要设置属性的Used in Product Listing 为true
1、下拉列表的产品属性
如定义了一个表示产品的硬件支持类型的下拉列表属性support_hardware就可以这样获取
$attributes['support_hardware']=$product->getAttributeText('support_hardware');
2、文本类型的产品属性
如定义了一个属性叫version_number用来表示产品的版本号,这个属性是文本类型的,那么就可以这样获取
$attributes['version_number']=$product->getData('version_number');
当得到产品对象后我们可以获取产品的各种属性,如果我们要获取满足一定属性条件的产品集呢?这时候就需要根据产品属性对产品过滤了
magento提供的根据属性过滤的接口有两种,一种是addAttributeToFilter,另一种是直接操作数据库通过getSelect()->where()的方法
1、addAttributeToFilter接口
比如我们想要获取APP产品支持的系统版本(属性name是system_version)在4.2以上的的产品集,就可以这么做
$_productCollection = Mage::getResourceModel('catalog/product_collection') ->setStoreId(1) ->addAttributeToSelect('*') ->addAttributeToFilter('system_version',array('gteq'=>45));//45这个值是怎么得到的呢,这个值是system_version为4.2时对应的属性值,关于怎么获取属性的值在后面会讲
2、通过getSelect()->where()直接操作数据库
通过这种方式要求对数据库结构属性,通常我们会用
$_productCollection->getSelectSql()来帮助我们写sql语句
$_productCollection->getSelect()->where('age',array('gteq'=>45));
怎么通过where写复杂的查询数据库语句会在另一篇中讲解
获取产品后通常还要加上对产品做产品是否是激活,是否在当前商店的判断
$product->isSalable()
下面讲下怎么获去属性的值
1、假设我们知道attribute的ID为149,就可以这样获取属性的value和label
$attributeOption=Mage::getResourceModel('eav/entity_attribute_option_collection') ->setPositionOrder('asc') ->setAttributeFilter(149) ->setStoreFilter() ->load(); $attributeOptionArray=$attributeOption->toOptionArray(); echo "<hr>"; print_r($attributeOptionArray);
2、怎么根据attribute的name来得到attribute对象还在研究中
在实际应用时通常要获取可用来过滤产品的的属性,也就是filterable attributes,获取的方法如下:
protected function _getFilterableAttributes(){ $layer = Mage::getModel("catalog/layer"); $rootCategory=Mage::getModel('catalog/category')->load(Mage::app()->getStore()->getRootCategoryId()); $layer->setCurrentCategory($rootCategory); $attributes = $layer->getFilterableAttributes(); $this->_filterableAttributesExists=array(); foreach ($attributes as $attribute) { //echo $attribute->getAttributeCode(),"---",$attribute->getId(),"</br>"; $this->_filterableAttributes[$attribute->getAttributeCode()]=$attribute->getId(); } krsort($this->_filterableAttributes); return $this->_filterableAttributes; }
相关文章推荐
- magento 获取自定义产品属性和属性值
- magento 获取自定义产品属性和属性值
- magento 获得自定义产品属性的属性值
- magento -- 获取产品的属性值
- magento 通过属性获取产品
- 如何给magento的产品分类创建一个自定义属性?
- Magento 通过属性获取产品和目录
- magento如何获取产品属性值 How to Obtain Custom Attribute Values in Magento
- magento -- 下拉框时获取产品的属性值
- magento如何获取产品属性值 How to Obtain Custom Attribute Values in Magento
- magento -- 根据属性名获得产品的属性值
- Magento 通过SKU 或 属性获取产品和目录
- 如何给magento的产品分类创建一个自定义属性?
- magento获取产品的方法
- java 反射机制--根据属性名获取属性值
- java获取Object属性类型、属性名称、属性值
- 使用反射获取枚举的自定义属性Attribute
- js 获取自带与自定义的属性值
- vue2.0获取自定义属性的值
- android 自定义注解 通过反射获取注解属性值