2025

Commerce Layer changelog for software updates, new features, and general improvements.

Shared secret for external shipping costs, rules outcomes on line items, and more ⚠️

Core API

June 18, 2025

To avoid issues when a shipping method is shared across markets, the shared secret you need to use to sign the external shipping costs request payload is now exposed at the shipping method level. Review your integration because this could be a potential breaking change. ⚠️ On top of that, in the past few days we released the following minor (but still relevant) updates:

  • Line items — if you're an Enterprise customer leveraging our Rules Engine you can now check the rules that generated a discount on a specific line item also at the line item level by inspecting the rule_outcomes object.

  • Payment methods — we no longer support the deprecated credit_card payment source type. Credit card payments are managed as usual via the related gateway payment source type. This could be a potential breaking change. ⚠️

  • Adyen payments — we now provide the _balance trigger that you can leverage to fetch the associated (proprietary — e.g. Givex) gift card balance.

New generic app kind, asynchronous captures, and more

Dashboard

June 11, 2025

We've introduced a new kind of application that you can choose when creating a custom app. Generic apps can have Full access (read and write) or Read-only permissions on all the Commerce Layer Core resources, thus enabling you to create the most flexible custom Dashboard applications tailored to your needs. On top of that, we've released a relevant chunk of updates and added some interesting new functionalities to our Dashboard, including:

  • Orders — we've enabled asynchronous payment capture management.

  • Customers — now you can remove customer payment sources from a customer's wallet.

  • Returns — we've enabled returns management also for orders partially delivered. You can now also view the list of refunded returns.

  • SKU lists — now you can select from the UI multiple items for SKU list manually managed.

Sign up or log in to see for yourself and feel free to share your feedback!

New roles and test mode access for team members

Dashboard

May 28, 2025

Leveraging the new membership profiles feature recently released for the Provisioning API, we’ve released two important updates regarding our Dashboard:

  • Roles — you can now associate a set of applications directly at the role level, eliminating the need to configure them individually for each user. This simplifies access management and helps reduce configuration errors.

  • Test mode access — admins can now grant test mode access to Dashboard applications, either at the individual user level or at the role level. This allows team members to explore and get familiar with how the applications work, without affecting production data.

Custom API roles are no longer assigned directly to users. They are now assigned as part of the role when linking a web application to a team member.

Sign up or log in to see for yourself and feel free to share your feedback!

New membership profiles endpoint 🌟

Provisioning API

May 22, 2025

We just added a new entry to the roster of our Provisioning API endpoints. You can now leverage membership profiles to define a group of application memberships to be associated with a membership so that each member of the profile is allowed to see and/or manage the related subset of Dashboard apps. This makes it super easy to reuse a set of application memberships and assign the same profile to multiple.

On top of that:

  • We've also added the option — both at the single membership and at the membership profile level — to enable specific members to try the Dashboard apps with test data by accessing the test environment based on their permissions.

Order refresh optimizations, and more ⚠️

Core API

May 20, 2025

We focused (with excellent results) on optimizing the whole order refresh process (including shipments rebuild and limiting the number of tax updates), thus making our commerce API even faster. On top of that, in the past few days we released the following minor (but still relevant) updates:

  • Gift cards— now if you decide not to distribute the discount related to gift cards used to pay for an order on all the taxable items and the price list associated with the market where you're placing the order does not include taxes, the discount will be applied to the whole order amount plus taxes. This could be a potential breaking change. ⚠️

  • Adjustments — now negative adjustment amounts are applied before any kind of promotion and/or gift card used to pay for the associated order. This could be a potential breaking change. ⚠️

  • Webhooks — we added three new events to our real-time webhooks list so that you can get notified about when a return is refunded and cancelled, and when a successful transaction is refused by the payment gateway.

  • External tax calculators — we added the customer associated with the order as a relationship included within the request body we send to your external tax calculator URL.

  • Stripe gateways — now the force payment option is the default behavior (set the related attribute to false if you want to disable it). This could be a potential breaking change. ⚠️

New Metrics plugin 🌟

CLI

May 19, 2025

v1.0.1 of our Metrics CLI plugin is out! Now you can use Commerce Layer Metrics API (performing all the available queries, using filters, and more) directly from the command line. To learn more about the plugin commands and options, please refer to the open-source GitHub repo README.

Data queries, search, and stats available for order and cart errors 🌟

Metrics API

March 31, 2025

We've exposed a new field on orders and carts that enables you to perform the available breakdown, date breakdown, stats, and search queries and check for any related error codes, messages, and more. Check the Use cases section for some examples and the public Postman collection to see it in action!

On top of that:

  • We've also enabled full-text search on return's aggregated details (previously available for orders and carts only) so that you can now perform a full-text search using the dedicated query operator.

Introducing our new Rules Engine 🚀

Rules Engine

March 19, 2025

Commerce Layer has always had built-in promotions that cover a large set of the most common use cases. If your promotional strategy requires a more flexible, custom, tailor-made logic, now you can leverage our new Rules Engine, one of the most powerful promotions engines in the market today. The Commerce Layer Rules Engine is a powerful tool designed to define and manage rules, from simple to complex, multi-conditional logic. It evaluates specific payloads to ensure conditions are met, triggering corresponding actions. It is currently integrated with our Core API via flex promotions and/or price lists to let you create almost any kind or order and price rules.

Check the documentation, browse the use cases examples, and try it out! Any feedback is appreciated.

You can also read more about it on our blog.

The Rules Engine integration is still in beta and available only to our enterprise customers. If you're one of them and want to test and leverage its functionalities reach out to us and request to be part of the beta program.

Old Admin Area and Auth endpoints removal 🚫⚠️

Core API

March 18, 2025

In the spirit of good spring cleaning 🌱 🌼 as previously announced well in advance, we kindly remind you that both the old Amin Area and the old authentication endpoints are officially sunsetted and no longer available, being replaced by:

  • Dashboard — The new Dashboard includes a wide set of dedicated back-office apps that cover all the functionalities of the old one. Plus, it comes with an improved user experience and a lot of new features.

  • Authentication — We've migrated the whole authentication process to our new Authentication API, as detailed in the related section of the documentation. You should already have updated your integration (by the way, the migration is super easy and can be achieved in very few steps).

New triggers for taggable resources, and more

Core API

March 17, 2025

Now you can change the list of the tags currently associated with a resource by adding or removing tags without the need to specify the new tags list as a whole. To do that, you can patch taggable resources and send the new _add_tags and/or _remove_tags trigger attributes by passing the comma-separated list of tags you want to add/remove. On top of that, in the past few days we released the following minor (but still relevant) updates to our APIs:

  • Parcels — we change the type of the tracking_details attribute from object to array. This could be a potential breaking change. ⚠️

  • Order subscriptions — we added the new running status to track the time-window when the related order copy process is ongoing.

  • Stripe gateways — we added the option to force the payment source related to the associated order event and ignore any other created payment sources (if any), upon receiving a successful event from Stripe.

Default shipping and payment methods

Core API

March 6, 2025

You can now set a default shipping method and a default payment method for one or more markets. This way, the default methods will be used for all the market's orders not already associated with a payment method and all the shipments that belong to the market's orders and that are not already associated with a shipping method. If an existing association of an order with a payment method or a shipment with a shipping method is removed, the association with the default ones will be automatically set. Remember that to be eligible for being set as default a payment method must not be already associated with any market and a shipping method must not be already associated with any market, stock location, shipping category, and shipping zone.

New pickups endpoint 🌟

Core API

February 25, 2025

We've just added a new entry to the roster of our commerce API endpoints. You can leverage the pickups API to schedule a pickup from a carrier at your customer's residence or place of business and define a dedicated pickup time window. At the moment EasyPost pickups are available (more to come), thanks to our out-of-the-box integration with EasyPost, a shipping operations suite that features 100+ industry-leading carriers.

New sales channels abilities for tags, and more

Core API

February 18, 2025

Now sales channels can read the tags associated with a specific subset of taggable resources (at the moment: bundles, SKUs, SKU options, and all promotion types). On top of that, in the past few days we released the following minor (but still relevant) updates to our APIs:

  • Orders — we've enhanced the _fulfill trigger attribute operation. Now it can be sent not only if the associated shipments are cancelled, shipped, or delivered, but also if the order is just approved.

  • Stock line items — we now expose the name and image URL of the associated line items.

New navigation menu and Apps grouping

Dashboard

February 17, 2025

We've released a relevant chunk of updates regarding our Dashboard. As you may have noticed, the biggest one involves the UI, specifically the navigation menu. Now the old Apps section has been replaced by multiple dropdowns that group the apps by area/functionality:

  • Fulfillment — including Orders, Shipments, Customers, Returns, Stock transfers, and Subscriptions apps.

  • Products — including SKUs, SKU lists, Prices, and Inventory apps.

  • Marketing — including Promotions, Bundles, and Gift cards apps.

  • Data — including Imports, Exports, and Tags apps.

  • Developers — including the Webhooks app alongside the API credentials, Resources, and Custom apps sections.

This grouping is replicated also in the application membership section where you can choose to which app a member have access.

Sign up or log in to see for yourself and feel free to share your feedback!

Updates to exports, and more ⚠️

Core API

January 29, 2025

Resource attributes computed dynamically are now exported with their original name, instead of using the delegated method’s one (e.g. item_type instead of item_resource_type). This could introduce a potential breaking change in case you're relying on a logic dependent on the old (wrong) exported attribute names. Speaking about exports, we also made them versionable. On top of that, in the past few days we released the following minor (but still relevant) updates to our APIs:

  • Shipping methods — we added the tax_code attribute that you can leverage to define a custom tax code for your shipment tax calculation (currently supported by Avalara only).

  • Stripe payments — we added the on_behalf_of and transfer_group attributes, which are also available in the associated order payment_source_details.

Out-of-the-box integrations with Stripe Tax and Vertex, and more 🚀

Core API

January 21, 2025

Stripe Tax and Vertex have just come in addition to the list of tax calculators we support out-of-the-box. You can now leverage the new Stripe Tax accounts and Vertex accounts endpoints to manage tax calculations for your markets seamlessly.

As a first release, the two new tax calculators are available via API only. The Dashboard Settings section will be updated soon — stay tuned!

On top of that, we released the following minor (but still relevant) tax-related updates to our APIs:

  • Events — we exposed the events relationships on all the types of tax calculators.

  • Customers — we added a new tax_exemption_code attribute to identify the reason for a specific customer's tax exemption.

Notifications and new optional headers for external resources, and more

Core API

Januray 15, 2025

We've extended notifications to all the external resources (with the only exception of external order validation). Now, as a result of a successful response, you can ensure that external resources automatically add notifications to the resource they are called for, specifically:

Still talking about external resources, we also added the option to pass two Trace Context headers so that you can easily trace the calls to your external endpoints on your APM. On top of that, we released the following minor (but still relevant) updates to our APIs:

  • Shipping methods — to enable the above, we added the relationship with the associated notifications.

  • Prices — we added a new timestamp that traces the time at which the resource was processed by the API.

  • Shipments — now we try to fulfill the associated order not only anytime a shipment is shipped but also when a shipment is cancelled (useful especially if the shipment cancellation is triggered manually).

Last updated

Was this helpful?