Magento(社区版)自带模块解析以及在国内的使用建议三

21、Contacts

联系我们(CONTACT US)模块,这是一个独立的功能小模块,可用于收集网站客户提交的建议和意见。


需要指出的是,这个表单提交的数据,并没有存进数据库,而是通过发邮件的方式把数据发送到了网站主的邮箱里。另外,从当前国内网站的习惯来说,“联系我们”页面一般不会直接放一个表单去让用户填,而是一个展示了商家的各种电话、邮箱、地址等等联系方式的静态内容页面(比如苏宁易购和唯品会的联系我们页面)。

前面提到了Contacts模块是一个独立的功能模块,所以不需要这个功能的话可以关闭它,如果确实需要这种表单方式的“联系我们”的话,我个人建议是在这个模块基础上改造下,把用户提交的信息存到数据库里去。

22、Core

Core模块就是Magento最核心的模块(看模块名也知道了),如果说其它模块大部分是实现了具体的功能的话,那么Core模块就是Magento的核心架构本身。Core模块包含了路由,控制器,缓存,ORM等等核心功能,可以理解为Core模块就是一个全功能的php框架(部分基于zend framework再封装),而整个Magento就是在这个框架基础上开发各种功能集合而成的(开发具体功能模块的时候会发现各部分都需要大量集成来自Core模块的核心类)。

23、Cron

计划任务模块,Magento创立了一套只在服务器设置一条crontab就可以实际上同时跑各种计划任务的机制,机制详见置顶文章: 计划任务(cron job)在magento中的作用和使用教程。具体程序上Magento是怎么做到这一点的,实现的代码就在这个Cron模块里面,有兴趣的可以细细看下这个模块的代码。

Magento的这套Cron机制,是网站正常运作必不可缺的,所以Cron模块也是核心模块之一,需要保持开启状态。

24、CurrencySymbol

货币符号模块,这个模块功能很简单,仅仅是可以在后台指定某种货币在页面显示时价格的前缀符号(比如美元的$)


重点来了,Magento的每种货币的价格前缀符号是有默认值的(美元默认就是$),而且这个默认值跟CurrencySymbol模块没啥关系,CurrencySymbol模块能做的是,当你不想用默认符号时,可以在后台可视化修改(比如美元改成$$睡觉)。

如果你不需要修改货币的默认符号(好奇什么情况下需要修改),那就把CurrencySymbol模块关了吧(经过简单测试,关掉这个模块没啥影响)。

25、Customer

电商几大基本组成元素之一的“用户”模块,Customer模块的功能大体可以分成三块,用户数据,用户地址数据,用户分组。其中用户分组部分数据结构比较简单,而用户和用户地址两块的数据都是EAV结构(EAV的含义后面的EAV模块会讲到)。从页面上来说,前台用户注册、登录、忘记密码、个人中心等等都是Customer模块的控制范围。

针对国内的实际使用情况,一般需要对Customer模块进行一定的二次开发,比如经典的姓名问题(Magento按照老外的习俗分为First Name和Last Name,做中文站需要做合并),再比如国内站现在一般不会只用邮箱做登录名,至少会加上手机,可能还会加上用户名。再进一步的话,国内站会要求做到可以用QQ、微信和微博等等第三方直接登录,这些都需要对Customer模块做二次开发来实现。

用户模块是核心,自然不能关闭。

26、Dataflow

数据流模块(字面意思),Magento用来做导入导出功能的其中一个模块(另一个是ImportExport)


跟ImportExport相比,Dataflow提供了通过xml来定制一些参数来实现各种复杂需求的导入导出功能,不过据说在导入的速度上Dataflow要明显慢于ImportExport。

仅从功能上看,不需要导入导出的用户应该可以关掉Dataflow模块,不过Magento的模块配置文件(Mage_All.xml)里,Mage_Customer和Mage_Catalog两个核心模块都是依赖于Dataflow的,如果关闭Dataflow,Mage_Customer和Mage_Catalog也没法用了。(强行删除依赖关系<depends>的话,不确定会不会对系统有影响,有待测试)

27、Directory

地区(国家、省)和货币模块。货币部分,Magento支持全世界所有主流的货币类型,支持不同Store View各自使用不同的货币类型,同时Magento提供了商品价格在不同货币类型下根据汇率的自动切换,以及汇率本身的定时自动更新。地区部分,Magento原生情况下只提供了country表和region表,也就是说,在地址管理(订单结算页新增地址等)的地方,只有国家和身份是下拉框类型的,而城市(city)是文本框,需要手填。针对国内使用的情况,region表自带的数据不包含国内的省份(自带美国、英国、法国等的省份),需要我们自己把中国的省份数据添加进去。然后,国内网站习惯的省市区三级联动,在Magento上要实现的话,需要新增城市和区县的表,同时改造前后台地址相关的模板文件,至于省市区的数据,建议是从国内的大网站上去抓取一份(网上流传的一些现成数据,版本新老不一,需要谨慎选择)。

地址是订单不可或缺的组成元素,所以Directory模块是核心模块之一,而且从配置文件的模块依赖关系上,Customer模块是依赖于Directory模块的,需要保持开启状态。

28、Downloadable

Downloadable模块提供了一种特殊的商品类型,这种类型的商品在下单后不是给用户快递一个实物,而是提供了一个可供下载的文件。可下载的文件包括电子书、音乐等等,Magento的用户们接触可下载商品这种类型做多的,就是购买形形色色的第三方收费插件了,卖插件的正是使用了这种商品类型来做插件的销售。需要注意的是,Magento还有一种虚拟商品(Virtual Product)类型,同样不是卖实物,不同之处在于,可下载商品买家付钱之后可以下载到一个文件,而虚拟商品则不提供文件下载,那么买家买的是什么呢,举个栗子,给手机充话费。

这个模块要不要用就很简单了,如果你的网站卖的是实物(衣服、食品...),那就把Downloadable模块关了吧。

29、Eav

Eav是Entity Attribute Value的缩写,Eav数据模型是Magento比较有特色的一种数据模型,具体原理详见高级Magento模型

具体应用的场景,Magento有4种数据采用的是Eav模型,具体来说是商品,分类,用户和用户地址。以商品为例,使用Eav结构的好处在于,当你需要给网站卖的商品添加属性时,不需要改动数据库里的表结构,一切新属性和属性值都以一条条数据的形式存在,因为属性都只是数据,所以不懂技术的人就可以通过可视化后台来管理和新增属性。

当然Eav不是只有好处,坏处也很明显,因为商品数据是Eav结构的,所有一个商品的数据会分布在很多张表里面,当前台获取商品数据进行展示时,就需要多表连接来查询数据了。这里其实就是一个灵活性和性能的矛盾,追求灵活性的同时往往都是以牺牲性能为代价的,很难做到两全。


PS:Magento2发布之前一直有小道消息说新版会抛弃Eav结构,不过后来事实是Magento2依然保留了这个经典结构大笑

Eav模块也是妥妥的核心模块,必须开启。

30、GiftMessage

GiftMessage模块按字面意思就是“礼品信息”,具体来说就是买家在结算时可以选择是否要礼品包装,包装上要留什么言。从商家来说,可以在后台选择整站所有商品都可以礼品包装,或者只有后台指定的商品允许礼品包装。



GiftMessage模块是典型的按需使用的模块,对于售卖适合做礼品的商品的网站,或者直接就是卖鲜花这种类型,可以使用这个模块,如果用不到这个功能,可以把整个模块关闭。


以上是本系列的第三篇内容,简单总结下上面10个模块,
其中Core,Cron,Customer,Directory,Eav五个模块是必须开启的(网站正常运行的基础),
Contacts,GiftMessage是可以根据需求自选要不要开启的,
CurrencySymbol,Downloadable我的建议是关闭(针对做国内中文站),
Dataflow模块虽然有些人用不到,但自带的模块依赖关系限制下,还是需要保持开启状态。
以上如果有描述不正确的地方,欢迎指正。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值