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

本章开始逐个解析Magento1自带的模块,根据模块复杂度和重要性的不同,描述的方式也会有所区别,有些仅使用文字,有些会配上截图。

1、Admin

如字面意思,Admin模块是跟后台管理员相关的,具体来说,主要就是后台用户(admin_user表)和后台用户的权限管理(admin_role和admin_rule表)。到1.9.2.3版本,

出于安全考虑新增了permission_variable和permission_block功能,这个就不细讲了,详见1.9.2.3的release-notes。

这里扯远一下,Magento的权限功能是基于ACL模型的,市面上还有另外一个应用广泛的访问控制模型叫RBAC。虽然ACL一般情况下也可以满足Magento后台管理的需要,但结合以往实际工作中碰到的情况来说,RBAC模型可能更符合一个电商网站后台管理的需求,比如出现“客服主管”和“普通客服”这种层级结构的权限分布要求时。

毫无疑问,这个模块是必须开启的,后台的基石。

2、AdminNotification

字面意思是后台的通知,这个模块的实际作用差不多也就是这个意思。通知的展示形式分钟两种,一种是通栏方式显示在后台主菜单栏下面,另一种方式是登录后台时以弹窗方式出现。

通知的内容大概有以下几种:网站运行状况(比如缓存过期,索引未更新等等),Magento官方推送的通知(比如有新版本,官方要举办什么活动等等),安装的第三方插件所属公司推送的信息(比如安装的插件有新版本,或者如上图这类推销打折信息)。

AdminNotification模块理论上可以关闭,不会影响网站前后台的正常运行。关闭之后上面提到的这些通知你将不会再收到,避免了骚扰同时也失去了得到有价值通知的功能,当然失去通知也不会有多大影响,比如关注Magento的人自己本身就会时不时关注官方是否有新版本发布了。

所以,这个模块关闭与否,可选。

3、Adminhtml

Adminhtml是一个庞大无比的模块,整个目录下有超过500个文件夹和超过1000个文件。虽然如此庞大,这个模块的作用却很好解释,那就是几乎整个后台所展示的内容(不算第三方插件)都由Adminhtml来控制。

这里有一个代码结构上的疑问,Magento把功能按模块划分的做法是受大部分人认同的,对降低整个系统的耦合度相当有益。唯独Adminhtml模块把所有功能的后台管理部分集合在了一起,把这个模块变成了一个庞然大物。理论上Magento可以把不同功能块的后台管理的代码写到各自的模块目录下面,比如商品后台管理的代码可以写到Catalog模块里去,这样子看上去系统的模块化就更彻底了(比如第三方插件如果有后台管理的部分,后台的代码自然是写在自己模块的目录下的)。

Magento官方这么做也许有自己的考量,至少对于后台的修改和二次开发来说,可以在一个模块里找到所有后台源码也是一种便利。

Adminhtml模块当然是必须开启的,不开就没后台了。

4、Api

Magento的第一种类型的接口模块(早期的版本只有这一种类型),提供XML-RPC和SOAP两种接口协议,这两种协议一脉相承,对于已经封装过的Magento来说,新增一个接口只需要开发一套代码,就可以同时支持XML-RPC和SOAP两种协议。

SOAP是一套虽然已经不年轻,但依然被广泛使用的接口协议,基本上所有流行的编程语言都有现成的支持SOAP的类库。

除了对协议的封装,Api这个模块提供了基于ACL模型的接口资源权限分配,可以通过后台来按需指定不同接口用户拥有不同的访问权限(比如A用户只允许访问1、2、3接口函数,B用户只允许访问4、5、6接口函数),这个对网站的信息数据安全相当有好处。

Api模块不是必须开启的,如果没有对外开放接口的需求的话。当然,实际运作中的Magento网站,应该很大比例都会有跟其他系统对接的需求,这个时候,经过系统底层的封装之后,在Magento上开发新接口还是很方便的。

5、Api2

Magento的第二种类型的接口模块(后期版本新增的),提供REST风格的Api接口支持。

与Api模块类似,Api2模块同样对接口进行了封装,以及同样提供了通过后台进行接口资源权限分配。

针对REST风格的Api的授权,Magento采用流行的oAuth协议来实现,这一点在系统里是通过另一个模块来配合的,这个模块的名字就叫做Oauth。

同样道理,Api2模块开启与否是可选的,取决于你是否会需要用到系统对接。Api2模块与Api模块之间没有相互依赖关系,可以自由选择单独用、一起用或者两个模块都不用。

6、Authorizenet

      authorizenet模块非常好理解,就是一个美国本土的支付网关(类似paypal,详见http://www.authorize.net/)。不太清楚authorizenet在美国的流行度如何,肯定没有paypal流行。如果是做国内中文站的话,就肯定用不到这个模块,果断关闭吧。

7、Backup

Backup模块在后台提供了可视化界面用于给网站做备份,可以选择备份(及还原)网站文件或者备份数据库等等。备份生成的文件会放置在var/backups目录下。

常见的网站备份操作,一般是由运维人员通过在服务器上通过计划脚本来操作的。虽然Magento的Backup模块也提供了通过系统的cron机制来定时备份数据的功能,但能直接通过后台操作就能备份(特别是还原)网站,感觉上会不太安全(虽然也可以通过后台权限来控制一般后台用户无权操作),我个人是不太推荐这种方式的。

如果你不需要备份网站,或者如上所言把备份网站交由运维来操作了,那就把这个Backup模块关了吧。

8、Bundle

Magento原生提供了6种商品类型,捆绑商品(Bundle Product)是其中一种。6种类型里,Bundle Product和Downloadable
Product是各自独立一个模块控制的,其他4个类型都在Catalog模块里面。

Bundle Product与另一种类型Grouped
Products类似都提供了组合打包购买商品的功能,不同之处在于Bundle Product提供了更复杂的组合方式,以及自由设置组合后商品价格(比如上衣加裤子组合买比单买优惠20等等)。详见:Magento
grouped vs bundle products

捆绑商品的功能在蛮多场景还是用得到的,当然这个也看网站具体卖的商品类型(衣服还是食品)以及销售方式。这里有一个问题是,捆绑商品功能所能捆绑的对象只能是简单商品(Simple
Product),而实际应用中好像有许多把几个Configurable Product捆绑卖的需求。PS:好像有第三方插件可以满足这个需求

如果确实不需要或者暂时用不到这个功能,可以把Bundle模块关闭(这个时候就体现出把捆绑商品单独拎出来做成一个模块的好处了)。

9、Captcha

验证码模块,可以用于后台的登录和找回密码。

原生情况下只能用于后台(不排除二次开发之后用于前台)。关于这个模块开启与否的建议,我不太清楚老外的审美是咋样的,至少在国内来说,跟国内网站上常见的验证码相比,Magento的这套验证码生成的图真的是有点丑。所以如果不用这个功能的话,就把Captcha模块关了。如果确实需要用到验证码(我指的是国内),建议找一个更符合中国人审美的验证码类库,自己基于类库在Magento上做验证码的功能。

10、Catalog

电商几大基本组成元素之一的“商品”(还有用户和订单),主要就由Catalog模块来控制。稍微具体来说,这个模块管理着包括分类,商品,商品属性等内容以及前台大部分跟商品展示相关的控制代码。对于Magento系统来说,这是一个核心模块,也是所有Magento用户最熟悉的几个模块之一。我这里只是对模块的概述,所以针对Catalog模块反而好像没有什么需要特别拎出来讲一下的东西了。

Catalog模块当然是必须开启的。

以上是本系列的第一篇内容,简单总结下上面10个模块,

其中Admin,Adminhtml,Catalog三个模块是必须开启的(网站正常运行的基础),

AdminNotification,Api,Api2,Bundle是可以根据需求自选要不要开启的,

Authorizenet,Backup和Captcha我的建议是关闭(针对做国内中文站)。

之前有提过本系列是一个概述,所以对大部分模块的描述都是走马观花式的,因为每个模块要讲清楚的话都可以单独写成一篇文章(甚至多篇文章)。上面十个模块的描述都是基于我的个人理解,如果有描述不正确的地方,欢迎指正。

时间: 2024-10-12 13:32:10

Magento(社区版)自带模块解析以及在国内的使用建议一的相关文章

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

11.CatalogIndex 跟商品相关的几种索引(价格.属性等等)的处理模块,商品是系统的核心组件,处理商品索引相关的模块自然也是核心模块,必须是开启状态. 12.CatalogInventory 核心模块之一的"库存"模块,管理者Magento的商品库存相关的功能. Magento的库存逻辑,主要通过两个字段来控制:库存数量(Qty)和库存状态(Stock Availability),理论上只有该商品库存数量大于0并且库存状态是In Stock时,这个商品才是前台真正可以售卖的.

IDEA社区版断点调试无效问题解决

IDEA社区版由于免费的缘故,很多功能相对于付费版都阉割了,而且还会出现很多奇奇怪怪的问题,只能是JetBrains一点都不厚道啊! 从上图可以看出,controller里的方法显然已经执行了,因为7个后台的输出都打印出来了,但是断点内没有打勾,完全没有起作用 在JetBrain的官方论坛上有一个帖子:https://intellij-support.jetbrains.com/hc/en-us/community/posts/206188869-IDEA-can-not-stop-at-the

蓝鲸社区版4.0集成安装心得

第一次写这个,我是按照自己写的一步一步操作,部署成功,希望里面的内容对大家有所借鉴,因为开发和linux系统与我来说,我就是一个一只脚站在门口的人,所以有错误的地方或者能改进的地方也恳请大家指正出来,一起学习.下面进入正文 IP 功能组件 10.1.43.31 paas,cmdb,job,gse,kafka,zk,es,redis,consul,mongodb,bknetwork 10.1.43.33 license,appo,kafka,zk,es,mysql,beanstalk,consul

蓝鲸智云社区版安装部署和卸载

1.检查每台机器环境 1 # 检查SELinux的状态,enabled即为开启,disabled即为禁用 2 sestatus 3 getenforce 4 /usr/sbin/sestatus -v 5 # 先通过命令禁用SELinux 6 setenforce 0 7 # 再修改配置文件 8 sed -i '$ sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux' 9 # 重启下机器(谨慎) 10 r

nginx源码分析--nginx模块解析

nginx的模块非常之多,可以认为所有代码都是以模块的形式组织,这包括核心模块和功能模块,针对不同的应用场合,并非所有的功能模块都要被用到,附录A给出的是默认configure(即简单的http服务器应用)下被连接的模块,这里虽说是模块连接,但nginx不会像apache或lighttpd那样在编译时生成so动态库而在程序执行时再进行动态加载,nginx模块源文件会在生成nginx时就直接被编译到其二进制执行文件中,所以如果要选用不同的功能模块,必须对nginx做重新配置和编译.对于功能模块的选

大屏展示OneOaaS Monitor社区版发布

原文:http://url.cn/45XM0x2 ,请关注OneOaaS公众号获取更多信息     OneOaaS Monitor社区版正式发布,只需要2分钟,即可实现大屏展示 主要功能:故障展示大屏,可以替换Zabbix的Dashboard,在大屏上面展示故障 界面如下 功能概要 数据采集速率 当前故障数量 当前有故障的设备数量 当前故障按不同级别分布图 故障列表,可按最低故障级别过滤 故障数量趋势图,可按时间过滤 所有模块都支持定时刷新,可选择刷新周期 新版本消息提示 后续版本会逐步发布gr

vs2015社区版不支持installshield

开始学习vs了 下一步就是在这个平台上提升技术咯. 写了老师上课讲的算法 生成了个VB程序结果不能在别的电脑上运行 .幸好我自己测试了下.要是直接拿去学校不是很~ 然后我就想到当初接触易语言时候的搞静态编译,还要破解什么的很烦.也不懂.就去问老师.说是.net的版本的问题 后来用自带的生成安装包的工具试了下,他先帮我那台电脑装上了4.0的框架 之后就可以运行了 . fq出去了之后发现  了 *Visual Studio Community Edition is not supported. 貌似

系统集中运维管理平台【社区版】安装与配置方法

最近很多博友反应不知道怎么安装与配置"系统集中运维管理平台[社区版]"程序,下面我写一个详细的配置文档,希望能够帮助各位博友: 程序支持操作系统平台: 主程序支持: Win7.Win8.Win8.1.Win2008.Win2008R2.Win2012.Win2012R2 MYSQL数据库: 软件版本:mysql_installer_community_V5.6.21.1_setup.1418020972 数据库可以安装在Windows或Linux平台,根据个人需求,这里以Windows

微软 Visual Studio 2017 中文正式版下载 – 免费社区版/专业版/企业版

作为“宇宙最强”的集成开发环境 IDE,微软的 Visual Studio 不仅破天荒发布了 macOS 版本,如今终于也推出了其 Windows 的最新版本—— VS 2017 正式版了.这对开发者来说无疑是个大消息,无论你是 Windows 还是 Mac 的用户,我们现在都能立即下载到微软最新版本的 VS 开发工具尝鲜了!根据微软的介绍,Visual Studio 2017 相比此前的 Visual Studio 2015 进步巨大,而且还包括一系列的新功能……Visual Studio 2