共计 2578 个字符,预计需要花费 7 分钟才能阅读完成。
在 SAP 官网 help.sap.com 上依据关键字 commerce 搜寻,后果列表里会显示出好几个名称相近的产品,这难免会让一些 SAP commerce (电商云) 的初学者感到有点纳闷。
其实只须要急躁地关上这些链接逐个浏览一会儿,就能弄清楚这几个产品间的差别:
- SAP Commerce:SAP On-Premises 上的电商解决方案
- SAP Commerce Cloud on SAP Infrastructure: SAP Commerce 的云端解决方案,Commerce 外围代码通过 SAP 外部工具打成一个容器镜像,部署和运行在 SAP 本人的数据中心里。在很多文档里又称为 Commerce Cloud Version One, 简称为 CCV1. 从严格意义上说,CCV1 是一组标准化的 Linux 虚拟机,遵循在 SAP 数据中心运行的根本 SAP Commerce 架构设置。
默认状况下,SAP 在 CCv1 中提供三种环境:Development、Staging 和 Production(以及拜访这些环境的 VPN)。典型的开发环境蕴含以下服务器类型之一:Hybris 应用程序服务器、Web 服务器、SOLR 搜寻服务器、Hybris Data hub 和 HANA 数据库。另一方面,在生产环境中,一套典型的零碎 Landscape 通常至多有两个 Web 服务器、两个前端应用程序服务器、一个管理应用程序服务器、三个 SOLR 服务器(一个主服务器和两个隶属服务器)、两个数据中心服务器和一个 HANA 数据库集群服务器。这种规模对于流量适中的规范 B2B 电子商务网站曾经足够,但对于公共 B2C 网站,或者有进一步优化的空间。
- SAP Commerce Cloud on Public Cloud:SAP Commerce 云端解决方案,部署运行在私有云上,比方微软的 Azure,简称为 CCV2.
SAP CCV2 不同于 CCV1 的架构,是一套应用 Kubernetes 等古代技术在 Microsoft Azure 上运行的云原生解决方案。提供一个 Web UI 可用于治理所有环境,包含生产环境。
CCV2 具备与 CCV1 中雷同的一组环境:Development、Staging 和 Production. 与 CCV1 不同,客户不会取得显示每个环境的服务器设置的具体架构图。客户能够通过手动提出申请的方向,向 SAP 申请对生产环境进行程度扩大和垂直扩大,以预防其站点的预计流量达到峰值的状况呈现。该数据库始终是 Microsoft Azure SQL 数据库,它作为 Azure 云的服务提供。Kibana 用于服务器监控和日志。
在某种程度上,CCV2 比 CCV1 更凋谢。客户以及合作伙伴可能创立新的构建,并将它们部署到包含生产环境在内的所有环境。通过将 Git 存储库连贯到云平台来创立一个 Build. 开发人员只须要在存储库的根目录中保护一个非凡的 manifest.json 文件,将存储库连贯到 CCv2 后,能够通过单击 CCv2 用户界面中的按钮来创立新版本。构建实现后,您能够单击另一个按钮将构建部署到环境中。
从 CCV1 到 CCV2 的演进之路不难看出,SAP(与所有其余公司一样)正在将其服务从本地迁徙到云端。
回到本文主题,要想生产 Commerce Cloud 的订单服务,首先须要相熟一下如何手动在 Commerce Cloud 里下单。在 Commerce Cloud B2C 的场景里,下单的流程对咱们每个人来说简直相熟得不能再相熟了——和咱们日常在某宝上购物一模一样。
到电商店铺里浏览商品,看中本人心仪的一款产品后,
点击 Add To Cart 把产品加到购物车里:
点 Check Out 去结账:
会生成一个购物车 ID:
保护发货地址。当然咱们平时在某宝上购物时,个别都提前在手机 app 里保护了好几个发货地址,而后结账时只需从中抉择一个即可。
保护领取形式和明细 (Payment Detail),这一步好比咱们在某宝上购物抉择微信,支付宝,花呗等形式领取。
Place Order 点击后,胜利生成订单,失去订单 ID.
总结一下,手动下单的流程能够分成这五步:
(1) 创立一个购物车 Shopping Cart
(2) 给该购物车里增加产品
(3) 给该购物车保护发货地址
(4) 给该购物车保护领取明细
(5) 执行下单操作,胜利生成订单
搞清楚流程之后,接下来须要找到每个步骤别离调用哪些 API 来实现。
登录 SAP 官网 https://api.sap.com, 依据关键字 Commerce Cloud 搜寻,很容易就能找到所有须要应用的 API:
笔者写了一个 nodejs 利用来演示这些 API 的用法。
执行这个利用,在第 20 行的回调函数里会打印出胜利创立的订单 ID:
依据这个 ID 到 Commerce Cloud 的 backoffice 里,能查找到胜利创立的订单:
后面说到手动下单须要 5 个步骤,而笔者我的项目文件里有七个 step.js, 多进去的两个步骤,一个是获取 Access Token,另一个是设置购物车的 Delivery Mode. 前者是后续调用所有 API 的根底,而后者实现的逻辑,当咱们在浏览器里手动下单时,Commerce Cloud 利用会主动帮咱们设置,然而用 API 的形式下单时,须要咱们显式调用设置 Delivery Mode 的 API, 因而最初一共须要 7 个步骤能力实现订单的创立。
获取 Access Token 的步骤,依然是采纳惯例的 OAuth 认证,通过 client id 和 client secret 去换取 Access Token.
咱们首先须要在 Commerce Cloud 上创立一个 OAuth Client,保护 Client ID, Client Secret, 明码,token 刷新距离,相干权限等信息:
而后在 step1_get_token.js 里,通过 OAuth Client 保护的这些信息发一个 POST 申请到 OAuth endpoint 换取 Access Token.
因为隐衷起因,笔者没有把 urlconfig.js 上传到 github 上,只上传了一个 urlconfigTemplate.js, 请大家在应用这个 nodejs 利用之前,把 urlconfigTemplate.js 里的以左右尖括号标识的占位符替换成理论值,而后重命名成 urlconfig.js 即可。
总结
本文首先介绍了 SAP 电商云 CCV1 和 CCV2 的差异,接着具体介绍了应用电商云提供的 order API,通过 Node.js 代码的形式创立订单的具体技术实现。