1

这是Jerry 2021年的第 21 篇文章,也是汪子熙公众号总共第 292 篇原创文章。

最近一段时间, Jerry 陆续把自己在 SAP Commerce Cloud (电商云) 新一代前台页面开发的日常工作中遇到的一些问题和心得,写成了文章:

有朋友在文章留言,询问是否可能在本地搭一个 SAP 电商云的运行环境,来学习基于 SAP Spartacus 的新一代电商云前台 ( SAP Spartacus ) 的设计。

这个愿望当然是可以实现的。SAP Commerce Cloud (电商云) 的部署方式非常灵活:不仅能托管在 SAP 自己的基础设施 (infrastructure) 上,也能架设在第三方公有云上。当然,也仍然支持采用以前传统的 Hybris On-Premises 本地部署方式。

实际上,SAP Spartacus 的帮助网站上,给出了如何在本地搭建 SAP Commerce Cloud 前后台运行环境的具体步骤:

https://sap.github.io/spartac...

Jerry 自己试过,只要按照网页里描述的步骤一步步操作,如果一切顺利的话,一个小时之内,即可完成 SAP 电商云前后台的搭建,得到一个能够正常运行的环境。

首先从 SAP Software Center 网站下载 SAP Commerce Cloud 的安装包,我选择的是 2011版本:

https://launchpad.support.sap...

将下载到本地的安装包解压,按照下列文档介绍的步骤,在 installer/recipes 文件夹内基于 cx 拷贝一个新的文件夹 cx-for-spa 出来,从而新建了一个基于 Spartacus 的安装 recipes.

https://sap.github.io/spartac...

将该 recipes 目录内的 build.gradle 文件内,extensions 列表区域的 spartacussampledata 的注释去掉,从而让该 recipes 启用对 SAP Spartacus 的支持。

接下来是 SAP Commerce 安装的老三样了,依次执行下列三个命令:

./install.sh -r cx-for-spa
./install.sh -r cx-for-spa initialize
./install.sh -r cx-for-spa start

cx-for-spa recipe里启用的 spartacussampledata extension,里面包含了很多测试数据。在上面第二条命令,进行 Commerce 平台 initialization 时,会将这些测试数据导入 SAP Commerce 的数据库。

安装完毕后,浏览器里使用 localhost 的主机名,检查本地安装的 SAP Commerce,其 Admin Console,Backoffice 和 基于 JSP 的 Accelerator Storefront 是否能够正常打开:

这三个 url 打开的界面外观依次如下三个截图所示:

上图就是基于 JSP 技术的 SAP Commerce 传统的 Accelerator Storefront,按照 SAP 官网的说法,Accelerator Storefront 终究将会被 SAP Commerce 新一代的 Spartacus UI 所取代。

https://sap.github.io/spartac...

下面进行 SAP Spartacus 的安装。

https://sap.github.io/spartac...

步骤和 SAP Commerce 的安装流程相比简单了不少,一个命令就能搞定。不过要注意,安装之前,确保下面罗列的三个工具,在本地具有文档内规定的版本号:

  • Angular CLI
  • Node.js
  • Yarn

首先 ng new samplestore, 创建一个名为 samplestore 的 Angular 应用:

进入创建好的 samplestore 目录,使用下面的命令行,能够安装默认支持 B2C 功能的 Spartacus Storefront:

ng add @spartacus/schematics

如果想支持 B2B 功能,待上面的命令行成功执行完毕后,再执行下面的命令行:

ng add @spartacus/organization

所有的命令行成功执行完毕后,打开 app.module.ts 文件,将配置节点 backend.occ.baseUrl 字段指定为我们本地安装的 SAP Commerce 实例即可:

https://localhost:9002

还记得之前 Jerry 的文章:Jerry在2020 SAP全球技术大会的分享:SAP Spartacus技术介绍的文字版 里介绍的一点:SAP Spartacus 100% 的 API 驱动特性么?

SAP Spartacus 正是通过这个配置好的 https://localhost:9002/occ/v2 endpoint, 调用 Angular 提供的 HTTP 库,消费本地安装的 SAP Commerce 提供的 Restful API, 将数据呈现在用 Angular 开发而成的 Spartacus 单页面应用里。

ng serve 命令启用这个安装好的 Angular 应用,在 Chrome 开发者工具 Network 标签里,能观察到 SAP Spartacus 的 Restful API 调用。

如果大家在搭建 SAP Commerce Cloud 前后台运行环境时遇到问题,欢迎留言讨论。

感谢阅读。

更多阅读

更多Jerry的原创文章,尽在:"汪子熙":


注销
1k 声望1.6k 粉丝

invalid