数据未定义;在api chooseimage成功回调函数 没有定义数据_如何使用API的方式消费SAP Commerce Cloud的订单服务...

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

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

990c901cd2f9f25a2dd9d3e52047dc21.png

其实只需要耐心地打开这些链接逐一阅读一会儿,就能弄清楚这几个产品间的差异:

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

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上有一篇不错的博客介绍CCV1和CCV2的对比,这里Jerry就不深入展开了。

Two clouds in practice: a comparison of SAP Commerce Cloud v1 and v2

https://medium.com/@marko.ullgren/two-clouds-in-practice-a-comparison-of-sap-commerce-cloud-v1-and-v2-592077658e01

a2edce10a5a758b390d36e68421467fe.png

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

到电商店铺里浏览商品,看中自己心仪的一款产品后,

82e383f2ade299219823b223943b4254.png

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

a54db464446d6f2c031459c5cbfa3826.png

点Check Out去结账:

043360b4353118b10b08a7f0895484af.png

会生成一个购物车ID:

1a9b8888914c29e24c0f0d0fbbc88989.png

维护发货地址。当然我们平时在某宝上购物时,一般都提前在手机app里维护了好几个发货地址,然后结账时只需从中选择一个即可。

dc0743f6c2f1a185eefc30814a2da413.png

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

be242fbac57a71ec8ef3f44fc814d509.png

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

362ebf6be008d596146344929c94a12f.png

总结一下,手动下单的流程可以分成这五步:

(1) 创建一个购物车Shopping Cart

(2) 给该购物车里添加产品

(3) 给该购物车维护发货地址

(4) 给该购物车维护支付明细

(5) 执行下单操作,成功生成订单

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

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

efccaac63f38b66a6be59b40886953e5.png

Jerry写了一个nodejs应用来演示这些API的用法。这个nodejs应用的完整代码在Jerry的github上:https://github.com/i042416/KnowlegeRepository/tree/master/commerce

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

03bac1dd6eb9c6729c879e4b8617aedb.png

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

672e8342ddb203aa94a87477006f6999.png
87320edbe829652f3f47182c25120205.png

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

662e005094aad2de1bf1ef16f820b854.png

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

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

57c3b06f35e0c4210578bee5f85a93b0.png

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

77db45a4eaeb94faae88d3423e738b26.png

因为隐私原因,Jerry没有把urlconfig.js上传到github上,只上传了一个urlconfigTemplate.js, 请大家在使用这个nodejs应用之前,把urlconfigTemplate.js里的以左右尖括号标识的占位符替换成实际值,然后重命名成urlconfig.js即可。

a555c50677a3f5bf80d7122dcb5cf432.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值