最近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的订单服务相关推荐

  1. 如何通过Restful API的方式读取SAP Commerce Cloud的Product图片

    需求:我在SAP Commerce Cloud的backoffice里给某product维护了一些图片: 分别位于Normal,Thumbnails和Others等字段: 现在我想通过Restful ...

  2. 如何通过Restful API的方式读取SAP Commerce Cloud的Product Reference

    从SAP官网上找到api的说明: https://api.sap.com/api/commerce_services/resource api endpoint: /rest/v2/electroni ...

  3. 如何使用 API 的方式给 SAP service cloud Registered product 上传图片

    访问网址:https://api.sap.com/ 因为是 SAP service cloud,故产品选择 customer experience: 选择 API 标签,OData V2,关键字输入 ...

  4. SAP Commerce Cloud 架构概述

    SAP Commerce Cloud Architecture 尽管我们在"SAP Commerce Cloud 入门"一文中介绍了 SAP Commerce Cloud 的一些高 ...

  5. 关于SAP Spartacus在服务器端渲染模式和SAP Commerce Cloud API白名单的问题

    We are configuring our Spartacus application with SSR in SAP Commerce Cloud. Also we used the IP Fil ...

  6. 如何通过 Excel import 的方式导入测试数据到 SAP Commerce Cloud 服务器

    登录 SAP Commerce Cloud Administration Cockpit,从下拉菜单里选择 Product Cockpit: 点击这个箭头,打开 product 视图: 点击这个 ex ...

  7. SAP Commerce Cloud UI 的用户会话管理

    这是 Jerry 2021 年的第 51 篇文章,也是汪子熙公众号总共第 328 篇原创文章. 如无特殊说明,本公众号介绍的 SAP Commerce Cloud UI,均指新一代基于 Spartac ...

  8. 一小时内在本地搭建 SAP Commerce Cloud(电商云)的前后台运行环境

    这是Jerry 2021年的第 21 篇文章,也是汪子熙公众号总共第 292 篇原创文章. 最近一段时间, Jerry 陆续把自己在 SAP Commerce Cloud (电商云) 新一代前台页面开 ...

  9. SAP Commerce Cloud UI(Spartacus Storefront) 的用户会话管理

    这是 Jerry 2021 年的第 51 篇文章,也是汪子熙公众号总共第 328 篇原创文章. 如无特殊说明,本公众号介绍的 SAP Commerce Cloud UI,均指新一代基于 Spartac ...

最新文章

  1. Docker安全性支持(使用Cgroups机制实现容器资源控制)
  2. 关于Jeecg互联网化dubbo改造方案(上)
  3. FF公布融资及FF 91交付规划 IPO之前还需8.5亿美元资金
  4. drupal7 smtp+mimemail+mailsystem 实现发送html邮件
  5. 16进制转ascii,转字符串
  6. VC.【转】采用_beginthread/_beginthreadex函数创建多线程
  7. 音质好的linux主机,实测:ASIO 的音质更好?
  8. 设计模式之----依赖倒置(Dependency inversion principle)的理解
  9. ArcGIS 制作3D遥感影像图
  10. 谷歌colab平台简单使用及读取自己的数据集
  11. linux 内核更改,linux_kernel修改、编译、加载
  12. Azkban上传文件报错installation Failed.Error chunking
  13. sql2java-excel(二):基于apache poi实现数据库表的导出的spring web支持
  14. 东北大学 数据库概论 第三章SQL 习题见解:Find all customers who have an account at all branches located in Brooklyn
  15. 日期转字符串-字符串转日期
  16. 使用深度学习识别狗的品种
  17. django 连接数据库 sqlite
  18. android手机的扩容教程,解决手机系统空间不足
  19. 汽车冬季养护小知识,Get起来!
  20. Solaris系统管理培训

热门文章

  1. MySQL8.0.16主从同步
  2. echars 在vue v-if 切换会 显示不出来或者显示出来但是不是百分百显示
  3. 蓝桥杯 每周一练 第一周(3n+1问题)
  4. JavaEE-05 分页与文件上传
  5. spring boot 集成mybatis连接oracle数据库
  6. Android--获取当前系统时间
  7. 使用powermock 测试static 方法,jacoco统计覆盖率问题
  8. udp与tcp协议介绍
  9. 20应用统计考研复试要点(part18)--概率论与数理统计
  10. 微软已暂时停用你的帐户_Apple ID 被停用如何解决?