天天看點

SAP Commerce Cloud 項目 Spartacus 入門

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 移動應用程式,具有出色的性能和可靠性以及移動原生功能。

SAP Commerce Cloud 項目 Spartacus 入門
SAP Commerce Cloud 項目 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