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

November 10, 2022

Core API

New cleanup API

We’ve introduced a new API endpoint that makes it much more straightforward to clean out old data and maintain a clean store. Cleanups enable you to remove entire sets of resources (e.g. the ones that you're not using anymore) and their relationships based on certain criteria (filters). The list includes SKUs, prices, stock items, promotions, gift cards, and more. For performance reasons and in order to preserve data integrity the process is subject to some limits and constraints.

November 7, 2022

Core API

Disabling markets and adding dry data mode to exports

It’s now possible to disable/enable market resources. If there are markets that are no longer in use, you can disable them (and re-enable them for any reason). This offers more flexibility for clients on our Free and Growth plans, as disabled markets do not count against the market limit. If you've reached your plan's limit in terms of the number of markets, make sure to disable one of the active markets before enabling a new one. We also aggregated the attributes you can skip when performing an export by introducing the dry data mode. Now you just need to send the dry_data attribute when creating the export to automatically skip redundant attributes.

November 3, 2022

My Account components and React 18 support in v4.0.0

React components v4.0.0 now support React 18. With this major release, we also added to our set of components a subset you can leverage to build a dedicated account area for registered users — here you can find some example pages.
To boot, be advised that we introduced potential breaking changes
by removing some old components (ItemContainer, VariantContainer, VariantSelector, QuantitySelector, SkuOptionsContainer, SkuOption, and SkuOptionInput) — please refer to this folder on the public repository for the updated list of available components.

October 27, 2022

Introducing our new Metrics API

We’ve released our Metrics API, which now enables Commerce Layer clients to extract, organize and analyze any kind of data from their organization’s order, return, or cart history. It’s possible to:
Queries can be used to get instant insight based on calculation parameters and object attributes, such as calculating the return rate of an SKU within a specific market or within a certain date range. The Metrics API can also power any kind of customized reporting system or data visualization dashboard, making it much simpler to create reporting by pre-calculating the data before sending it.
As a brand new API, the Metrics API is available to all Commerce Layer customers as part of an early access beta. Once the beta period has ended, the Metrics API will only be available to customers on our Enterprise plan.
To learn more, read our blog here.

October 24, 2022


New Microstore plugin

It’s now possible to configure Microstore URLs from a single command using our Microstore CLI plugin. This makes Microstore configuration more agile and simple by automating it instead of manually stringing together the URL. To use the plugin, you can install it by running commercelayer plugins:install microstore. To learn more about the plugin commands and options, please refer to the open-source GitHub repo README.

September 22, 2022

Core API

SKU list permissions changes

We’ve changed the ability to manage SKU lists from the sales channels (which now have read permission only) to customers. Now, you can optionally associate an SKU list with a customer. To create and update an SKU list, you need to authenticate using the password flow.

September 20, 2022

Core API

New exports API and improvement to imports

Now you can export your organization's resources directly via API. The exported data can be saved as JSON (default) or CSV data. You can specify for each resource the relationships you want to include (among the supported ones), apply some filters to narrow the exported data, and decide to eventually skip redundant attributes. The output is stored on an external service you can access via the export attachment_url attribute, available upon export completion.
Some similar changes have been introduced to our imports functionality: now you can specify inputs data as a JSON (default) or CSV file, which is stored on an external service accessible via the import attachment_url attribute as well. Imports of multi-nested resources are also now supported (e.g. line_items.line_item_options for orders).
All of the output data you get from exports is ready to be used as inputs for the imports API (this is particularly convenient when migrating test data to your live environment).

September 15, 2022

Switch to SPA and package manager replacement in v2.0.0

Starting from v2.0.0 the hosted checkout won't require Node.js hosting anymore, since now it is a single-page application (SPA). On top of that, we changed the package manager from yarn to pnpm. Instead of building the project, now it's required to export it using the command pnpm run export. You can run it in a local environment using pnpm run serve.
We also set up the whole test suite to run on CircleCI so as to give us a boost of confidence for each new release.

August 25, 2022

Adyen integration improvements in v1.10.0

Hosted checkout v1.10.0 now supports new payment methods (Klarna and PayPal, in addition to the already available credit card one) on the Adyen gateway. You can manage them by country, on your Adyen account where you can directly sort the available payment methods. The Adyen Drop-in library will then replicate the sorting on our hosted checkout. Please note that setting up third-party access on your PayPal account is mandatory for the correct operation of the integration.
v1.10.0 also comes with an improved user experience regarding the Payment step of the checkout flow: now if there is only one payment method available in the market it will be automatically selected.

August 24, 2022

Additional payment methods available via Adyen in v3.15.0

React components v3.15.0 now supports Klarna and PayPal payments via the Adyen gateway (in addition to the credit card one, which was already available).

August 18, 2022

Introducing our static ecommerce demo store

We’ve released our Demo Store as an open-source project. This Demo Store is a completely static ecommerce solution (with SSR capability) powered by Commerce Layer. The store is full-featured and fully operational, with no third-party services required (e.g. everything related to content is stored as JSON files). You can easily tailor your own with different levels of customization.
The Demo Store project consists of two repositories that you can leverage to build your own store:
  • demo-store — This is a GitHub template. If you're happy with the features and the look and feel of the Commerce Layer Demo Store you can just use this template without having to care about the whole source code. You'll be free to focus on your data and you'll get free updates with almost no risk.
  • demo-store-core — This repository contains the source code. If you need to fully customize your store (behavior, UI, UX, etc.) you just have to fork this repo and create your own (this is also the way to contribute).
You can deploy the Demo Store wherever you prefer, both using SSG and SSR.
To learn more, read our blog here.

August 11, 2022

Introducing Microstores

We’ve released our Microstore app for all Commerce Layer accounts, which enables you to configure self-contained stores directly through a URL. To do that through the hosted version of the app:
  • Determine how long you want the microstore to stay up by setting the expiry length of the sales channel you wish to use.
  • Get an access token for that sales channel putting in scope the market you wish to sell from.
  • Get the ID of the SKU list that contains the products you wish to sell.
Use them to compose the microstore URL like so:
It’s also possible to fork your own version of the app, as explained in the documentation of the GitHub open-source repo.
To learn more, read our blog here.

August 10, 2022

Introducing our Cart application

The Cart app is an open-source, React-based application that provides you with a production-ready shopping cart powered by Commerce Layer APIs. You can fork the repository and deploy it to any hosting service or use it as a reference application to build your own. A hosted version is also available and it's automatically enabled for all Commerce Layer accounts — you just need an order ID and a valid sales channel access token to compose the related cart URL with the following format:
The cart can also be embedded in your application or website by loading the hosted URL in an inline frame.

July 21, 2022

Core API

New default inventory model strategy

We introduced a new default inventory model strategy called no split. This strategy considers just one stock location (the primary one or the first in scope) when checking the inventory for availability and always creates just one shipment, no matter if the SKUs in the order belong to different shipping categories. The aim is to simplify the default rebuild shipments process and enable better performance. If this strategy is too basic for your business model, you can still pick another that better suits your needs: split shipments, ship from primary, ship from first available (or primary).
It is also now possible to enable/disable shipping methods and payment methods directly via API. You just need to pass the _enable or _disable trigger attributes in the payload when patching the resources.

July 18, 2022


Custom lifetime option for access tokens

Now you can specify a custom lifetime for the access tokens you get when authenticating your Commerce Layer applications (sales channels, integrations, webapps). This can be done at the app level on the admin dashboard when you create/update each application. The token lifetime value must be expressed in seconds and fall within a minimum of 2 hours and a maximum of 1 year.

June 23, 2022

Core API

Introduced price volume and shipping weight tiers

Commerce Layer now supports tiered pricing strategies based on volume. These tiers can be used to enable specialized pricing when customers order in quantity, like offering a unit discount when a customer orders 10 of an SKU instead of 1.
We’ve introduced two new resources — price tiers and price volume tiers — enabling you to create up to 5 tiers for each price. The price of the associated SKU will then be set by the tier the total quantity of items falls within. Price tiers can be imported together with their related prices.
The shipping methods availability management has been improved:
  • The relationships with the shipping zone and the shipping category has been relaxed (they're now both optional when creating a shipping method).
  • A new optional relationship with a stock location has been added so that the shipping method will only be available if the items are shipped from that specific stock location.
  • A new optional weight-based constraint on the shipping method availability has been added. Now you can define a minimum and/or a maximum weight threshold and make the shipping method available only if the total weight of the items in the shipment falls within the threshold.
The shipping methods cost management has also been updated. Now you can select one of two schemes:
  • Flat — the shipping method has a fixed cost.
  • Weight-tiered — the shipping method's price is tiered based on the total weight of the items in the shipment. Two new resources have been introduced (shipping method tiers and shipping weight tiers) so that you can create up to 5 price tiers for each shipping method.
A new events endpoint has been exposed (which can be used to improve webhooks management and monitoring). Events can be included when fetching the resources that support them in order to inspect each recorded action.

June 20, 2022

Core API

Introduced idempotency for payments

Order status changes are now idempotent. This means order and payment statuses stay consistent with multiple updates, which can limit the effect of transaction errors. For example, it's now possible to place or cancel an order more than once without worrying about duplicated transactions (or other unintended effects). Because of this, order status-related actions such as webhook events and stock item updates are only executed once.
Adyen gateway authorizations via 3DS now generate just one transaction.

June 7, 2022

Core API

Improved bundle support for promotions

Free gift and fixed price promotions can now apply to bundles (as long as they share the same SKU list). Both can now combine with other promotion types (but cannot overlap with each other or with other promotions of the same type). Two new relationships have also been added to the order object (available_free_skus and available_free_bundles), which is useful when presenting the customer with a list of possible free gifts during checkout.

May 3, 2022 integration and error improvements in v1.7.0

Hosted checkout v1.7.0 now supports out-of-the-box (in addition to all other payment gateway integrations). A new error handling process for out-of-stock and no shipping zone errors is now available.

May 2, 2022

Updated stock transfer components in v3.11.1

React components v3.11.1 comes with valuable improvements regarding the stock transfer components. Now developers can customize stock transfers alongside line items in a rapid and efficient way.

April 20, 2022

Core API

New token info endpoint

A new OAuth endpoint has been exposed. You can now unpack the JWT token information by sending a GET request to oauth/tokeninfo. The response will contain some useful info such as the application type, the owner, and the associated roles, permissions, and scopes.

April 14, 2022

Core API

Avalara integration update (AvaTax)

AvaTax is a full-service engine for calculating transactional taxes, including sales, use, VAT, and many other tax types. If you're using Avalara as the tax calculator associated with one (or more) of your markets, you can now register tax computation on their systems (SalesInvoice). This is useful for tax returns in the US.

April 12, 2022

Klarna and integration in v3.10.0

React components v3.10.0 now supports Klarna and out-of-the-box (in addition to all the other payment gateway integrations).

April 4, 2022

Core API integration and updates to importable resources

Commerce Layer API now supports out-of-the-box (in addition to all the other payment gateway integrations). Bundles and SKU options have been added to the list of importable resources.

March 17, 2022

Improved flow in v1.5.0

Hosted checkout v1.5.0 features robust improvements on how the application state is managed, which translates into a speed boost and offers a way to hook on each user action. The checkout flow has also been streamlined by introducing auto-selection of the shipping method when the shipment only has a single shipping method available.

March 16, 2022

Core API

Stripe integration optimizations

In order to prevent errors in some edge cases where an order can be placed after the authorization was created by the Stripe webhook, a large set of optimizations has been implemented on our Stripe integration. Among them:
  • A control on order placement to check if the payment has been authorized has been introduced.
  • Previously created Stripe's payment sources are now nullified in case of order edit/refresh. The related authorizations are voided.
  • The _nullify_payment_source trigger attribute has been added to the order object in case you want to force the payment source nullification.
On top of that, a payment source nullification automation has been introduced for all intent-based payments (e.g. Stripe, Klarna, PayPal).

February 9, 2022

Core API

PayPal integration updates

Our PayPal integration has been updated and now uses the most recent PayPal V2 libraries (no changes to the developer experience and integration functionalities).

January 19, 2022

Core API

Klarna integration

Commerce Layer API now supports Klarna out-of-the-box (in addition to all the other payment gateway integrations).

January 18, 2022

Bundles management in v1.1.0

Hosted checkout v1.1.0 now supports bundles, showing them in the order summary as a single line item and unpacking them in terms of single SKUs inside each shipment.

November 23, 2021

Switched to the new SDK in v2.47.0

React components v2.47.0 start using our new SDK (the previous one is now deprecated, so make sure to update your code ASAP if you're still using it). This comes with improved performance, stability, and a lot of other new features.
Last modified 3d ago