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
-
Product Attributes allow users to configure and store attribute values that are identical for all product variants in one central place, significantly reducing the duplication of data across variants. This improvement helps to reduce the size of API response payloads, boosting overall data storage efficiency and enhancing performance.
-
The Product List Page in the Merchant Center has seen its share of updates as well. Not only can users find Products using aforementioned Product Attributes, they can now also find Products that do not belong to any Product Selection. Additionally, users can now reduce the size of the Modified Products Page allowing for a significant performance boost, especially when dealing with larger and more complex products.
-
Product Tailoring has been enhanced to display fallback values for all attribute types which should make managing store-specific values significantly easier.
-
The Product Type Export new functionality allows users to easily export Product Types directly from the Merchant Center interface. This is a workflow improvement that enables users to back up, archive, or migrate Product Types to external systems without needing to rely on the previously used, now deprecated, ImpEx tool.
-
Product Search was significantly enhanced with new capabilities: support for product variant selections, multiple sort and filter conditions, and statistical facets for advanced analytics. It also introduced filters for discounted prices and fuzzy search to improve relevance and flexibility. Additionally, Product Search is now available in the GraphQL API. These significant advancements are crucial steps in enhancing the power and adaptability of Product Search.
-
Product Projections API now supports attribute filtering. Now, users can specify which attributes should be included in the API response. This can significantly reduce the response size, and improve response times for user applications.
-
Product Projection Search now lets users choose to have only matching variants be returned in GraphQL Product Projection Search query responses.
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
discountTypeCombinationfield 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
priceRoundingModefield. 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
InventoryEntryDraftor 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
-
Team permissions now allow for the specification of which store-bound Product Selections can be viewed or managed by team members.
-
We've launched Identity, an authentication service designed to simplify user access across various commercetools services. This single account solution for our business tools and other offerings ensures a consistent, secure experience, paving the way for more integrated future experiences.
-
We have introduced a series of enhancements focused on improving data import and export flexibility. Users gained the ability to export data using customizable CSV templates, import custom objects from JSON files, and export custom objects directly from the Merchant Center. Further improvements allowed exporting customers and products using query predicates, filling all rows in CSV files for consistency, and configuring CSV separators for both export and import processes—including different column and decimal separators. Additionally, the platform added options to optimize CSV exports for Microsoft Excel and expanded order exports to include multiple shipping methods, significantly streamlining data handling and compatibility across tools and workflows.