如何使用API的方式消費SAP Commerce Cloud的訂單服務

i042416發表於2019-10-26

最近Jerry在做一個微信和SAP Commerce Cloud整合的專案,需要在微信裡呼叫後者的Restful API進行訂單建立和讀取。以前Jerry對SAP Commerce Cloud知之甚少,這次趁機學習了一下,過程中得到了SAP成都研究院Commerce開發團隊的Jonathan,Kevin和Kate等幾位同學的大力幫助,這裡表示感謝。

在SAP官網 help.sap.com 上根據關鍵字commerce搜尋,結果列表裡會顯示出好幾個產品,這難免會讓像Jerry這種剛接觸commerce的人感到有點疑惑。

如何使用API的方式消費SAP Commerce Cloud的訂單服務

其實只需要耐心地開啟這些連結逐一閱讀一會兒,就能弄清楚這幾個產品間的差異:

  • 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就不深入展開了。

如何使用API的方式消費SAP Commerce Cloud的訂單服務

回到本文主題,要想消費Commerce Cloud的訂單服務,首先需要熟悉一下如何手動在Commerce Cloud裡下單。在Commerce Cloud B2C的場景裡,下單的流程對我們每個人來說幾乎熟悉得不能再熟悉了——和我們日常在某寶上購物如出一轍。

到電商店鋪裡瀏覽商品,看中自己心儀的一款產品後,

如何使用API的方式消費SAP Commerce Cloud的訂單服務

點選Add To Cart把產品加到購物車裡:

如何使用API的方式消費SAP Commerce Cloud的訂單服務

點Check Out去結賬:

如何使用API的方式消費SAP Commerce Cloud的訂單服務

會生成一個購物車ID:

如何使用API的方式消費SAP Commerce Cloud的訂單服務

維護髮貨地址。當然我們平時在某寶上購物時,一般都提前在手機app裡維護了好幾個發貨地址,然後結賬時只需從中選擇一個即可。

如何使用API的方式消費SAP Commerce Cloud的訂單服務

維護支付方式和明細(Payment Detail),這一步好比我們在某寶上購物選擇微信,支付寶,花唄等方式支付。

如何使用API的方式消費SAP Commerce Cloud的訂單服務

Place Order點選後,成功生成訂單,得到訂單ID.

如何使用API的方式消費SAP Commerce Cloud的訂單服務

總結一下,手動下單的流程可以分成這五步:

(1) 建立一個購物車Shopping Cart
(2) 給該購物車裡新增產品
(3) 給該購物車維護髮貨地址
(4) 給該購物車維護支付明細
(5) 執行下單操作,成功生成訂單

搞清楚流程之後,接下來需要找到每個步驟分別呼叫哪些API來實現。

登入SAP官網 https://api.sap.com, 根據關鍵字Commerce Cloud搜尋,很容易就能找到所有需要使用的API:

如何使用API的方式消費SAP Commerce Cloud的訂單服務

Jerry寫了一個nodejs應用來演示這些API的用法。這個nodejs應用的完整程式碼在Jerry的 github上。

執行這個應用,在第20行的回撥函式裡會列印出成功建立的訂單ID:

如何使用API的方式消費SAP Commerce Cloud的訂單服務

根據這個ID到Commerce Cloud的backoffice裡,能查詢到成功建立的訂單:

如何使用API的方式消費SAP Commerce Cloud的訂單服務 如何使用API的方式消費SAP Commerce Cloud的訂單服務

前面說到手動下單需要5個步驟,而Jerry專案檔案裡有七個step.js, 多出來的兩個步驟,一個是獲取Access Token,另一個是設定購物車的Delivery Mode. 前者是後續呼叫所有API的基礎,而後者完成的邏輯,當我們在瀏覽器裡手動下單時,Commerce Cloud應用會自動幫我們設定,但是用API的方式下單時,需要我們顯式呼叫設定Delivery Mode的API, 因此最後一共需要7個步驟才能完成訂單的建立。

如何使用API的方式消費SAP Commerce Cloud的訂單服務

獲取Access Token的步驟,仍然是採用常規的OAuth認證,通過client id和client secret去換取Access Token.

我們首先需要在Commerce Cloud上建立一個OAuth Client,維護Client ID, Client Secret, 密碼,token重新整理間隔,相關許可權等資訊:

如何使用API的方式消費SAP Commerce Cloud的訂單服務

然後在step1_get_token.js裡,通過OAuth Client維護的這些資訊發一個POST請求到OAuth endpoint換取Access Token.

如何使用API的方式消費SAP Commerce Cloud的訂單服務

因為隱私原因,Jerry沒有把urlconfig.js上傳到github上,只上傳了一個urlconfigTemplate.js, 請大家在使用這個nodejs應用之前,把urlconfigTemplate.js裡的以左右尖括號標識的佔位符替換成實際值,然後重新命名成urlconfig.js即可。

如何使用API的方式消費SAP Commerce Cloud的訂單服務

要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":

如何使用API的方式消費SAP Commerce Cloud的訂單服務


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2661538/,如需轉載,請註明出處,否則將追究法律責任。

相關文章