magento 中,由于使用了强大的EAV设计方法,我们可以很方便的给商品添加任意数量的属性。然而magento 没有给我们提供给商品分类添 加属性的功能。尽管我们知道magento所采用的EAV设计方法是完全可以实现的,但是我们又该如何才能给magento 的商品分类添加一个属性呢?比 如我们想基于产品分类添加一些属性使之应用于产品,或者用来区分产品分类等。

如果不通过magento 的方式,直接通过操作数据库,可以按照以下步骤来添加:

step 1,向eav_attribute表插入一条记录。作用是定义一个新属性,并指定这个属性属于商品分类category。先找出magento 商品分类(category entity)对应的entity_type_id,并确定好attribute_cod, backend_type,frontend_input, frontend_label, default_value, source_mode的值。如果不确定某个字段应该使用什么 值,可以参考一个商品分类其它属性的值来设定。

NSERT INTO eav_attribute
( entity_type_id ,  attribute_code ,  backend_type ,  frontend_input ,  frontend_label , default_value ,  source_model )
VALUES
( 3 ,  'category_featured' ,  'int' ,  'select' ,  'Featured Category' ,  '' , 'eav/entity_attribute_source_boolean' );

注意:一定要确认正确的 entity_type_id,不要照搬上面的sql语句,如果不太熟悉可以直接使用phpmyadmin,尽量参照商品分类其它属性的值。

仅仅这一句只是给分类添加了新增的属性,但是那些已经创建的分类是不会有这些属性的,为了让这些分类有新增的属性,还需要向magento的另一个 表中插入一条记录。

Step 2,向eav_entity_attribute插入一条记录。其中 entity_type_id和上面得到的是一样的,attribute_id则是上面新插入记录的ID,sort_order则是这个属性在这个属性组 中排序的序号。attribute_set_id属性集的ID,attribute_group_id是属性分组的ID。一样的,如果你不能完全确认相应 字段的值,可以通过参考商品分类其它属性的值来确定。

INSERT INTO eav_entity_attribute ( entity_type_id, attribute_set_id, attribute_group_id, attribute_id, sort_order ) VALUES ( 3, 3, 3, <new attribute ID>, <next sort order> )

这样你就给magento的商品分类(category)添加了一个新属性,而且已经添加完的分类也会这个新增属性。

那我们如何,才能在magento模板中,或者magento的model,helper,controller的类代码中获取到这个属性的值呢? 得益于magento强大的setter,getter,你可以直接使用$category->getAttribute_name()来获取这个 属性的值。

出处:http://blog.csdn.net/xinhaozheng/archive/2009/07/30/4395564.aspx

magento -- 如何为商品分类(category)添加自定义属性的更多相关文章

  1. dedecms:织梦文章如何添加“自定义属性”标签(sql命令行工具)

    dede织梦如何添加“自定义属性”标签“症状” 1.进入后台——系统——SQL命令行工具——运行SQL命令行,添加arcatt表字段: insert into`dede_arcatt`(sortid, ...

  2. Web开发笔记 #08# Jackson组合多个对象的属性构成JSON(以及添加自定义属性)

    参考文档:https://github.com/FasterXML/jackson-databind 关于ObjectMapper的线程安全 截自官方文档: 组合多个对象的属性构成JSON(以及添加自 ...

  3. 给category添加基本数据类型属性

    给category添加基本数据类型属性 说明 通常,我们添加属性都是通过对象扩展来实现的,其实,我们也可以用runtime来添加基本数据类型的属性 源码 // // UIView+AnimationP ...

  4. JavaScript: 高级技巧: window 对象也可以添加自定义属性

    JavaScript: 高级技巧: window 对象也可以添加自定义属性 例如 window.ntName = 'a';例如 window.ntXw = top; 优点是, window 无须等加载 ...

  5. js关于为DOM对象添加自定义属性的方式和区别

    DOM对象的三种在添加自定义属性的方式 一是 通过 “.”+“属性名” 二是 setAttribute()(getAttribute()获取) 三是 直接在元素标签上加属性  如:<div  n ...

  6. iOS Category 添加属性实现原理 - 关联对象

    iOS Category 添加属性实现原理 - 关联对象 RunTime为Category动态关联对象 使用RunTime给系统的类添加属性,首先需要了解对象与属性的关系.对象一开始初始化的时候其属性 ...

  7. 给html元素添加自定义属性,并且用jquery进行筛选

    例如有多个div,想要实现类似radio的效果. <div name="teacher" selected="selected">tch1</ ...

  8. category添加属性

    category添加属性 面试题 Category的实现原理,以及Category为什么只能加方法不能加属性. Category中有load方法吗?load方法是什么时候调用的?load 方法能继承吗 ...

  9. Jquery获取select option动态添加自定义属性值失效

    Jquery获取select option动态添加自定义属性值失效 2014/12/31 11:49:19 中国学网转载 编辑:李强 http://www.xue163.com/588880/3909 ...

随机推荐

  1. 使用TypeScript开发程序

    简介 TypeScript一直发展不错,我们公司在开发新功能时,考虑到程序的可维护性,使用了TypeScript编写浏览器上的程序,我们是从零开始使用TypeScript,甚至我连javascript ...

  2. eclipse 中提示tomcat 的端口被占用了 后的最快捷解决方法

    很多时候运行tomcat 的时候总是会提示tomcat 的端口被占用 但是任务管理器里面还找不到是哪个端口被占用了 因此很多人就重新配置tomcat  或者去修改tomcat的端口号 ,其实这么做太麻 ...

  3. firefox hack

    @-moz-document url-prefix(){ css选择器 { css样式设置 } }

  4. 实验一 Java开发环境的熟悉境的熟悉

    - 运行结果: (一)命令行下Java程序开发 (二)Eclipse下Java程序开发.调试 设置断点和单步运行 单步运行:Step Into(快捷捷F5)和Step Over(快捷捷F5) 使程序直 ...

  5. java 中遇到的问题及解决方法

    1.经常发现明明导入jar包,还是会报java.lang.NoSuchMethodError和java.lang.NoClassDefFoundError 试试网上的各种方法,包括重新导入jar包.重 ...

  6. BZOJ1932 [Shoi2007]Setstack 集合堆栈机

    妈呀...clj大爷太强啦! 原来还有set_union和set_intersection这种东西... 于是只要把栈顶的每个元素hash一下记录到一个vector里去就好了 /*********** ...

  7. DQL查询语句内容整理

    select * from t_hq_ryxx; select bianh,xingm from t_hq_ryxx; --为字段名定义别名 select bianh as 编号,xingm as 姓 ...

  8. iOS app调试的黑魔法--第三方库

    http://www.cocoachina.com/ios/20140928/9785.html

  9. win10 ctrl + 空格 热键取消

    关键:添加English,并上移到第一,即开机默认即可.Win8+不用修改注册表的,只有win7里才可能需要修改注册表. http://superuser.com/questions/327479/c ...

  10. 在线体验K2 BPM微信审批

    “微信审批”在江湖中传言已久,但很多人依然“只闻其声,未见其人”,这传说中的手感到底有多好?今天,我们就一起来揭开它的真面目吧. 故事发生在上周六傍晚,我接到了加班电话. 晚上21:30终于加完班了, ...