SAP Commerce Cloud 项目 Spartacus 入门
原文地址
What is Spartacus?
Spartacus 是一個免費的開源 JavaScript Web 應用程序,它于 2019 年 5 月發布了 1.0 版本,并且每隔幾周就會繼續發布新的更新。它允許您為 SAP Commerce Cloud 快速創建自己的基于 JavaScript 的品牌店面。 Spartacus 是使用 Angular 編寫的,并作為一組庫發布。使用 JavaScript 的推薦方法是構建您自己的 JavaScript Web 應用程序并導入 Spartacus 庫。無需修改,店面即可開箱即用,但 Spartacus 的設計可升級、可定制和可擴展,以滿足您的所有品牌和功能要求。
Spartacus 是使用 SAP Commerce Cloud 維護可定制店面的戰略性方法。它取代了在 SAP Commerce v4.4 中首次引入的加速器模板,以提供現成的入門實施。盡管 Accelerator 模板允許合作伙伴通過更改示例店面快速開發全渠道體驗,但模板不易升級,它們基于 JSP,并且店面與 SAP Commerce 核心平臺緊密耦合。
Spartacus Architecture
盡管 Spartacus 與 SAP Commerce Cloud 分離,但它僅適用于 SAP Commerce Cloud 平臺。 Spartacus 依靠 SAP Commerce Cloud API 和 CMS 內容來運行。它是 100% API 驅動的,旨在以無頭方式運行。您可以自由擴展 Spartacus 附帶的庫以包含您自己的自定義。您的 Spartacus 實施也可以通過 SAP 擴展套件進行擴展。由于 Spartacus 與 SAP Commerce Cloud 平臺分離,因此您可以選擇將前端和后端開發分開,甚至可能具有單獨的部署/發布周期。您的 Spartacus 店面也可以獨立于 SAP Commerce Cloud 平臺進行擴展。您可能需要調整版本的唯一時間是在 SAP Commerce Cloud 中可供 Spartacus 使用的 API 的情況下。例如,Spartacus 2.0 版本有一些功能只能通過利用 SAP Commerce core 2005 中發布的 API 來激活。
Spartacus 使用多種語言、技術和庫的組合,包括 Angular、TypeScript、RxJS、NgRx、SASS 和 Bootstrap。最終輸出是純 JavaScript。 Angular 目前被用作開發框架,但其目標是允許使用其他框架。
Spartacus 響應迅速,包括對移動、平板電腦、桌面和寬桌面斷點的支持,但您可以自由配置自己的斷點。 Spartacus 還內置了漸進式 Web 應用程序 (PWA) 功能,您可以配置您的店面以使用它。這將使您的店面更像傳統的原生 iOS/Android 移動應用程序,具有出色的性能和可靠性以及移動原生功能。
Open SAP 上 Spartacus 的系列學習視頻鏈接
Spartacus 純粹是一組庫,其中包含一組核心庫、組件和樣式。 它有自己的發布周期,目標是每兩周發布一次。 您可以完全控制是否接受這些庫更新。 您可以選擇要在應用程序中使用的庫版本(Spartacus 使用 Semantic 版本控制 2.0),這些可用于完全配置和自定義您的店面。 有關主要版本更新的更多詳細信息,請參閱此頁面。
定制的方式與加速器不同; 您從不直接自定義 Spartacus 代碼——而是覆蓋或替換樣式和代碼。 這種方法允許易于升級。 有關擴展 Spartacus 的更多信息,您可以查看我們的視頻庫。
Underlying Frameworks/Libraries
如果您過去一直在開發 SAP Commerce Cloud 解決方案,您可能更熟悉我們的加速器(如下所述),它們是基于 Spring 模型視圖控制器 (MVC) 的應用程序。 由于 Spartacus 是一個 JavaScript 應用程序,底層框架/庫完全不同。 在開始開發 Spartacus 應用程序之前,您可能需要花時間熟悉這些技術/框架。
以下涵蓋了正在使用的框架/庫的主要站點,并且是可以幫助您的開發工作的信息的良好參考:
- Languages: Typescript, Sass
- Frameworks: Angular, RxJS, NgRx
- Dependency management: Yarn, npm
- Build: Angular CLI (under the hood: webpack, ng-packagr)
- Testing: Jasmine, Cypress, Karma
- Code Quality: Prettier, TSLint
- IDE: Visual Studio Code (or equivalent)
- Source control / distribution: Github, npmjs
SAP Spartacus 公開課:https://open.sap.com/courses/sparta1
SAP Commerce Cloud Accelerators
由于 Spartacus 與 SAP Commerce Cloud 分離,因此您無需使用 Spartacus。您可以自由創建和維護自己的 JavaScript Web 應用程序,也可以繼續使用 SAP Commerce Cloud 中嵌入的 Accelerator 模板,盡管這些不是前進的戰略方向。在發布時,Spartacus 不會具有與 SAP Commerce Cloud Accelerators 的所有功能相同的特性,但這些差距將在 Spartacus 文檔中涵蓋。
如果您已經在使用基于 Accelerator 的解決方案并希望遷移到 Spartacus,那么最好從頭開始。 Spartacus 在技術和架構(模板與庫、無頭與嵌入式、JSP 與 Angular)方面完全從加速器轉變為范式。它們是如此不同,以至于無法將基于 Accelerator 的代碼移植到 Spartacus 店面。也就是說,由于 Spartacus 與 SAP Commerce Cloud 平臺分離,您可以通過同時運行基于 Accelerator 的商店和 Spartacus 店面來簡化向 Spartacus 的過渡。例如,如果您目前有一個 B2B Accelerator 店面并且想要設置一個新的 B2C 店面,您可以使用 Spartacus 創建 B2C 店面,同時仍然托管您的基于 B2B 加速器的店面。假設您已經設置了源存儲庫來構建和部署 B2B Accelerator 店面,以添加 B2C 店面:
-
修改您的存儲庫以包含用于構建/部署基于 JavaScript 的店面的正確結構。
-
配置您的 manifest.json 文件以定義 Spartacus 調用的 API aspect.
-
在您的 manifest.json 文件中定義一個新應用程序,指向您的 Spartacus 店面所在的位置。
您可以繼續添加新的 Spartacus 店面應用程序并配置您的端點以允許特定流量進入您的店面。 他們仍在使用相同的 SAP Commerce Cloud 平臺,因此您可以同時運行多個店面,同時仍保持相同的信息(客戶、購物車、訂單等)。
Scalability
如上所述,由于您的 Spartacus 店面與 SAP Commerce Cloud 店面分離,您可以選擇單獨擴展它。 也可以利用其他擴展考慮因素(例如內容交付網絡 (CDN))來幫助減少負載。 此外,Spartacus 將包括 PWA 功能,例如緩存優先網絡功能,這將使您可以選擇在用戶設備上本地緩存資源。 延遲加載還可用于確定是否/何時加載部分組件。 最后,由于 Spartacus 是 API 驅動的,它可以利用 SAP 業務技術平臺、Kyma 運行時和隨附的可擴展微服務快速向 Spartacus 店面添加新功能。
Server-side vs. Client-Side Rendering
默認情況下,Spartacus 設置為客戶端渲染,但您可以配置服務器端渲染 (SSR)。 考慮每個選項的優缺點并確定哪個選項最符合您的要求非常重要。 對于電子商務解決方案,通常需要 SSR 的搜索引擎優化 (SEO) 的重要性超過客戶端呈現的任何好處。
Support
可以使用這個 slack channel
更多Jerry的原創文章,盡在:“汪子熙”:
總結
以上是生活随笔為你收集整理的SAP Commerce Cloud 项目 Spartacus 入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP Spartacus Static
- 下一篇: 单页面 Web 应用(Single Pa