如何使用API的方式消费SAP Commerce Cloud的订单服务

最近Jerry在作一个微信和SAP Commerce Cloud集成的项目,须要在微信里调用后者的Restful API进行订单建立和读取。之前Jerry对SAP Commerce Cloud知之甚少,此次趁机学习了一下,过程当中获得了SAP成都研究院Commerce开发团队的Jonathan,Kevin和Kate等几位同窗的大力帮助,这里表示感谢。node

在SAP官网help.sap.com上根据关键字commerce搜索,结果列表里会显示出好几个产品,这不免会让像Jerry这种刚接触commerce的人感到有点疑惑。git

clipboard1,1

其实只须要耐心地打开这些连接逐一阅读一下子,就能弄清楚这几个产品间的差别:github

  • SAP Commerce:SAP On-Premises上的电商解决方案api

  • SAP Commerce Cloud on SAP Infrastructure: SAP Commerce的云端解决方案,Commerce核心代码经过SAP内部工具打成一个容器镜像,部署和运行在SAP本身的数据中内心。在不少文档里又称为Commerce Cloud Version One, 简称为CCV1.浏览器

  • SAP Commerce Cloud on Public Cloud:SAP Commerce云端解决方案,部署运行在公有云上,好比微软的Azure,简称为CCV2.微信

Medium上有一篇不错的博客Two clouds in practice: a comparison of SAP Commerce Cloud v1 and v2介绍CCV1和CCV2的对比,这里Jerry就不深刻展开了。app

clipboard2,2

回到本文主题,要想消费Commerce Cloud的订单服务,首先须要熟悉一下如何手动在Commerce Cloud里下单。在Commerce Cloud B2C的场景里,下单的流程对咱们每一个人来讲几乎熟悉得不能再熟悉了——和咱们平常在某宝上购物一模一样。函数

到电商店铺里浏览商品,看中本身心仪的一款产品后,工具

clipboard3,3

点击Add To Cart把产品加到购物车里:学习

clipboard4,4

点Check Out去结帐:

clipboard5,5

会生成一个购物车ID:

clipboard6,6

维护发货地址。固然咱们平时在某宝上购物时,通常都提早在手机app里维护了好几个发货地址,而后结帐时只需从中选择一个便可。

clipboard7,7

维护支付方式和明细(Payment Detail),这一步比如咱们在某宝上购物选择微信,支付宝,花呗等方式支付。

clipboard8,8

Place Order点击后,成功生成订单,获得订单ID.

clipboard9,9

总结一下,手动下单的流程能够分红这五步:

(1) 建立一个购物车Shopping Cart (2) 给该购物车里添加产品 (3) 给该购物车维护发货地址 (4) 给该购物车维护支付明细 (5) 执行下单操做,成功生成订单

搞清楚流程以后,接下来须要找到每一个步骤分别调用哪些API来实现。

登陆SAP官网https://api.sap.com, 根据关键字Commerce Cloud搜索,很容易就能找到全部须要使用的API:

clipboard10,10

Jerry写了一个nodejs应用来演示这些API的用法。这个nodejs应用的完整代码在Jerry的github上。

执行这个应用,在第20行的回调函数里会打印出成功建立的订单ID:

clipboard11,11

根据这个ID到Commerce Cloud的backoffice里,能查找到成功建立的订单:

clipboard12,12
clipboard13,13

前面说到手动下单须要5个步骤,而Jerry项目文件里有七个step.js, 多出来的两个步骤,一个是获取Access Token,另外一个是设置购物车的Delivery Mode. 前者是后续调用全部API的基础,然后者完成的逻辑,当咱们在浏览器里手动下单时,Commerce Cloud应用会自动帮咱们设置,可是用API的方式下单时,须要咱们显式调用设置Delivery Mode的API, 所以最后一共须要7个步骤才能完成订单的建立。

clipboard14,14

获取Access Token的步骤,仍然是采用常规的OAuth认证,经过client id和client secret去换取Access Token.

咱们首先须要在Commerce Cloud上建立一个OAuth Client,维护Client ID, Client Secret, 密码,token刷新间隔,相关权限等信息:

clipboard15,15

而后在step1_get_token.js里,经过OAuth Client维护的这些信息发一个POST请求到OAuth endpoint换取Access Token.

clipboard16,16

由于隐私缘由,Jerry没有把urlconfig.js上传到github上,只上传了一个urlconfigTemplate.js, 请你们在使用这个nodejs应用以前,把urlconfigTemplate.js里的以左右尖括号标识的占位符替换成实际值,而后重命名成urlconfig.js便可。

clipboard17,17

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

公众号截图
相关文章
相关标签/搜索