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的原创文章,尽在:"汪子熙":