Magento(CE1.X)自带模块解析三
发布日期:2021-08-28 04:40:47 浏览次数:2 分类:技术文章

本文共 3475 字,大约阅读时间需要 11 分钟。

hot3.png

21、Contacts

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

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

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

22、Core

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

23、Cron

计划任务模块,Magento创立了一套只在服务器设置一条crontab就可以实际上同时跑各种计划任务的机制,机制详见置顶文章: 。具体程序上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有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模块虽然有些人用不到,但自带的模块依赖关系限制下,还是需要保持开启状态。

转载于:https://my.oschina.net/ganfanghua/blog/898865

转载地址:https://blog.csdn.net/weixin_33940102/article/details/92451563 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:小程序中的大道理之三
下一篇:Python学习--shutil

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年03月19日 08时00分50秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

linux shell mysql备份_linux shell 备份mysql 数据库 2019-04-21
Java双向链表时间复杂度_链表是什么?有多少种链表?时间复杂度是? 2019-04-21
unity3d能和java系统整合吗_Android与Unity3d的整合 2019-04-21
minecraft666java_我的世界的666的世界 2019-04-21
辽宁师范大学java_辽宁师范大学心理学院 2019-04-21
java程序有连接数据库_Java程序连接数据库 2019-04-21
java reduce.mdn_reduce高级用法 2019-04-21
java shape用法_Java PShape.scale方法代码示例 2019-04-21
java字符串三目_java字符串连接运算符和三目运算符 2019-04-21
mysql tcp_MySQL登录之socket与TCP 2019-04-21
mysql重复执行命令_重复执行show innodb status的方法 2019-04-21
mysql开源内库_二、详解mysql数据类型 2019-04-21
洛达1562a固件_豪锐(俗称东莞HR)洛达1562a空间音频固件首发 2019-04-21
linux mysql搭建禅道详细教程_2019-08-28 redhat linux如何部署禅道服务器(一键安装包)... 2019-04-21
蕴含等值式怎么理解_面膜怎么用?懒癌星人也能敷出好肌肤 2019-04-21
有没有python搜题_免费搜题公众号python 2019-04-21
linux下java连接mysql数据库_Linux Java连接MySQL数据库-Go语言中文社区 2019-04-21
mysql数据库中的null值_Mysql数据库中的Null值介绍与实例讲解 2019-04-21
navicat for mysql 11.1.9注册码_navicat for mysql 11.1.9 2019-04-21
python实现胶囊网络_胶囊网络(Capsule Network)在文本分类中的探索 2019-04-21