如何使用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的人感到有点疑惑。
其实只需要耐心地打开这些链接逐一阅读一会儿,就能弄清楚这几个产品间的差异:
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上有一篇不错的博客Two clouds in practice: a comparison of SAP Commerce Cloud v1 and v2介绍CCV1和CCV2的对比,这里Jerry就不深入展开了。
回到本文主题,要想消费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:
Jerry写了一个nodejs应用来演示这些API的用法。这个nodejs应用的完整代码在Jerry的github上。
执行这个应用,在第20行的回调函数里会打印出成功创建的订单ID:
根据这个ID到Commerce Cloud的backoffice里,能查找到成功创建的订单:
前面说到手动下单需要5个步骤,而Jerry项目文件里有七个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.
因为隐私原因,Jerry没有把urlconfig.js上传到github上,只上传了一个urlconfigTemplate.js, 请大家在使用这个nodejs应用之前,把urlconfigTemplate.js里的以左右尖括号标识的占位符替换成实际值,然后重命名成urlconfig.js即可。
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
如何使用API的方式消费SAP Commerce Cloud的订单服务相关推荐
- 如何通过Restful API的方式读取SAP Commerce Cloud的Product图片
需求:我在SAP Commerce Cloud的backoffice里给某product维护了一些图片: 分别位于Normal,Thumbnails和Others等字段: 现在我想通过Restful ...
- 如何通过Restful API的方式读取SAP Commerce Cloud的Product Reference
从SAP官网上找到api的说明: https://api.sap.com/api/commerce_services/resource api endpoint: /rest/v2/electroni ...
- 如何使用 API 的方式给 SAP service cloud Registered product 上传图片
访问网址:https://api.sap.com/ 因为是 SAP service cloud,故产品选择 customer experience: 选择 API 标签,OData V2,关键字输入 ...
- SAP Commerce Cloud 架构概述
SAP Commerce Cloud Architecture 尽管我们在"SAP Commerce Cloud 入门"一文中介绍了 SAP Commerce Cloud 的一些高 ...
- 关于SAP Spartacus在服务器端渲染模式和SAP Commerce Cloud API白名单的问题
We are configuring our Spartacus application with SSR in SAP Commerce Cloud. Also we used the IP Fil ...
- 如何通过 Excel import 的方式导入测试数据到 SAP Commerce Cloud 服务器
登录 SAP Commerce Cloud Administration Cockpit,从下拉菜单里选择 Product Cockpit: 点击这个箭头,打开 product 视图: 点击这个 ex ...
- SAP Commerce Cloud UI 的用户会话管理
这是 Jerry 2021 年的第 51 篇文章,也是汪子熙公众号总共第 328 篇原创文章. 如无特殊说明,本公众号介绍的 SAP Commerce Cloud UI,均指新一代基于 Spartac ...
- 一小时内在本地搭建 SAP Commerce Cloud(电商云)的前后台运行环境
这是Jerry 2021年的第 21 篇文章,也是汪子熙公众号总共第 292 篇原创文章. 最近一段时间, Jerry 陆续把自己在 SAP Commerce Cloud (电商云) 新一代前台页面开 ...
- SAP Commerce Cloud UI(Spartacus Storefront) 的用户会话管理
这是 Jerry 2021 年的第 51 篇文章,也是汪子熙公众号总共第 328 篇原创文章. 如无特殊说明,本公众号介绍的 SAP Commerce Cloud UI,均指新一代基于 Spartac ...
最新文章
- Docker安全性支持(使用Cgroups机制实现容器资源控制)
- 关于Jeecg互联网化dubbo改造方案(上)
- FF公布融资及FF 91交付规划 IPO之前还需8.5亿美元资金
- drupal7 smtp+mimemail+mailsystem 实现发送html邮件
- 16进制转ascii,转字符串
- VC.【转】采用_beginthread/_beginthreadex函数创建多线程
- 音质好的linux主机,实测:ASIO 的音质更好?
- 设计模式之----依赖倒置(Dependency inversion principle)的理解
- ArcGIS 制作3D遥感影像图
- 谷歌colab平台简单使用及读取自己的数据集
- linux 内核更改,linux_kernel修改、编译、加载
- Azkban上传文件报错installation Failed.Error chunking
- sql2java-excel(二):基于apache poi实现数据库表的导出的spring web支持
- 东北大学 数据库概论 第三章SQL 习题见解:Find all customers who have an account at all branches located in Brooklyn
- 日期转字符串-字符串转日期
- 使用深度学习识别狗的品种
- django 连接数据库 sqlite
- android手机的扩容教程,解决手机系统空间不足
- 汽车冬季养护小知识,Get起来!
- Solaris系统管理培训