本人是Drupal的粉丝,电子商务平台也用Drupal开发过几个,真心感觉Drupal的强大。Drupal的电子商务平台比较常用的是 Commerce 和 Ubercart,现在本人以个人观点对这两个进行对比,给在选择哪个做电商的同学一些参考。
欢迎程度
Commerce
自从诞生以来,一直是上升趋势。目前超过四万安装量。目前看起来在D7下,Commerce以微弱优势领先。
Ubercart
一直表现平稳。安装量超过四万。考虑到Ubercart支持D6与D7;在D6下,Ubercart地位无可撼动。
产品管理
Commerce
充分利用Drupal 7的entity,产品Entity花,并于Node解耦,SKU与单个产品绑定;不同产品属性可以通过不同的SKU来管理,这与实际的产品管理相符合,大大提升了系统的灵活性与扩展性。(比如针对特定SKU的折扣,库存管理等)在初期,这种方式对用户造成使用上的困扰,并为ubercart支持者所诟病。但是inline entity form模块的横空出世,这个问题已经不再是个问题。
Ubercart
产品即Node,产品属性等只是自身的一个数据集,扩展性方面不如Commerce好。
运输与支付
Commerce
本身不带运输模块,需要第三方模块支持。
Ubercart
核心自带运输模块。
学习曲线
Commerce
学习成本比Ubercart高。但是既然已经选择Drupal了,这点自然不在话下了。
Ubercart
学习成本,或者说易用性方面胜出。
相似性
Commerce
对第三方模块的依赖,后台管理,网店配置大同小异。
Ubercart
对第三方模块的依赖,后台管理,网店配置大同小异。
第三方模块依赖
Commerce
Address Field, CTools, Entity API, Rules and Views.
Ubercart
CTools, Entity API, Rules, and Views
配置性
Commerce
大多数情况下,默认配置即可使网店运转。支付方式,价格计算,货币等需要自定义配置。
Ubercart
默认配置完美工作,可以修改地址,货币,联系人等。
使用场景
Commerce
产品系列差异化比较大,并追求可持续扩展的网店。
Ubercart
产品差异化不大的网店。
文档支持
Commerce
更胜一筹,与Druapl API关联更好
Ubercart
也不错,但是有些方面不足。
长期展望
Commerce
设计之初及考虑未来的扩展性;长期看来,功能会有进一步的增强,易用性方面也会有所改善。
Ubercart
设计上限制了不适合大规模网店采用,将来可能过时。(来源于翻译,勿喷我)
扩展
Commerce
Ubercart
其他
Commerce
D8支持
Commerce的2.x分支是面向Drupal8的版本,分支已经建立,不过暂时无代码。
根据这个roadmap,开发工作是早就开始了,但是还没有提交到D.O,或许是因为保密原因,或者其他原因。。
Ubercart
Ubercart的4.x分支是面向Drupal8的版本,正在紧锣密鼓进行中。
这里可以看到有很多代码的提交。
总结
Commerce的作者也是以前Ubercart的主要程序员。
Commerce的发展,带来了一系列福利模块,比如address field, inline Entity form,inline conditions等,目前这些模块的使用范围已经超过了电商范畴。
Commerce在灵活性与扩展性方面较之Ubercart有后发优势。虽然Commerce的发展与Commerce guys卖力推广不无关系,但是自身的设计构架也值得肯定。
在Drupal 7下面,我们可能看不到Commerce与Ubercart分出胜负的时刻。二者之间的竞争会在Drupal 8下继续进行,让我们拭目以待。
就我在写本文调研过程中,发现Commerce的支持大大多于Ubercart。笔者亦站在大多数人的立场,支持Commerce。
更多信息请查看IT技术专栏