41、Page
Page模块大家用得比较多,可以理解为是网页的基础框架(Head、Header、Footer)和常用零件(Breadcrumbs、Notices、Pager)的集合,页面上的头部、底部、面包屑、通知、分页、主菜单等等都与Page模块有关。
Page模块虽然没有什么复杂的逻辑在里面,但它是前台网页的基石,当然也算是核心模块之一。
42、PageCache
字面意思上看是页面缓存,不过与EE版的FPC或者其他第三方FPC不同的是,社区版的PageCache模块要实现缓存效果是依赖于Zend Platform的,而Zend公司的Zend Platform是收费的,印象中很少有公司在用。详见:
所以,对于大部分用户来说,这个模块是无用的,可以关闭。
43、Paygate
模块名有点欺骗性,实际上Paygate模块实现的也是authorizenet这个支付方式,与Authorizenet模块的区别在于Credit Card Direct Post (Authorize)和Credit Card (Authorize)。如之前所述,这个支付方式国内使用不到的,可以关闭。
44、Payment
Payment模块是Magento所有支付方式的基础,每种支付方式的模型(Model)类都需要继承(或者间接继承)Mage_Payment_Model_Method_Abstract,比如自带的Moneybookers或Authorizenet。同时Payment模块本身就带来好几个支付方式。
其中Zero Subtotal Checkout和Cash On Delivery Payment是两种可能用得到的支付方式。Zero Subtotal Checkout(零金额结算)用于当整单的金额(包括运费)都被优惠券(或积分等)所完全抵扣,最后总金额是0时的情况。Cash On Delivery(货到付款)就很好理解了,货到付款中国人用的很习惯了。
每种支付方式(包含国内需要的支付宝和支付)都需要继承Mage_Payment_Model_Method_Abstract,可见Payment模块也是一个重要的核心模块,需要保持开启状态。
45、Paypal
大名鼎鼎的Paypal,Paypal是啥就不用特别解释了。Paypal模块可谓Magento官方的亲儿子,看看历次Magento版本更新日志,大量的篇幅都是关于Payapl的功能修改或者细节优化。除了Paypal本身在国外的市场占有率的原因,更重要的原因是Magento早期就接受了ebay的投资,后来更是被ebay全资收购了(不久之前Magento在一家投资基金帮助下脱离ebay再次回到独立的身份)。
那么回到主题上,这里探讨的是基于Magento做中文站的情况,这种情况下Paypal模块是不是就一定用不到了呢,答案是不一定。虽然你的网站是卖给中国人的,但是如果,假设,也许居住在国内的歪果仁也想在网站上下单,而他又没有支付宝的话(老外开通支付宝挺麻烦),这个时候Paypal就可以让老外用visa卡来完成支付,是不是棒棒的。
如果基于Magento做中文站,并且没有像上面说的这种需求的话,可以把Paypal模块关了。
46、PaypalUk
Paypal针对英国市场专门提供的一种支付业务,模块名也已经明确表示了是只用于英国的。
PaypalUk在国内就完全用不到了,妥妥的关了吧。
47、Persistent
Persistent模块,字面意思是持久化,具体来说持久化的是购物车信息,而用来持久化的关键词就是Cookie。传统购物车是把购物车信息存放于Session之中,而session中存放的数据在用户离开或者session过期之后就会消失。Persistent模块允许你把购物车信息放入Cookie中,这样用户的客户端Cookie中数据还存在,下次用户打开网站会发现上次添加到购物车的商品依然存在(cookie没过期的话,Persistent模块的默认过期时间是1年)。PS:登录用户的购物车数据保留跟Persistent模块所做的是两件事,登录用户的购物车数据已经存到了的quote相关表中,下次登录后看到的购物车数据实质是根据当前用户取出来数据库里对应的数据。
Persistent模块有一些配置项,比如Clear Persistence on Log Out,主动注销用户时是否清空cookie里的数据,详见 。
Persistent模块提供了一套模板文件来代替Customer模块的模板文件,比如登录页面的模板是\template\persistent\customer\form\login.phtml,而不是\template\customer\form\login.phtml,需要注意的是,只要Persistent模块是启用的,系统就会使用persistent目录下的模板文件,即便后台的Enable Persistence是No,只有关掉整个Persistent模块,系统才会使用customer目录下的模板文件。
Persistent模块属于可选模块,没有这个功能需求的话可以关闭,需要特别注意的就是开启和关闭Persistent模块时,用户相关模板文件的切换。
48、Poll
投票模块,所有初学者最熟悉的模块之一,因为初始安装完Magento还什么都没改就看到了。
从功能上来说,poll模块提供的投票功能很简单(或者叫简陋),除了简单的投票之外也就只能配置下是否限制同一IP投票而已。如果业务需求上有需要做投票,那么可能就需要在自带poll模块的基础上做二次开发来完成了。当然我觉得poll模块有一个隐藏的价值,那就是对于Magento的初学者来说,poll模块是非常好的开发新模块的范例。poll模块功能上独立,不牵涉任何主干流程,逻辑上简单,代码一看就懂,页面上来说前台展示和后台管理(Grid和Form)都有,基本包含了开发一个新的Magento模块所需的所有环节,研究透poll模块,基本也就明白了Magento的模块是怎么回事了。所以说,作为新手教学管卡非常的合适。
实际应用的情况来看,网站上让用户投票的很少看到,如果确实需要,如上面所讲可以针对各自的需求对poll模块二次开发下。如果用不到投票,可以把poll模块关了。
49、ProductAlert
ProductAlert模块的两个功能,可以非常准确的用两个中文词汇描述:降价提醒和到货通知(因为京东上就是这么措词的)。具体来说,降价提醒是登录用户指对某件商品设置提醒,当这件商品降价时,系统自动给该用户发送通知邮件,告知用户该商品降价了。到货通知是登录用户对某件缺货商品设置提醒,当这件商品有库存时,系统自动给该用户发送通知邮件,告知用户该商品补货了。
从原理上来说,用户设置的提醒都记录到了数据库里,然后系统的计划任务运行时,检查数据库的数据,找到匹配条件的数据(条件是降价或者补货),给设置过提醒的用户发送邮件,这样就实现了所谓的自动提醒。
从功能上来说,ProductAlert模块自带的功能有点简陋,不说跟京东繁多的提醒功能(自动下单,降价幅度等等)相比,至少除了发邮件通知之外还要有发短信通知才比较符合国情,还有是不是应该考虑允许访客也可以参与提醒,类似订阅那样,不需要登录,留一个手机号或邮箱就能接收通知。当然这些就需要留个我们这些程序员自己来二次开发了。
ProductAlert模块属于可选模块,没这个需求可以关闭,不过对大部分用户来说应该还算是蛮实用的模块,在这基础上加上发短信也不会很复杂。
50、Rating
评分模块,评论功能的部分组件。Magento把评论功能拆成了两个模块(Rating和Review),其中Review模块是评论的主模块,Rating算是评论的一个可选项,如下图所示的评分。
理论上评分的功能可以不使用(通过后台设置),不过从实际应用来说(特别是做中文站,中国买家都经过了淘宝的洗礼),大部分还是会考虑在评论里保留评分的功能。
不使用评分功能不代表我们可以把Rating模块关闭,实际上,虽然Magento把Rating从Review里单独拆分出一个独立模块,不过从代码结构上,两个模块还是耦合的很紧密,关闭Rating模块会导致Review模块也无法正常使用。所以不管你用不用,Rating模块都得保持开启状态。
以上是本系列的第五篇内容,简单总结下上面10个模块,
其中Page,Payment,Rating三个模块是必须开启的(网站正常运行的基础),
Paypal,Persistent,Poll,ProductAlert是可以根据需求自选要不要开启的,
PageCache,Paygate,PaypalUk我的建议是关闭(针对做国内中文站),