Release Information for All Versions of Spartacus Libraries
Note: Spartacus 2.x is no longer maintained. Please upgrade to the latest version.
Final 2.0 released June 3, 2020!
Last updated June 3, 2020 by Bill Marcotte, Senior Product Manager, Spartacus
Contents:
- Introduction
- Release 2.1
- Release 2.0
- Release 1.5
- Release 1.4
- Release 1.3
- Release 1.2
- Release 1.1
- Release 1.0
- About Spartacus Releases
- How Spartacus is Versioned
- Upgrading Spartacus Libraries to a New Minor Version
- Future Releases
Introduction
This document describes what is included in all Spartacus 2.x libraries since 2.0.
For release information about Spartacus 1.x, see Release Information for Versions 1.0-1.5 of Spartacus Libraries in our version 1.x documentation archive.
Note: Spartacus 2.x requires Angular 9. For more information, see Updating to Version 2.0.
- For information on specific code changes for a particular release, see the Development Release Notes.
- For information about features published in pre-release libraries, see Pre-Release Information.
- For information about upgrading, see Upgrading Spartacus Libraries to a New Minor Version.
- For information about which versions of the Spartacus libraries and SAP Commerce Cloud are required for a specific feature, see Feature Compatibility.
- If you have technical questions, you can get in touch with us on Stack Overflow. For non-technical questions, you can reach us on our Slack workspace. Feedback welcome!
Disclaimer - Forward-Looking Statements
This document contains or may contain forward-looking statements. All forward-looking statements are subject to various risks and uncertainties that could cause actual results to differ materially from expectations. Readers are cautioned not to place undue reliance on these forward-looking statements, which speak only as of their dates, and they should not be relied upon in making purchasing decisions. Any information is subject to change for any reason without notice. The information in this document is not a commitment, promise or legal obligation to deliver any material, code or functionality. This document is provided without a warranty of any kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement. This document is for informational purposes and may not be incorporated into a contract. SAP assumes no responsibility for errors or omissions in this document, except if such damages were caused by SAP’s intentional or gross negligence.
The various documentation links provided point to SAP Commerce Cloud or Accelerator documentation or third-party external links. These links are included for information purposes only and may not reflect exactly what is implemented in Spartacus.
Release 2.1
Release 2.1.0 libraries published August 27, 2020
- Directionality: Provides support for bidirectional text and layout. You can configure Spartacus to use a left-to-right (LTR) orientation, or a right-to-left (RTL) orientation. The 2.1 feature is for core functionality; that Spartacus updates to CSS will be completed in the 3.0. For more information, see the documentation.
- Style Library Versioning: Allows the core Spartacus development team to introduce gradual changes in the style layer while maintaining backwards compatibility. New or adjusted style rules are added for a specific version, but these changes are not added in the style build process unless you explicitly opt in to receive these changes. For more information, see the documentation.
Release 2.0
Release 2.0.0 libraries published June 3, 2020
As Release 2.0 is a new major version, it contains breaking changes. To migrate to 2.0 from 1.x, see the following documentation:
- Updating to Version 2.0 (automated update using schematics)
- Technical Changes in Spartacus 2.0
- Changes to Styles in 2.0
The following is a summary of the major changes introduced in 2.0:
- Framework updated to Angular 9, including related dependencies such as ngrx 9
- Schematics updated
- Accessibility Keyboarding features
- Lazy loading of CMS components
- Event Service, with Add to Cart event
- State Persistence
- Custom Angular URL Matching
- Many components refactored
- New facet navigation makes extending facets easier
- Deprecated code removed
Notes for deployment of Spartacus 2.0 storefronts via SAP Commerce cloud hosting service
Spartacus 2.0 uses Angular 9, which changes certain file locations. As of this writing (July 2020), to use Spartacus 2.0 with SAP Commerce Cloud in the Public Cloud hosting services, you must make the following changes to your Angular application for it to build properly. (For more information, see https://github.com/SAP/spartacus/issues/7993.) This will be fixed in a future release of SAP Commerce Cloud in the Public Cloud.
Changes in angular.json
:
"outputPath": "dist/app-name/browser"
to"outputPath": "dist/app-name"
"outputPath": "dist/app-name/server"
to"outputPath": "dist/app-name-server"
Change in server.ts
:
const distFolder = join(process.cwd(), 'dist/app-name/browser');
toconst distFolder = join(process.cwd(), 'dist/app-name');
For more information on changes
For a detailed list of all changes for 2.0 and previous ‘next’ releases of the Spartacus libraries, see the Spartacus project release page on GitHub.
Release 1.5
Release 1.5 libraries published February 26, 2020
-
Intelligent Selling Services for SAP Commerce Cloud
Intelligent Selling Services for SAP Commerce Cloud provides real-time customer experience personalization for SAP Commerce Cloud, now with support for Spartacus! Integration includes the Profile Tag and the Merchandising Carousel features. For more information on the Intelligent Selling Services feature itself, see the Intelligent Selling Services documentation in the SAP Help Portal. -
Customer Coupons
Increase conversion and customer loyalty with Customer Coupons. This feature provides a range of functionality for promotion campaigns, such as allowing customers to claim a coupon using the coupon’s campaign URL, turning on status notifications for a coupon, allowing users to view their coupons in the My Coupons section, and applying usable coupons during checkout. -
Selective Cart
Increase conversion and buyer convenience with Selective Cart. Also known as “Save for Later”, Selective Cart allows customers to select which items in the cart they wish to purchase, and to leave other items in the cart for future consideration. This improves the shopping experience and increases the conversion rate. -
Variants (as seen in the Apparel store)
Organize and logically display product variants like color and size, making it easier for customers to discover the particular style they want. -
Applied Promotions
Promotions now appear in all required locations (in the Added-to-Cart modal for example), not just in the cart. Per-product promotions now also appear in the product entry. This work also includes refactoring to accommodate future support for potential promotions. -
Skip Links
The Skip Links features allows users to quickly navigate to important areas of a page using the keyboard. This feature is the first of several Accessibility feature improvements planned for Spartacus. -
Bug fixes as described in the development release notes
Release 1.4
Release 1.4 libraries published January 27, 2020
What’s new?
- Wish List
- Back-in-Stock Notification
- Token Revocation (supports back end improvement added to 1905.6)
- Stacked Outlets
- Product data performance improvements with loading scopes. You can also see GitHub Issue 3666 for more information.
- Deferred Loading
- Above-the-Fold Loading
- CMS component data loading optimization. For more information, see GitHub Issue 5845
- Updates to cart handling to support future features. For more information, see GitHub Issue 4432
Note: The Cancellations and Returns feature is also part of 1.4. However, this feature requires updates to OCC REST APIs that are not yet released. The updated APIs are scheduled to be part of the May 2020 release (Release 2005) of SAP Commerce Cloud. Please see official SAP Commerce Cloud release announcements for more information.
Release 1.3
Release 1.3 libraries published November 18, 2019
What’s new?
Architecture and Development Features
-
Storefront Self-Configuration (detection of languages, currencies, and other site settings through base site API)
Draft Spartacus Documentation -
Structured Data (provides a data structure for the web that makes the web content more understandable for web crawlers)
Spartacus Documentation -
Qualtrics intercept integration and example
Spartacus Documentation
Core/B2C Storefront Features
-
Assisted Service Module (ASM) customer emulation (requires October patch release of SAP Commerce Cloud 1905)
Spartacus Documentation SAP Commerce Documentation -
Anonymous consent
Spartacus Documentation SAP Commerce Documentation -
Coupons (requires October patch release of SAP Commerce Cloud 1905)
Spartacus Documentation SAP Commerce Documentation
B2B Storefront Features
Powertools sample data modified to work with Spartacus (requires latest spartacussampledataaddon).
Note: B2B Spartacus not yet available (B2B My Company and Checkout planned for Q1 2020). Powertools out-of-the-box sample data itself is now “Spartacus-ified” so that it displays properly when you point Spartacus to it. It’s what we’re using to do our development. However My Company and Checkout not yet supported; you’ll see a few errors related to API calls that we are part of the updated b2boccaddon API release in Q1.
Release 1.2
Release 1.2 libraries published September 30, 2019
What’s new?
- Store Locator
- Guest Checkout
- Express Checkout
- Infinite Scroll
- Routing Migration
- Early Login
- Consignment Tracking
- Angular updated to 8.2.5; ngrx to 8.3.0; other dependency updates
To update to 1.2.0, you must change your libraries in package.json
and and dependencies inside app.module.ts
. See Building the Spartacus Storefront from Libraries for more information.
- To use 1.2 features, add these to
B2cStorefrontModule.withConfig({
features: { level: '1.2', consignmentTracking: true, },
-
To enable guest or express checkout, add these to
B2cStorefrontModule.withConfig({
checkout: { express: true, guest: true },
-
To use infinite scroll, add these to
B2cStorefrontModule.withConfig({
view: { infiniteScroll: { active: true, productLimit: 500, showMoreButton: false, }, },
-
To see ‘early login’ in action, after this line:
ConfigModule.withConfigFactory(defaultCmsContentConfig)
addConfigModule.withConfig({routing: { protected: true, } })
-
To enable consignment tracking, add this to
features
:features: { consignmentTracking: true }
Release 1.1
Release 1.1 libraries published August 29, 2019
Release notes: https://github.com/SAP/spartacus/releases
- Feature Flags (meant to allow setting feature level of releases for backwards compatibility)
- Configurable Endpoints
- Change to registration and login flow: must log in after registering
- Also released: a beta of a new library, Schematics. Schematics allow for easy setup of Spartacus libraries with a new Angular project in one command. In the future, schematics will help in upgrading, maintaining, customizing, and building projects with Spartacus libraries (for example: template generators for custom cms components). A detailed description about schematics can be found here.
Release 1.0
Release 1.0 libraries published July 4, 2019
Customer-facing storefront features:
Page/Area | Notes |
---|---|
Header | Displays language and currency selection, shortcut links to help and other sample information pages, logo, search box, cart icon, category bar, and breadcrumbs |
Footer | Displays company links and copyright notice |
Home | Driven by CMS page layout and slots |
Search | Search box in header displays search and product suggestions; search results include facets provided by backend |
Categories | Category menus in header display up to 2 levels; category results include facets provided by backend |
Product details | Displays product title, images, price, quantity selection, add to cart, stock, and summary; supplementary information area includes details, specifications, reviews, and shipping information |
Added-to-cart modal | Displays confirmation that a product was added to the cart; can change quantity in the modal |
Authentication | Registration, login, and forgot password |
Cart page | Displays list of items in the cart and purchase summary; allows change of quantity and removal of items |
Checkout | Typical four-step checkout allowing customer to enter shipping and payment details, choose shipping method, and then review before submitting order; new shipping addresses and payment methods are saved automatically; customers can choose from saved shipping addresses and payment methods; confirmation displayed after successful order submission; can replace entire checkout process or is extendable on a step-by-step basis |
Order History | Displays list of orders and details for a specific order; orders are listed by consignment |
Address Management | Displays list of saved shipping addresses; customers can add new shipping addresses, edit and delete shipping addresses, and make set a shipping address as the default |
Payment Method Management | Displays list of saved payment methods; customers can delete payment methods, and make a payment method the default |
Account Settings | Displays and allows customers to edit their name, email address, password and consent preferences; also allows the customer to request account closure |
Add to Home | Allows the customer to add the storefront web app to their device Home or Launch screen, as if the storefront were a native app (search for “PWA Add to Home” for more information) |
Architectural and foundational features:
Topic/Area | Notes |
---|---|
Decoupled | Communicates through API’s only; uses SAP Commerce Cloud APIs ootb but can connect to microservices or other API-based Internet sources |
Upgradable libraries | Semantic versioning used; recommendation is to use the libraries (don’t fork the source code) |
Extendable architecture | Replace existing components with custom components; add custom components before or after existing components; customize component-specific business logic; re-use public internal services |
Customizable Styling | Global variables for ease of branding; precise selectors for fine-tuning styling; also useful for certain simple positioning changes |
Responsive Design | Layouts display properly on devices of different sizes; ootb viewports include mobile, tablet, desktop, wide desktop; configurable |
CMS | Driven almost completely by CMS provided by SAP Commerce Cloud backend; can be used for marketing content and also as placeholders for injecting functionality; can use third-party systems |
SmartEdit | SmartEdit supported; same functionality as in Accelerator (requires SAP Commerce Cloud 1905) |
Routing | Allows configuration of all site URLs (e.g. /products/shoes); configurable in Spartacus application but also controlled by CMS routing configuration defined in the backend (thus editable by SmartEdit); includes default configurations so no customization necessary to get Spartacus working |
SSR | SSR (Server-Side Rendering) supported, where HTML page is rendered on the server instead of on the client; required to for SEO / search site indexing; also improves performance of first time-to-view |
SEO | Stateful URLs for every part of the storefront; search engine indexing supported by way of SSR; configurable routing; page meta resolvers including title, description, image (og:image), and robots |
Cache-first networking | Caching of shell app, with more to come in subsequent releases |
Localization | All front-end texts localizable (texts that are part of the storefront code only; some texts come from backend CMS components, translated in backend) |
Builds with CCv2 | JavaScript appiclications such as Spartacus-based storefronts can be built alongside SAP Commerce using Commerce Cloud v2 |
About Spartacus Releases
- Libraries that are “released” are new, official, tested Spartacus libraries available to the public (hosted on npmjs.com)
- We usually publish new libraries every 2 weeks
- A change in minor means we added new features, but they are configured to be off by default, so as not to cause compatibility issues. A new minor also means inclusion of changes or bug fixes that may affect compatibility, but these are also controlled by feature flags. So all significant changes are “opt-in”. See feature flag documentation for more information.
- We will normally publish pre-release libraries labelled ‘next’ a few weeks before a new minor release. The goal is to provide early access to new features and get feedback from the community.
- If you choose not to use a new feature, you should have no problems upgrading to a new Major.# with features flag set to a previous Major.#. If you do see a problem, please report a bug and we’ll assess and fix it. We encourage you to upgrade to latest libraries frequently during development in order to take advantage of bug fixes and new features.
- To be able to use all functionality in Spartacus 2.*, release 2005 of SAP Commerce Cloud is required. The latest patch release is required or at least strongly recommended, as it usually contains bug fixes that affect Spartacus (for example, ASM requires 1905.5 and Save for Later features requires 1905.11). However, Spartacus 2.* also works and is tested with release 1905; Spartacus features that rely on new APIs introduced in 2005 (such as cancellations and returns) are not available.
How Spartacus is Versioned
Spartacus is following semantic versioning (Major.Minor.Patch).
- A new patch release (1.2.3 > 1.2.4 for example) means we added fixes or improvements but no new features.
- A new minor release (1.2.4 > 1.3.0 for example) means we added a new feature and possibly fixes and improvements.
For both patch and minor releases, upgrading to the new libraries should not cause any compatibility problems with your storefront app. (If it does, report a bug.) All new features and fixes are implemented in a compatible way. For example, all new features are disabled by default using feature flags. We hope you will upgrade frequently.
- A new major release (1.3.2 > 2.0.0 for example) means that, besides adding new features and improvements, we made changes that will likely cause compatibility issues. Your app likely needs updating when moving to a new major release. These effects, reasons, and benefits will be documented.
We don’t plan to introduce a new major release that frequently, unless an issue is found that makes it necessary to move to a major release . For example, a new major release of the Angular framework is one factor in our decision to move to a new major for Spartacus.
Upgrading Spartacus Libraries to a New Minor Version
You can upgrade your Spartacus libraries to a new minor version, as follows:
-
In
package.json
, set your@spartacus
libraries to“~2.#.0"
, where#
is replaced with the release version number you wish to upgrade to.If you are upgrading from 1.x to the latest 1.5 release in order to then upgrade to 2.x, in
package.json
, set your@spartacus
libraries to“~1.5.5"
. - Delete your
node_modules
folder. - Run
yarn install
.
Future Releases
See the separate roadmap document.