Release highlights of 2025

Get a quick overview of the Composable Commerce release highlights in 2025.

Ask about this Page
Copy for LLM
View as Markdown

After completing this page, you should be able to:

  • Describe the key changes and updates that have been made to Composable Commerce in 2025.

A lot of things can happen in a year, and that certainly is true in the world of commercetools. This self-learning module is designed to remind you about the most significant releases that took place in 2025, so that you are up-to-date and ready to take your commercetools Composable Commerce Functional Architect Renewal Exam.

Please note that completing this module is not a mandatory requirement to take the Certification Renewal exam. If you’ve been following the Composable Commerce release notes over the year, you’re likely already aware of many of these changes. We suggest that you then review the listed release highlights below, consume the information that may be necessary for you, and once done, feel free to log in and complete your exam. If you haven't been following the release notes, or need a refresher about the changes, then this module has everything you need to bring you right up to date!
A full list of 2025 release notes for Composable Commerce can of course be found in the Release Notes section of our documentation.

Prerequisites

As we progress through the module, you may want to try out playing with some of the new features. Creating a new project populated with sample data is a great way to start experimenting. You can find information on starting a new project with B2C sample data here.

Prepare an API client and create a bearer token

Not all features covered in this refresher module are accessible via the Merchant Center and can only be demonstrated through the API. To keep those examples as universal as possible, we will use cURL to issue API requests. If you are not familiar with using cURL, we recommend that you take a look at our Accessing with cURL Cheatsheet.
All cURL examples are of course easily adaptable for use in API testing tools such as Postman, Bruno, etc. At times, cURL responses can be difficult to read due to lots of returned results, so we suggest that you pipe them through jq as mentioned here in the cURL Cheatsheet.
Follow the instructions provided here to create an API client for your project, and use cURL to generate a bearer token that authorizes your API requests.
To make sure that you have set up everything correctly, try executing the following cURL command to query categories available in your Project:
curl --get https://api.{region}.commercetools.com/{projectKey}/categories  \
  --header 'Authorization: Bearer {bearerToken}' | jq

Ready? Let’s get started!

Release highlights

Product Catalog

Customers

  • Multiple Customer Group assignments are now possible. With this highly anticipated enhancement, users can now assign each customer to up to 500 Customer Groups.
  • Customer Carts are now preserved, even if the Customer is deleted. With this change in mind, we strongly recommend to make sure GDPR is adhered to at all times.
  • Email verification and password reset flows are now more secure thanks to significant improvements to token management. These include reducing password reset token validity to 24 hours (until now it was 24 days), adding functionality to automatically invalidate older tokens when a new one is created or successfully redeemed, and introducing new API fields to support these more secure processes.

Pricing and Discounts

  • Best deal discounts can now be configured to allow the system to choose whether a Product discount or Cart Discounts should be applied depending on which one of them offers the customer a better discount. Previously the system would first apply the Product Discount followed by Cart Discounts. A new discountTypeCombination field has been added to Carts and Orders to allow users to check the discount behavior. This behavior can be configured on the Project level using either the HTTP API or the Merchant Center.
  • Speaking of best deals, Discount Groups have been introduced to Cart Discounts. The primary goal of a Discount Group is to ensure that when multiple Cart Discounts could apply to a customer's cart, only the one that offers the highest savings (the "best deal") to the customer is actually applied. We will cover Discount Groups in greater detail later in this module.
  • Buy and Get Cart Discounts became generally available allowing users to create promotions where customers receive a benefit (like a free item or a discount on certain items) when they purchase a specific quantity or combination of other items. It's often used for promotions like "Buy X, Get Y free" or "Buy X, Get Y at a discounted rate". On top of that users can now control how percentage-based discounts are applied in Buy and Get promotions — either to each eligible item individually or distributed across all items. This enhancement gives them greater flexibility and ensures that discounts align with their business goals.

Carts, Orders, and Shipping Methods

  • The new Recurring Orders feature allows users to schedule automated, flexible repeat purchases with custom intervals and pricing, and enables them to combine subscriptions with one-time purchases in a single, seamless checkout experience. We will visit this topic in greater detail later in this module.
  • We introduced Cart merge endpoints for customers who authenticate using external OAuth providers, ensuring anonymous shoppers retain their Cart contents after signing in, which previously was only supported via the Composable Commerce OAuth service. This functionality was further improved by aligning the behavior of the manual Merge Cart endpoints, so that if no active Customer Cart exists, the anonymous Cart is seamlessly adopted as the new active Cart instead of returning an error.
  • Configurable price rounding modes for Carts allows users to configure the price rounding mode (HalfEven, HalfDown, HalfUp) for individual Carts using the new priceRoundingMode field. This can be set on an individual Cart basis or as a project-wide setting.
  • Users can now set minimum and maximum quantity limits on a Line Item within a Cart by defining them on the InventoryEntryDraft or using the "Set Inventory Limits" update action. This feature helps merchants enforce minimum order amounts, manage limited stock availability, and prevent denial-of-inventory scenarios by controlling the quantity a customer can add to a Cart.

Merchant Center and other updates