谈谈最近试用的几个Headless无头开源电子商务平台

技术运维 303

最近有个电子商务网站开发,需求是 多仓库+多语言+多店铺+多货币+多税率+API,没想到一通折腾下来看似简单的需求,在实际深度体验之后只有使用了php开发的prestashop能满足。

我已经把技术栈从php转到nodejs有一段时间了,最新购入的两台VPS也都是nodejs的架构,所以尽量选择nodejs的项目,可事实上事与愿违。

这次我依次重点试了medusajs, vendure, sylius, prestashop这几个开源项目。

先说说两个nodejs开发的项目

Medusajs后台商品管理界面
Medusajs后台

Medusajs

16.3k个star,RestAPI接口。目前最火,也是我使用强度最高的,前面我还为此写了一篇,但是遗憾的是目前多语言都未实现,果断放弃。

Vendure

Vendure
Vendure后台

4.1k个star,GraphQL API接口。典型客户有IBM,vendure支持了多语言和多店铺,但是没有多仓库,小有遗憾。

这两个开源电商平台都非常优秀,但是差别也很大:vendure环境需求低,安装配置也简单,支持的数据库也非常多(MySQL,PostgreSQL,SQLite),使用REST API,而medusajs则要复杂得多,需要redis来处理事件队列。这两者都是纯headless架构,前台需要独立安装,因此需要掌握一门前端技术,如Next.js,GatsbyJS等,新手不建议使用。

另外功能我相信后面官方也会逐渐完善。

Sylius

Sylius
Sylius后台

7.1k个Star,sylius给我的第一反应就是慢,当然我本地测试没有特别优化,它使用了symfony企业级的php框架,毋庸置疑它在工程方面做的非常好,扩展开发起来也非常灵活。

在我的测试过程中发现sylius很多功能需要插件来实现,其中多仓库需要购买付费插件来实现,而另一边多店铺的需求它通过Channels实现,可以为每个店铺配置语言货币等,但是测试下来发现前台它通过?_channel_code=这样的参数来标识,这一点我觉得非常不利于SEO

sylius采用Rest API,访问地址为:http://YourURL/api/v2

PrestaShop

PrestaShop
PrestaShop后台

目前在github收获了6.9k个star,同样基于symfony框架开发,PrestaShop目前是体验最好的,当然,不足的地方也很多,但是都是微小的工作就能修复,如我在过程中遇到多店铺的标题默认存在的SEO问题。

说回多店铺功能,prestashop默认是关闭的,需要在Configure->General->Enable Multistore中开启。

开启后系统会在Advanced Parameters中生成出新的菜单Multistore,可对多店铺进行配置。

PrestaShop开启多店铺配置

PrestaSHOP的多店铺设置对SEO非常友好,可以绑定自己的域名或用Rewrite的方式设置虚拟目录,而在前台所有URL都可以独立设置标题,模板,内容等等。

最后说说prestashop的Api,系统默认提供了webservices,可通过Advanced Parameters -> Webservice来生成key和开启服务,访问地址为店铺地址后面加上Api即可,认证用户米和密码均为生成出的key

同样prestashop还提供了第三方插件来实现Rest API,从这里下载安装即可,访问地址为 店铺URL+/rest/

总结

nodejs由于特殊的架构体系,在运行速度上有着很大的优势,但是就目前发现nodejs在开源项目成熟度还不如php,而且node项目基本都是往headless这个方向做,也就意味着你需要熟练掌握一门如VueNextJS,AngularJS等等之类的主流前端框架,还得掌握熟悉项目本身,了解Api的使用,Api还有GraphQL和RestAPI之分,就medusajs这个项目来说,学习成本非常之高,而PHP的项目都集成了后台和前台,同时又扩展了Api服务,也不失一种灵活的选择。

以上项目都在开箱即用的情况下所做不严谨测试,人生苦短,不重复造论,效率优先,项目先跑起来再说。

Read Comments

  • 纸老虎2 years ago1

    感谢这么精彩的评测~

Post Comment