一小時內在本地搭建SAP Commerce Cloud(電商雲)的前後臺執行環境

注销發表於2021-03-23

這是Jerry 2021年的第 21 篇文章,也是汪子熙公眾號總共第 292 篇原創文章。

最近一段時間, Jerry 陸續把自己在 SAP Commerce Cloud (電商雲) 新一代前臺頁面開發的日常工作中遇到的一些問題和心得,寫成了文章:

  • 從一個實際的例子出發,談談SAP Commerce Cloud電商雲的UI自定義開發
  • SAP Commerce Cloud (電商雲) UI 的懶載入功能
  • SAP CRM Fiori 應用和 SAP Commerce Cloud (電商雲) UI 如何透過調整CSS來改變UI顯示風格
  • SAP 產品一脈相承的 UI 增強思路,在 SAP Commerce Cloud (電商雲) UI 增強實現中的體現

有朋友在文章留言,詢問是否可能在本地搭一個 SAP 電商雲的執行環境,來學習基於 SAP Spartacus 的新一代電商雲前臺 ( SAP Spartacus ) 的設計。

這個願望當然是可以實現的。SAP Commerce Cloud (電商雲) 的部署方式非常靈活:不僅能託管在 SAP 自己的基礎設施 (infrastructure) 上,也能架設在第三方公有云上。當然,也仍然支援採用以前傳統的 Hybris On-Premises 本地部署方式。

實際上,SAP Spartacus 的幫助網站上,給出瞭如何在本地搭建 SAP Commerce Cloud 前後臺執行環境的具體步驟:

https://sap.github.io/spartac...

Jerry 自己試過,只要按照網頁裡描述的步驟一步步操作,如果一切順利的話,一個小時之內,即可完成 SAP 電商雲前後臺的搭建,得到一個能夠正常執行的環境。

首先從 SAP Software Center 網站下載 SAP Commerce Cloud 的安裝包,我選擇的是 2011版本:

https://launchpad.support.sap...

將下載到本地的安裝包解壓,按照下列文件介紹的步驟,在 installer/recipes 資料夾內基於 cx 複製一個新的資料夾 cx-for-spa 出來,從而新建了一個基於 Spartacus 的安裝 recipes.

https://sap.github.io/spartac...

將該 recipes 目錄內的 build.gradle 檔案內,extensions 列表區域的 spartacussampledata 的註釋去掉,從而讓該 recipes 啟用對 SAP Spartacus 的支援。

接下來是 SAP Commerce 安裝的老三樣了,依次執行下列三個命令:

./install.sh -r cx-for-spa
./install.sh -r cx-for-spa initialize
./install.sh -r cx-for-spa start

cx-for-spa recipe裡啟用的 spartacussampledata extension,裡面包含了很多測試資料。在上面第二條命令,進行 Commerce 平臺 initialization 時,會將這些測試資料匯入 SAP Commerce 的資料庫。

安裝完畢後,瀏覽器裡使用 localhost 的主機名,檢查本地安裝的 SAP Commerce,其 Admin Console,Backoffice 和 基於 JSP 的 Accelerator Storefront 是否能夠正常開啟:

  • Admin Console: https://localhost:9002
  • Backoffice: https://localhost:9002/backoffice
  • Accelerator Storefront: https://localhost:9002/yacceleratorstorefront/?site=electronics

這三個 url 開啟的介面外觀依次如下三個截圖所示:

上圖就是基於 JSP 技術的 SAP Commerce 傳統的 Accelerator Storefront,按照 SAP 官網的說法,Accelerator Storefront 終究將會被 SAP Commerce 新一代的 Spartacus UI 所取代。

https://sap.github.io/spartac...

下面進行 SAP Spartacus 的安裝。

https://sap.github.io/spartac...

步驟和 SAP Commerce 的安裝流程相比簡單了不少,一個命令就能搞定。不過要注意,安裝之前,確保下面羅列的三個工具,在本地具有文件內規定的版本號:

  • Angular CLI
  • Node.js
  • Yarn

首先 ng new samplestore, 建立一個名為 samplestore 的 Angular 應用:

進入建立好的 samplestore 目錄,使用下面的命令列,能夠安裝預設支援 B2C 功能的 Spartacus Storefront:

ng add @spartacus/schematics

如果想支援 B2B 功能,待上面的命令列成功執行完畢後,再執行下面的命令列:

ng add @spartacus/organization

所有的命令列成功執行完畢後,開啟 app.module.ts 檔案,將配置節點 backend.occ.baseUrl 欄位指定為我們本地安裝的 SAP Commerce 例項即可:

https://localhost:9002

還記得之前 Jerry 的文章:Jerry在2020 SAP全球技術大會的分享:SAP Spartacus技術介紹的文字版 裡介紹的一點:SAP Spartacus 100% 的 API 驅動特性麼?

SAP Spartacus 正是透過這個配置好的 https://localhost:9002/occ/v2 endpoint, 呼叫 Angular 提供的 HTTP 庫,消費本地安裝的 SAP Commerce 提供的 Restful API, 將資料呈現在用 Angular 開發而成的 Spartacus 單頁面應用裡。

ng serve 命令啟用這個安裝好的 Angular 應用,在 Chrome 開發者工具 Network 標籤裡,能觀察到 SAP Spartacus 的 Restful API 呼叫。

如果大家在搭建 SAP Commerce Cloud 前後臺執行環境時遇到問題,歡迎留言討論。

感謝閱讀。

更多閱讀

  • 從產品展示頁面談談Hybris的特有概念和設計結構
  • 從產品展示頁面談談Hybris系列之二: DTO, Converter和Populator
  • Hybris Enterprise Commerce Platform 服務層的設計與實現
  • 從一個實際的例子出發,談談SAP Commerce Cloud電商雲的UI自定義開發
  • SAP Commerce Cloud (電商雲) UI 的懶載入功能
  • SAP CRM Fiori 應用和 SAP Commerce Cloud (電商雲) UI 如何透過調整CSS來改變UI顯示風格
  • SAP 產品一脈相承的 UI 增強思路,在 SAP Commerce Cloud (電商雲) UI 增強實現中的體現
  • Jerry在2020 SAP全球技術大會的分享:SAP Spartacus技術介紹的文字版

更多Jerry的原創文章,盡在:"汪子熙":

相關文章