Skip to content

Search is only available in production builds. Try building and previewing the site to test it out locally.

Release notes

Changelog

Boilerplate Updates

The Commerce boilerplate has been updated with the following changes:

  • Account drop-in fixes - Resolved various account drop-in functionality issues
  • Added carousel and cards-list components - Integrated carousel and cards-list components for enhanced product display capabilities
  • Architecture cleanup - Removed deprecated widgets and custom PLP components
  • Checkout compatibility - Fixed shipping methods infinite loop and iOS compatibility
  • Checkout update - Updated checkout drop-in to version 2.0.0-beta6
  • Commerce Storefront compatibility improvements - Enhanced compatibility with storefront-builder for improved UE integration
  • Documentation enhancement - Added comprehensive JSDocs comments to commerce.js
  • Global placeholders - Implemented global placeholders system
  • Header optimization - Optimized header’s mini-cart and search loading performance
  • Initialization optimization - Reordered main initialization in scripts.js for improved loading sequence
  • Modal localization - Fixed modal localized text display
  • PDP image zoom fix - Fixed image zoom icon display issues
  • Product discovery search fix - Fixed search item link functionality
  • reCAPTCHA enhancement - Enhanced reCAPTCHA initialization in initializeDropins function
  • Recommendations drop-in events - Recommendations drop-in now sends Adobe Client Data Layer events
  • Recommendations update - Updated @storefront-recommendations to v1.0.0
  • Removed default content from product-details block - Cleaned up default content from product-details block for cleaner implementation
  • Scripts refactoring - Major refactoring of scripts.js for improved maintainability
  • Wishlist improvements - Enhanced wishlist mobile alerts and cart integration

For complete details, see the Boilerplate Updates changelog entry.

Boilerplate Refactoring

The scripts.js file has been refactored to align with the upstream AEM Boilerplate while extracting all commerce-specific functionality into scripts/commerce.js. This refactoring provides better separation of concerns and improved maintainability.

Key Changes:

  • scripts.js now contains only core AEM functionality (aligned with upstream AEM Boilerplate)
  • commerce.js now contains all commerce-specific functionality including:
    • GraphQL queries and commerce backend connections
    • Template handling and application
    • Commerce page type detection
    • Adobe Data Layer initialization
    • Commerce utilities (rootLink, fetchPlaceholders, etc.)
    • Modal auto-linking functionality
    • Commerce-specific preloading logic

Import Updates Required: Developers need to update import statements from scripts/scripts.js to scripts/commerce.js for commerce-specific functions:

// Before
import { rootLink } from '../../scripts/scripts.js';
import { fetchPlaceholders } from '../../scripts/scripts.js';
// After
import { rootLink } from '../../scripts/commerce.js';
import { fetchPlaceholders } from '../../scripts/commerce.js';

See the Architecture Overview for more details about the refactoring and its benefits.

Cart v1.5.0

The Cart drop-in component has been updated to include the following changes:

  • Extended Add/Update Cart API: Added support for custom fields in the addToCart() and updateProductsFromCart() API functions, enabling developers to set and update custom cart item fields such as standard_height and custom_height during cart operations.
  • Fixed missing Channel Field: Fixed an issue where the channel attribute was missing from all Adobe Experience Platform (AEP) events on the Product Details Page. The channel field is now properly populated as part of the global storefront context for all PDP events, ensuring complete event data collection.
  • Added undo remove cart items: Introduced configurable functionality to allow users to undo item removals from the cart. When enabled, removed items display an undo banner in their original position while cart totals reflect the removal, with the ability to reinstate items with their original quantity and options. The feature works with both built-in remove buttons and the updateProductsInCart API, with customizable undo banner styling.
  • Enhanced mini cart flexibility: Redesigned the mini cart layout with reduced container nesting and improved slot architecture, allowing developers to easily wrap individual elements (price, product title, quantity), customize action button placement and styling, add quantity stepper labels, and include specific product attributes with comprehensive documentation.

Cart v1.4.0

  • Fixed the alignment of the Apply button text in the gift wrapping customization, ensuring it now matches the intended design.
  • Resolved an edge case where updating a cart item with the same options and quantity could unexpectedly remove the item from the cart.
  • The cart open AEP event now correctly includes productListItems, providing more accurate event data.
  • The cart view AEP event now includes selected product options and discount information in productListItems.
  • The add to cart AEP event now populates selected options for complex and bundled products, improving event tracking accuracy.
  • The start checkout AEP event now includes available product discount information in productListItems.
  • The cart summary list can now be rendered in a customizable column layout, allowing brands to better match their design guidelines.

Checkout v2.0.1

The checkout drop-in component has been updated to include the following changes:

  • Miscellaneous bug fixes and enhancements.

The Multi-step checkout tutorial has been updated providing a customizable example to implement a comprehensive multi-step checkout based on a modular architecture (event-driven step coordination) that supports the following scenarios:

  • Guest users
  • Logged-in customers
  • Virtual products
  • Mixed carts (physical + virtual product combinations)

Checkout v2.0.0

The checkout drop-in component GraphQL API has been extended exposing new fragments:

  • BILLING_CART_ADDRESS_FRAGMENT
  • SHIPPING_CART_ADDRESS_FRAGMENT
  • AVAILABLE_PAYMENT_METHOD_FRAGMENT
  • SELECTED_PAYMENT_METHOD_FRAGMENT

The Error Handling has been implemented in some containers (still work in progress):

  • BillToShippingAddress
  • LoginForm
  • PaymentMethods
  • ShippingMethods

The Event Handling has been documented within the list of events emitted and subscribed by the checkout drop-in component containers.

A new Active property has been added for all containers: This property activates/deactivates the container.

A new AutoSync property has been added for some containers: This property allows the container automatically synchronizing its state changes with the backend.

A new TitleProps interface has been created to customize the title and header of some containers.

The BillToShippingAddress container configuration structure has been modified. A new property has been added to the BillToShippingAddressProps interface:

  • BillToShippingAddressProps.onCartSyncError property added: This property allows performing some actions in case of an error is thrown when the bill to shipping checkbox is checked.

Implemented an error handling mechanism for the BillToShippingAddress container based on the “Optimistic” UI updates with rollback pattern consisting on the following:

  • It provides a callback function onCartSyncError() to be used in the integration layer in case the merchant wanted to perform some actions like showing an error message etc.

  • It performs a rollback reverting to the previous valid checkbox state.

  • In case the callback is not implemented, a fallback will be used, which consists of displaying an inline alert message.

The LoginForm container configuration structure has been modified. New properties have been added to the LoginFormProps interface:

  • LoginFormProps.displayHeadingContent property added: This property allows displaying the container heading content.

  • LoginFormProps.slots.Heading property added: This property allows customizing the container heading content based on the user authentication status.

… and the following properties have been added extending from TitleProps interface:

  • LoginFormProps.displayTitle property inherited: This property allows displaying the container title.

  • LoginFormProps.slots.Title property inherited: This property allows customizing the container title.

The PaymentMethods container configuration structure has been modified. Deprecated properties have been removed from the PaymentMethodsProps interface:

  • PaymentMethodsProps.setOnChange deprecated property removed.

  • PaymentMethodsProps.slots.Handlers deprecated property removed.

… the following property has been renamed:

  • PaymentMethodsProps.slots.Methods[code].setOnChange property renamed to PaymentMethodsProps.slots.Methods[code].autoSync.

… the following properties have been added:

  • PaymentMethodsProps.onSelectionChange property added: This property allows performing some actions when a payment method is selected.

  • PaymentMethodsProps.onCartSyncError property added: This property allows performing some actions in case of an error is thrown during the payment method selection.

  • PaymentMethodsProps.UIComponentType property added: This property allows using a different UI component type as a selector for each payment method. UI components available are: ‘ToggleButton’ and ‘RadioButton’.

… and the following properties have been added extending from TitleProps interface:

  • PaymentMethodsProps.displayTitle property inherited: This property allows displaying the container title.

  • PaymentMethodsProps.slots.Title property inherited: This property allows customizing the container title.

Implemented an error handling mechanism for the PaymentMethods container based on the “Optimistic” UI updates with rollback pattern consisting on the following:

  • It provides a callback function onCartSyncError() to be used in the integration layer in case the merchant wanted to perform some actions like showing an error message etc.

  • It performs a rollback reverting to the previous valid payment method selected.

  • In case the callback is not implemented, a fallback will be used, which consists of displaying an inline alert message.

The ShippingMethods container configuration structure has been modified. A property has been removed from the ShippingMethodsProps interface:

  • ShippingMethodsProps.preSelectedMethod property removed: This was an obsolete and unused property without business logic behind.

… the following property has been renamed:

  • ShippingMethodsProps.onShippingMethodSelect property renamed to ShippingMethodsProps.onSelectionChange.

… the following properties have been added:

  • ShippingMethodsProps.onCartSyncError property added: This property allows performing some actions in case of an error is thrown during the shipping method selection.

  • ShippingMethodsProps.UIComponentType property added: This property allows using a different UI component type as a selector for each shipping method. The available UI components are: ToggleButton and RadioButton.

… and the following properties have been added extending from TitleProps interface:

  • ShippingMethodsProps.displayTitle property inherited: This property allows displaying the container title.

  • ShippingMethodsProps.slots.Title property inherited: This property allows customizing the container title.

Implemented an error handling mechanism for the ShippingMethods container based on the “Optimistic” UI updates with rollback pattern consisting on the following:

  • It provides a callback function onCartSyncError() to be used in the integration layer in case the merchant wanted to perform some actions like showing an error message etc.

  • It performs a rollback reverting to the previous valid shipping method selected.

  • In case the callback is not implemented, a fallback will be used, which consists of displaying an inline alert message.

The TermsAndConditions container is now visible for both the anonymous and authenticated checkout processes.

Checkout v1.3.0

A new TermsAndConditions container has been added.

Checkout v1.2.0

The PlaceOrder container configuration structure has been modified. A new property has been added to the PlaceOrderProps interface:

  • PlaceOrderProps.slots.Content property added: This property allows setting the container content based on the selected payment method. This solves the way how to set the container content dynamically based on the selected payment method, instead of having to modify the text of the container manipulating directly the DOM and detecting payment method selection by handling the PaymentMethods slot, which is not ideal for maintainability.

Checkout v1.1.0

The PaymentMethods container configuration structure has been modified. The PaymentMethodsProps interface has been changed and some properties have been deprecated and replaced:

  • PaymentMethodsProps.setOnChange property @deprecated: This property is deprecated and will be removed in future versions. It has been replaced by the following: PaymentMethodsProps.slots.Methods.<payment-method-code>.setOnChange.

  • PaymentMethodsProps.slots.Handlers property @deprecated: This property is deprecated and will be removed in future versions. It has been replaced by the following one: PaymentMethodsProps.slots.Methods.<payment-method-code>.render.

  • PaymentMethodsProps.slots.Methods property added: This property is an object that consists of a list of payment method codes that provide a set of configurations to customize each payment method individually.

    Configurations accepted by payment methods:

    • The displayLabel configuration hides the payment method label (for example, if you only want to display the icon).
    • The enabled configuration allows merchants to individually hide payment methods filtering them from the available payment methods list (for example, it is useful when a payment provider has enabled a payment method in the backend, which is configured with more than one payment option and you don’t want to display one of them).
    • The icon configuration specifies the name of the icon to be shown beside of the label. The icon name must exist within the list of available icons defined in the drop-ins SDK.
    • The setOnChange configuration sets the payment method automatically when it is selected. Only if a payment method is specifically set to false, the container will not automatically set the payment method to the cart when selected (for example, if a payment method needs to obtain more information during the place order action).
    • The render configuration is a handler used to render and configure the payment method.

Storefront Compatibility Package v4.8.7, v4.7.10

The Storefront Compatibility Package has been updated to include the following changes:

  • Historical Orders Fixes: Ensured stability in order flows by returning null for missing purchased products, avoiding exceptions in order history and recent orders.

Storefront Compatibility Package v4.8.6, v4.7.9

The Storefront Compatibility Package has been updated to include the following changes:

  • Fixed Cart API availability check: Resolved an issue where the Cart API incorrectly returned is_available: false for products that had sufficient inventory across Multiple Source Inventory (MSI) sources.
  • Added uid field to Customer Address GraphQL query: Exposed the uid field in the Customer Address GraphQL query to enable setting shipping and billing addresses in negotiable quotes.

Storefront Compatibility Package v4.8.5, v4.7.8

The Storefront Compatibility Package has been updated to include the following changes:

  • Miscellaneous bug fixes and enhancements related to cart item and order queries.

Storefront Compatibility Package v4.8.4, v4.7.6

The Storefront Compatibility Package has been updated to include the following changes:

  • Added the Merge Cart Preference field to the Store > Sales > Checkout > Shopping Cart configuration panel in the Admin. It controls cart merge behavior when a GraphQL mutation merges guest or logged-in customer carts.
  • Added the OrderTotal.grand_total_excl_tax field to the GraphQL order response to retrieve the grand total excluding tax.
  • Introduced a new error code REQUIRED_PARAMETER_MISSING to handle missing configurable product options during the add-to-cart process via GraphQL.
  • Added a new REST endpoint POST /V1/customers/:customerId/token to facilitate the social login feature through App Builder.
  • (v4.7.6 only) Fixed an issue where plugins for GiftCardAccountManagementInterface methods were not working for webhooks.

Storefront Compatibility Package v4.8.3

The Storefront Compatibility Package has been updated to include the following changes:

  • Added the exchangeExternalCustomerTokenmutation to facilitate social login feature through app builder.
  • Fixed issue where plugins for GiftCardAccountManagementInterface methods were not working for webhooks.
  • Fixed order search issue for guest shoppers in EDS.

Storefront Compatibility Package v4.8.2

The Storefront Compatibility Package has been updated to include the following changes:

  • Added the customerSegments, customerGroup query.
  • Exposed customer segment, customer group, cart rule related encoded information with customer and cart Query.

Storefront Compatibility Package v4.8.1

The Storefront Compatibility Package has been updated to include the following changes:

  • Fixed issue where tax amounts were not updated when gift wrapping was removed from the cart using GraphQL.

Storefront Compatibility Package v4.8.0

The Storefront Compatibility Package has been updated to include the following changes:

  • Added the clearWishlist mutation.
  • Added enhanced support gift options to the cart, orders, and products queries.
  • Miscellaneous bug fixes and enhancements.

Storefront Compatibility Package v4.7.7

The Storefront Compatibility Package has been updated to include the following changes:

  • Miscellaneous bug fixes and enhancements.

Storefront Compatibility Package v4.7.5

The Storefront Compatibility Package has been updated to include the following changes:

  • Added the exchangeExternalCustomerTokenmutation to facilitate social login feature through app builder.

Storefront Compatibility Package v4.7.4

The Storefront Compatibility Package has been updated to include the following changes:

  • Added the customerSegments, and customerGroup queries.
  • Exposed customer segment, customer group, cart rule related encoded information with customer and cart queries.
  • Miscellaneous bug fixes and enhancements have been added for gift wrapping and related features.

Storefront Compatibility Package v4.7.3

The Storefront Compatibility Package has been updated to include the following changes:

  • Removed exposure of customer group, customer segment, and cart price rule information through GraphQL.
  • Fixed an Internal Server Error that occurred when selecting the second shipping method with a US address during checkout.

Storefront Compatibility Package v4.7.2

The Storefront Compatibility Package has been updated to include the following changes:

  • Resolved a GraphQL issue where the quantity field in ProductInterface was not returning the saleable quantity.
  • Fixed an issue where customer segment-based cart price rules didn’t apply immediately.

Storefront Compatibility Package v4.7.1

The Storefront Compatibility Package has been updated to include the following changes:

  • Added the clearWishlist mutation.
  • Added the customerGroup query.
  • Added enhanced support gift options to the cart, orders, and products queries.
  • Added fields to the storeConfig query to support checkout options, customer groups, catalog rules, and cart rules.
  • Miscellaneous bugfixes and enhancements.

Order v1.3.0

The Order drop-in has been updated to include the following changes:

  • Fixed cancelled product display: Corrected the CartSummaryItem user experience to properly handle cancelled products by removing the strikethrough text and “out of stock” message that were incorrectly appearing for cancelled orders.
  • Fixed missing Channel Field: Added the channel attribute to all Adobe Experience Platform (AEP) events in the Order drop-in, ensuring complete event data collection as part of the global storefront context.
  • Fixed reCAPTCHA v3 integration: Resolved issues where reCAPTCHA v3 was preventing order placement and blocking user authentication functions (login, account creation, password reset), with solution provided to the ACS team.
  • Fixed cancelled product messaging: Resolved an issue where cancelled products incorrectly displayed strikethrough text and “out of stock” messages in the CartSummaryItem component, ensuring proper visual representation of cancelled order items.

Order v1.2.0

  • Added a new setPaymentMethodAndPlaceOrderMutation API for the Order Drop-in, enabling atomic payment and order placement` to better support providers like Adyen.
  • Added missing listImage slot props to the ReturnsList container.
  • You can now customize the translation for the order gift wrapping title on the checkout success page, allowing for proper localization.
  • Fixed an issue where the CartSummaryItemImage slot was not triggered on the return items page, ensuring custom images now display correctly during returns.

Personalization v1.0.1

The Personalization drop-in has been updated to include the following changes:

  • Fixed personalization data update: Resolved an issue where personalization data was not being updated after an order was placed, ensuring accurate customer segmentation and targeting post-purchase.

Personalization v1.0.0

Initial release of the personalization drop-in component, including accompanying developer and merchant documentation.

This component provides a set of tools and containers designed to display content conditionally, based on Adobe Commerce customer groups, segments, and cart price rules.

Product details page v1.3.0

The Product Details Page drop-in has been updated to include the following changes:

  • Fixed AEM Assets image zoom: Resolved broken zoom functionality when AEM Assets integration was enabled due to nested wrapper elements interfering with transform application
  • Fixed missing price handling: Prevented page crashes when products lack pricing information by properly handling null price objects
  • Added video support: Enhanced Product Gallery with video media support and new Storybook stories using consistent 16:9 MP4 samples
  • Fixed carousel loopable config: Resolved display issues with loopable: true configuration causing incorrect slide positioning during initial render

Product details page v1.2.0

  • You can now fully replace rendered images in the PDP drop-in component, enabling integration with custom asset sources like AEM Assets.
  • Added support for updating product options and quantities directly from the cart, streamlining the editing process for configurable products.
  • Resolved an issue where overriding the Attributes slot did not render custom content as expected.
  • Fixed a CSS issue where the image zoom close icon appeared too large on product detail pages.
  • Fixed an issue where the close button was not being displayed correctly.

Product Discovery v2.0.0

Major Version Release: Product Discovery has been completely redesigned with a new event-driven architecture and breaking changes that require implementation updates.

  • Event-driven architecture: Complete redesign featuring a modern event-driven architecture that provides enhanced performance and improved container interfaces for better responsiveness and maintainability.
  • Breaking changes: This major version includes breaking changes to the API structure, event handling, and component interfaces. Existing implementations will need to be updated to use the new architecture and updated container interfaces.
  • Enhanced documentation: Updated documentation with comprehensive new diagrams including PopOver and Search flow diagrams (SVG format) to better illustrate the new architecture and user interaction patterns.
  • Updated containers: Facets.
  • New containers: SortBy, Pagination, SearchResults.

Product Discovery v1.1.0

The Product Discovery drop-in has been updated to include the following changes:

  • Added custom transformer support: Introduced custom transformer functionality for ProductSearchResult in the API configuration, allowing developers to merge default and custom transformations with comprehensive unit test coverage for validation.
  • Enhanced Facets with new slots: Added FacetBucketLabel slot to the Facets component with improved context handling and updated the label display to include count information for better user experience.
  • Added data model extensibility: Enhanced the Product Discovery drop-in with improved data model extensibility, including custom transformer support for the transformProduct function, updated ProductActions component integration, and comprehensive unit test coverage.
  • Fixed missing Channel Field: Added the channel attribute to all Adobe Experience Platform (AEP) events including searchResponseReceived, ensuring complete event data collection as part of the global storefront context with updated unit test coverage.
  • Fixed invalid currency handling: Resolved currency-related issues and updated package versions to use the latest released library versions for improved stability.

Product Discovery v1.1.0

Initial release of the Product Discovery drop-in component, including accompanying developer documentation.

This component provides a variety of fully-customizable controls to showcase your products (according to your brand’s aesthetics) and build interactive experiences that engage customers.

Product Recommendations v1.1.0

The Product Recommendations drop-in has been updated to include the following changes:

  • Added recommendation API events: Introduced new events recs-api-request-sent and recs-api-response-received to provide better tracking and monitoring of recommendation API interactions.
  • Added recommendation add-to-cart event: Implemented recs-add-to-cart-click event that triggers when shoppers click the “Add to cart” button on simple products within recommendation containers, including productId and unitId in the event payload.
  • Enhanced screen reader accessibility: Improved Product Recommendations accessibility by adding <section> tags with aria-label="product recommendations" for carousel boundaries and role="group" with numbered aria-label attributes (e.g., “product 1 of 8”) for individual product slides, enabling better navigation for screen reader users.
  • Added GraphQL extensibility: Enhanced the Recommendations drop-in with extensible GraphQL fragments and data module transformers, enabling developers to customize and extend API responses according to their specific requirements.
  • Fixed recommendation click tracking: Resolved an issue where the rec-click event was not triggering when clicking products in recommendation units.

Product Recommendations v1.0.0

Initial release of the Product Recommendations drop-in component, including accompanying developer and merchant documentation.

User account v1.0.9

The User Account drop-in has been updated to include the following changes:

  • Fixed empty order list: Resolved an issue where the entire order list would appear empty when a customer had an order containing out-of-stock products, even if other valid orders existed.
  • Added grandTotalExclTax field support: Added support for the grandTotalExclTax field and updated the Order confirmation to use it instead of computing order?.grandTotal?.value - order?.totalTax?.value in the frontend. When the order total is FREE, the “Total excluding taxes” line is now omitted, preventing negative excluding-tax totals on zero-total orders.

User account v1.0.7

Fix for empty radio button

We fixed an issue that was causing an empty radio button in the checkout shipping section when customers had no saved addresses. Now, the radio button only displays if the customer is logged in and has at least one saved address, ensuring a cleaner and more intuitive checkout experience.

User authentication v2.1.0

The User Authentication drop-in has been updated to include the following changes:

  • Fixed missing Channel Field: Added the channel attribute to all Adobe Experience Platform (AEP) events as part of the global storefront context, ensuring complete event data collection and proper event categorization.
  • Fixed invalid email validation: Prevented GraphQL requests from being sent when an invalid email is entered in the Reset Password form, eliminating unnecessary API calls and error responses for malformed email addresses.

User authentication v2.0.3

Callback for successful password reset

You can now customize the user experience after a successful password reset request. A new onSuccessCallback method is available in the UpdatePassword container, allowing developers to override the default notification banner. Use this callback to redirect users, display a custom modal, or implement any other custom behavior upon a successful password reset request.

Wishlist v2.0.0

The Wishlist drop-in has been updated to include the following changes:

  • Fixed accessibility for Wishlist toggle: Added proper aria-label attributes to WishlistToggle button elements in Product Discovery, resolving critical AXE accessibility issues related to discernible button text and accessible names.
  • Fixed Wishlist alert messaging: Corrected WishlistAlert to display appropriate success or error messages based on the actual operation status when adding or removing items, instead of always showing success messages even when operations failed.
  • Added image slots to Wishlist: Implemented image slots throughout the Wishlist drop-in to allow customization and replacement of default image rendering, providing extensibility for all images within the component.
  • Enhanced Wishlist functionality: Released an improved iteration of the Wishlist drop-in with better support for Adobe Commerce Cloud Service (ACCS) and enhanced move-to-cart flows for complex products, addressing feature gaps from the initial June release.

Wishlist v1.0.0

Initial release of the Wishlist drop-in component, including accompanying developer documentation.