magento 获取自定义产品属性和属性值
在magento系统中经常要自定义自己的产品属性,在后台自定义的产品属性如何获取呢,下面根据属性类型的不同分别说明
产品属性要想在前台获取到需要设置属性的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'=><span style="color:#ff6666;">45</span>));<span style="color:#3366ff;">//45这个值是怎么得到的呢,这个值是system_version为4.2时对应的属性值,关于怎么获取属性的值在后面会讲</span>
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 获取自定义产品属性和属性值相关推荐
- 深入理解java注解,java的4个元注解,注解三要素——定义、使用及读取执行,深入了解注解的底层本质,通过反射自动、动态获取注解所有属性以及属性值
1. 注解的定义 注解也是一种引用类型,编译后会生成 .class 字节码文件,作用就是为程序进行标识,不同注解能实现不同功能. 2. 注解的使用 3. 注解的读取执行 3.1 得不到注解信息,得到的 ...
- jQuery获取、设置标签属性值
jQuery获取.设置标签属性值 jQuery提供了两种方法: attr():传入一个参数获取某属性值,两个参数:修改某属性值,返回参数的值(不推荐操作checked.readOnly.selecte ...
- python获取控件内容_python通过win32api轻松获取控件的属性值
1.如何利用句柄操作windows窗体 首先,获得窗体的句柄 win32api.FindWindows() 第二,获得窗体中控件的id号,spy++ 第三,根据控件的ID获得控件的句柄(hwnd) ...
- js 中使用idx模块方便获取链条式的对象属性值
1. 背景 从一个js对象的属性值中的属性再次获得值,或者从集合中获得元素再获得属性值要写很多判断是否空的表达式,才能继续读取,否则就出现异常.这在开发过程很繁琐的事情,idx 模块就是来解决这个问题 ...
- C#通过属性名字符串获取、设置对象属性值
目录 #通过反射获取对象属性值并设置属性值 0.定义一个类 1.通过属性名(字符串)获取对象属性值 2.通过属性名(字符串)设置对象属性值 #获取对象的所有属性名称及类型 #判断对象是否包含某个属性 ...
- java获取实体类对象_java 获取实体类对象属性值的方法
在java中我们要获得实体类对象的属性,一般情况是将实体类中的属性私有化,然后再对外提供get()与set()方法,然后再获取实体类对象的属性的时候先把对象new出来,再用变量名.get()的方法得到 ...
- java通过反射获取对象的指定属性值(包括私有属性值和指定注解属性值)
通过反射机制,可以灵活地根据对象的属性名的字符串形式获取对象的属性值.当一个对象有多个属性的时候,只需要对其中的几个特定属性进行某种特殊处理,具体是哪个属性并不能提前确定,每个需要处理的属性的方法也不 ...
- php 获取js对象的属性值,js获取对象,数组所有属性键值(key)和对应值(value)的方法示例...
本文实例讲述了js获取对象,数组所有属性键值(key)和对应值(value)的方法.分享给大家供大家参考,具体如下: var values=function(object) { var values ...
- Controller层使用@value注解获取不到properties属性值
说到@Value注解,用过的应该都知道,这是Spring3的一个注解,通过@value注解的方式获取properties文件中的配置值,大大简化了我们读取配置文件的代码.然而,最近在使用中发现在con ...
最新文章
- 【linux】Matchbox(二):基本概念
- Android 打包混肴
- iOS开发-Certificates、Identifiers和Profiles详解
- Struts2学习第二天——动态方法调用
- c语言规定标识符 字符串,c语言中标识符命名规则是怎样的
- Effective Java之请不要在新代码中使用原生态类型(二十三)
- 【渝粤教育】广东开放大学 大学英语1 形成性考核 (43)
- 在main中调用srand是否影响子函数中的rand()的返回值?
- webStrorm js文件里 怎么去掉参数的下划线
- c语言答案知码,C语言笔试习题集答案和解析.doc
- 算法第四版开发环境的配置
- 微信小程序实例源码下载
- 安卓控制新大陆云平台(二)
- 嵌入式思维 、不深不浅的理解
- Mac SpotLight无法搜索
- GLSL 参考GIMP源码实现色彩平衡调节
- WHM(Web Hosting Manager)/CPANEL 设置及linux 文件权限 经验
- Happens-Before原则
- 上饶师范学院数学与计算机科学学院,第4章-上饶师范学院数学与计算机科学学院.doc...
- 修改密码问题_修改密码
热门文章
- 阿里云物联网平台之创建产品与设备
- 太赞了!图解SQL基础知识,菜鸟也能看懂的SQL文章!
- 滴滴在HBase性能与可用性上的探索与实践
- 回忆--上海滩奋斗的日子
- 用yolo-v3检测算法检测图片中的apple和damaged_apple
- invoke调用成员方法(无参和有参):
- 鸿蒙支持手机型号,推出鸿蒙,放弃安卓?华为新机入网,鸿蒙首发机型确定!...
- java webservice jws,1 基于jws的webservice项目
- 这个地方沸腾,高手争雄,至尊大决战,从天上杀到地下,又从地上打到云霄上!
- 支付宝支付学习:蚂蚁沙箱环境是什么?怎样使用蚂蚁沙箱环境?