2024

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

Added ability to unblock stuck transactions

Core API

July 9, 2024

We introduced the new _forward trigger attribute for all types of transactions (authorizations, captures, refunds, and voids). You can leverage it to unblock a transaction if it gets stuck (for any reason) on our platform but succeeds on the payment gateway. In the case of authorizations, the associated order is also placed at the end of the forwarding process, to avoid any possible modifications.

Added ability to initiate a refund from a return, and more 🌟

Core API

July 4, 2024

Now you can initiate a refund process from a return by sending two trigger attributes and specifying the amount to be refunded. By default, the capture that will be refunded is the most recently succeeded capture associated with the related order. In the case of an order associated with multiple captures, you can also specify a different capture, provided that it's succeeded as well. We also added the ability to directly mark requested and approved returns as received. On top of that, we released the following minor (but still relevant) updates to our APIs:

  • External promotions β€” Now you specify the line items on which you want to apply an external promotion discount by listing their IDs in the line_items array of the response. You can also define specific discounts for different line items. The use of the matching_line_items key is deprecated. ⚠️

  • Shipments β€” now you can cancel also packing and ready-to-ship shipments by leveraging the new _cancel trigger attribute (you need to use integration API credentials).

  • Orders β€” now you can cancel partially refunded orders without creating any further transactions.

  • Webhooks β€” now we check and validate the related resources that are included in the request body so that you can be sure not to choose those that are not allowed. ⚠️

Enabled custom reset password flow in v1.2.1

Identity

June 13, 2024

We added an optional parameter you can add when composing the Identity MFE URL to enable a custom reset password link visible on the login form page. If that parameter is set a Forgot password? link pointing to the specified URL will be shown on the right below the Password field.

Added tags to order subscriptions, and more

Core API

June 12, 2024

We introduced a bunch of minor (but still relevant) updates to our APIs:

  • Order subscriptions β€” we added order subscriptions to the taggable resources list.

  • External payment gateways β€” we added order subscriptions to the list of resources we include in the request we send to external payment gateways to avoid useless API roundtrips.

  • SKUs β€” we remove the uniqueness constraint on SKU names. Now you can give the same name to SKUs with different SKU codes.

Introduced toggle to support Adyen's native Drop-in customer payment sources, and more ⚠

Core API

June 10, 2024

Now you can decide to show the customer payment sources saved from the native Adyen Drop-in library instead of the ones saved in Commerce Layer by setting to true the new boolean attribute native_customer_payment_sources at the Adyen gateway level (the feature is already available on our AdyenPayment React Component and will be soon added to our hosted Checkout too). On top of that, we released some other updates to our APIs:

  • Customers β€” we exposed the new shopper_reference attribute. It is automatically generated at creation time for each new customer and sent to the payment gateway to identify the shopper during the payment sessions. It can be updated at your leisure.

  • Order validation rules β€” we deprecated and removed from the API reference the related endpoint. This could be a potential breaking change. ⚠️

  • Sortable relationships β€” we update the list of relationships you can sort each resource by. You can find it in the documentation of each resource by checking the List all section (e.g. sortable relationships for SKUs).

Limited stored order errors, removed order expiration date, and more ⚠

Core API

June 6, 2024

We introduced a bunch of updates to our APIs β€” be advised that some of them could result in potential breaking changes ⚠️:

  • Orders β€” we removed the expires_at attribute, make sure to update your integration accordingly in case you were leveraging it somehow. ⚠️

Our draft order cancellation policy still stands. Draft orders that aren't associated with a customer are automatically deleted after 2 months since the latest update.

  • Resource errors β€” for performance reasons, now resource errors are limited to a buffer that stores the latest 10 errors per order. ⚠️

  • Stock transfers β€” now you can add attachments to stock transfers too.

New trigger attributes for orders, shipments, and more

Core API

May 31, 2024

We introduced a bunch of minor (but still relevant) updates to our APIs:

  • Shipments β€” we added the new delivered status to the shipment lifecycle. You can now leverage the related trigger attribute _deliver and real-time webhook event. On top of that, now the number of a shipment can be edited.

  • Orders β€” now you can leverage the new trigger attribute _fulfill to mark as fulfilled an order whose shipments have been shipped or delivered, and the related real-time webhook event.

  • Order subscriptions β€” now you can turn an existing manual order subscription into an automatic one by sending the _covert trigger attribute, provided that you previously defined a subscription model for the associated market.

  • Imports β€” now you are allowed to specify also some attributes that normally are not updatable (such as the order, payment, and fulfillment status) when importing orders that you want to archive.

  • Gift cards β€” we exposed the new usage_log attribute that you can leverage to get more information about how, when, and by which order a gift card has been used.

  • Stock transfers β€” now the number of a stock transfer can be set at creation or update time.

Bundles available in JS Drop-in v2.4.0

Micro frontends

May 30, 2024

The Add to cart and Price components of our JS Drop-in library now support bundles, meaning that, starting from v2.4.0, you can display prices of bundles (instead of just single SKUs) and add them to the shopping cart, as you can see from this demo. The list of the custom events dispatched by the library has also been updated accordingly.

To learn more and see our micro frontends in action, explore the interactive documentation. For any additional details or potential breaking changes, see the release notes.

New price list scheduler endpoint, and more 🌟

Core API

May 16, 2024

We've just added a new entry to the roster of our commerce API endpoints that will enable better and more flexible pricing strategies and price list management. Now you can optionally associate one or more price list schedulers to each of your markets. Price list schedulers set a time frame within which their price list overrides the associated market's one, letting you change a subset of prices within that specific time window (e.g. seasonal sales). On top of that, we added some minor updates to our APIs:

  • Line items β€” now you can change a line item's unit amount and assign it a value that differs from the one defined in the market's price list of the associated order by using integration API credentials.

  • Promotions β€” we exposed the status of the promotion (e.g. expired, pending, active, inactive, or disabled) for all the promotion types.

Disabled webhooks on imports, and more ⚠

Core API

May 14, 2024

Be advised that we introduced potential breaking changes ⚠️ by disabling real-time webhooks on imports, meaning that the related events are no longer fired when creating/updating resources via imports. The only events that are still fired are the ones associated with order status changes. If you need to leverage all the other real-time events, you have to create/update resources via the related API endpoints. On top of that, we added some minor updates to our APIs:

Updated UI design and new features for our Dashboard ✨

Dashboard

May 9, 2024

We've released the newest version of our Dashboard, now built completely with React. It now leverages the power of our Provisioning and Authentication APIs, making future development and customization of our Dashboard applications much easier. You'll notice a light UI revamp that improves the navigation, along with some new features. Among them:

  • When you create a new organization with Commerce Layer, you now have the option to select which region you’d like your data to be stored.

  • You can now grant members partial access to specific apps (e.g. enabling them to manage orders belonging only to certain markets or shipments delivered only from certain stock locations).

Sign up or log in to see for yourself or read more on our blog!

Added the new Promotions, SKUs, SKU Lists, Price Lists, and Inventory apps to the dashboard hub πŸš€

Dashboard

April 23, 2024

As part of our new Dashboard renovations, we’ve released a whole new set of apps related to promotions and product management. In detail:

  • Promotions β€” you can view active, upcoming, disabled, or all of your promotions by clicking any of the views, along with creating new promotions by type (external promotions included) or editing existing ones.

  • SKUs β€” you can manage (create, delete, edit, search, filter) your SKUs, along with adding their shipping info and options.

  • SKU Lists β€” you can create new SKU lists or edit existing ones by adding or removing SKU list items.

  • Price Lists β€” you can create new price lists or edit existing ones by adding prices, setting the currency, and determining whether taxes are included or not.

  • Inventory β€” this app enables you to set stock levels for SKUs in each of your stock locations by adding and removing stock items, or updating their quantity.

Click on the Hub tab and see it for yourself or read more on our blog!

Updated price tiers limit

Core API

April 19, 2024

We doubled the number of allowed price tiers. Now you can define up to a maximum of 10 tiers in total (no matter what type) per price.

Added order subscription renewal event, and more

Core API

April 16, 2024

We updated the list of our real-time webhooks with a new event that you can leverage to notify customers about upcoming recurring orders associated with subscriptions once you've properly set the renewal_alert_period at the order subscription level. On top of that, we added some minor updates to our APIs:

  • Promotions β€” now all promotion types can be filtered by priority.

Added trigger to validate stock item quantities, and more

Core API

April 9, 2024

We introduced the new _validate trigger attribute at the stock item level. We recommend passing it for each input when updating stock item quantities via imports to avoid some edge-case scenarios that could lead to inconsistent quantity updates. On top of that, we added some minor updates to our APIs:

  • Imports β€” we changed the SKU options' unique keys: now you can import SKU options using only name and currency code.

  • Returns β€” Now you can tag returns even if the associated order's fulfillment status is unfulfilled.

Subscriptions available in JS Drop-in v2.3.0

Micro frontends

April 8, 2024

The Add to cart component of our JS Drop-in library now supports automatic subscriptions based on line item frequency. Starting from v2.3.0, we also took the opportunity to align the library with the recent changes to the authentication process using the new Auth API.

To learn more and see our micro frontends in action, explore the interactive documentation. For any additional details or potential breaking changes, see the release notes.

Started supporting organization config settings in v4.10.0

Checkout

April 5, 2024

Leveraging the recent new feature introduced on the Provisioning API in terms of adding default and market-specific settings at the organization level, we've started using those config parameters to enhance the flexibility of our hosted applications. The Checkout app now supports:

On top of that, we also added Hungarian to the list of supported languages.

Updated SSO with Next.js and Auth0 tutorial

Examples

March 27, 2024

The tutorial on how to set up single-sign on with Commerce Layer using Next.js and Auth0 has been updated to reflect the changes recently introduced with our new Auth API. Read it on our blog and/or check the code in the Examples repository.

New Auth API supported from v6.0.0 ⚠️🌟

JS Auth

March 26, 2024

Our JS Auth library is now aligned with the recent changes to the authentication process and uses the new Auth API. Be advised that v6.0.0 introduces potential breaking changes ⚠️ β€” in detail:

  • The library now uses the new auth endpoint and both the Core API and Provisioning API authentication methods have been unified into the new authenticate one. ⚠️

  • The new scope syntax (including the additional feature to use the code instead of the ID) is now used.

  • The JWT bearer flow is now supported (this feature is available for Enterprise users only).

  • We added a revoke method to revoke any previously generated access token.

  • We added a helper method to decode any kind of access token.

Check the release notes for more info.

Added possibility to export order subscriptions

Core API

March 22, 2024

We added order subscriptions to the list of exportable resources. Now you can create exports that include order subscription together with the associated order subscription items and customer payment source. On top of that, we also made the place_target_order option updatable at the order subscription level.

Enabled full-text search on order's aggregated details 🌟

Metrics API

March 21, 2024

Now you can leverage a new attribute on the order field. aggregated_details contains all the order data, on which you can perform a full-text search using the dedicated query operator. On top of that:

  • We've added the archived_at to the order date_field available values and the archived attribute on the order field so that you can easily search for archived orders.

  • We've removed the 1-year limit on the time window within which you can request to extract your metrics.

Check the Use cases section of the Metrics API documentation for some examples and the public Postman collection to see it in action!

Introducing our new Authentication API πŸš€

Auth API

March 20, 2024

We've migrated the whole authentication process to our new Authentication API, as detailed in the related section of the documentation. At the moment both the old and new ways of authenticating are supported, but the legacy endpoints, scope syntax, and SSO using a custom org-specific secret key are deprecated and will be dismissed by the end of October 2024. Make sure to update your integration in time to avoid any issues.

The main changes concern:

To learn more, check the documentation and read our blog here.

Added organization config

Provisioning API

March 15, 2024

We’ve enabled the option to specify a basic configuration for Micro frontends and open-source apps (e.g. Cart, Checkout, Identity, My account, Microstore) at the organization level, via our Provisioning API. At the moment this feature is limited to the MFEs URL format and the Checkout app setup and will be progressively extended. You can specify the default values and possibly override them in a granular way (e.g. by market).

Added new subscriptions section in v1.4.1 🌟

My account

March 14, 2024

We've introduced the Subscriptions section where customers can see their subscription history and a detailed page for each subscription. If the subscription cannot be renewed (e.g. due to an expired payment method), the customer is presented with a link to place the order with a valid payment method, thereby updating the payment information for future transactions.

Added the possibility to amend an order subscription payment source in v4.7.0

Checkout

March 13, 2024

We've introduced the ability to place a target order (created by an active order subscription) even when the payment source is missing or is no longer valid. Once the order is paid the new payment source will be saved in the customer’s wallet and the order subscription will be updated with the new payment source automatically.

Ensured non-editable attributes preservation during order placement, and more ⚠️

Core API

March 12, 2024

Be advised that we introduced a potential breaking change ⚠️ by refining the non-editable attributes check during the order placement. Altering those attributes during the order's placement process is not permitted, since they can trigger collateral effects and cause an inconsistent order status. Now, if try to edit them when you patch the order passing the _place trigger attribute no error is raised (to guarantee the order's placement), but the changes are silently ignored. On top of that, we added some minor updates to our APIs:

  • Shipments β€” we exposed a new virtual relationship on the shipment object that you can leverage to get all the line items included in the shipment (both the ones associated with stock line items and stock transfers).

  • Webhooks β€” we added two new events that you can leverage to be notified when the last run of an order subscription has succeeded or failed.

Introduced circuit breaker for all external resources, and more

Core API

March 7, 2024

Now all Commerce Layer external resources are subject to a circuit breaker check. If the call to your external endpoint fails consecutively more than 30 times, the circuit breaker opens and any further request to the resource will be skipped. The circuit is automatically reset anytime a call to your external endpoint succeeds before reaching the counter's threshold. You can check the circuit breaker's current status by fetching some new specific attributes, and/or reset it manually via trigger. On top of that, we added some minor updates to our APIs:

  • External promotions β€” now you can distribute the external promotion discount only on specific line items by adding their IDs to the response sent by your external service.

  • Promotions β€” now you can filter promotions also by type.

  • Customer payment sources β€” now you can filter customer payment sources also by payment source token.

  • Adjustments β€” as recently done for gift cards, now you can leverage a specific attribute to prevent negative adjustment amounts from being distributed as discounts on all the taxable items of the order.

Added option to not distribute gift card discount for tax calculation, and more

Core API

February 28, 2024

Now you can leverage a specific attribute at the single gift card level to prevent the total discount due to gift cards used to pay for an order from being distributed on all the taxable items of the order. On top of that, we added some minor updates to our APIs:

  • External promotions β€” now the currency code is no longer required to create external promotions which can be applied across all currencies.

  • Stock transfers β€” now, when stock transfers become upcoming the related stock is no longer decremented. Instead, the necessary stock reservations are created to eventually allow order editing (the stock will be then actually decremented when the stock transfer is completed).

Asynchronous order placement and new resource errors endpoint 🌟

Core API

February 20, 2024

Now you can decide to place your orders asynchronously by setting the related flag at the order level. In this scenario, if the order passes a subset of the synchronous standard validations it's momentarily moved to a new placing status where additional validations are performed (e.g. stock availability, coupons validity, etc.) before moving it through the next steps of its lifecycle. You can also check for errors that might keep an order stuck in placing by fetching the new resource errors endpoint, which will store until order approval not only any errors that occurred during the attempt to place an order (both synchronously and asynchronously), but also the ones coming from external validations, failed subscriptions, and more.

New split by line items inventory strategy 🌟

Core API

February 15, 2024

We added a new inventory strategy to the list of available ones. Now you can leverage the split by line item strategy by setting the related attribute accordingly at the inventory model level. This way, at least a separate shipment will be automatically created per each line item of the order. Please note that this new strategy only works for SKUS: if an order contains bundles, all the shipments and stock will be still managed by using the split shipments strategy as a fallback.

Enabled auto-place option for Stripe, and more

Core API

February 14, 2024

Now you can set an auto-place option at the payment method to ensure your orders are automatically placed upon authorization performed asynchronously (at the moment, available for Stripe gateways only). On top of that, we added some minor updates to our APIs:

  • Promotions relationships β€” now, when creating a new promotion or updating an existing one, you can create or update the associated SKU list, but you can't create or update the associated coupons and promotion rules anymore.

  • Shipments β€” now you can manually create or update shipments even when the associated order is fulfilled.

  • Returns β€” now you can create or update returns even when the associated order's fulfillment is in progress.

Cart express checkout buttons available in JS Drop-in v2.1.0

Micro frontends

February 7, 2024

The Cart component of our JS Drop-in library now supports express checkout buttons for both Apple Pay and Google Pay via Stripe. We improved also the Availability component by adding the rule prop that enables you to choose which delivery lead time to display (one of the cheapest or the fastest).

To learn more and see our micro frontends in action, explore the interactive documentation. For any additional details or potential breaking changes see the release notes.

New Provisioning plugin 🌟

CLI

February 1, 2024

v1.0.0 of our Provisioning CLI plugin is out! Now you can use Commerce Layer Provisioning API (performing all the available CRUD actions on all resources 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.

TypeScript SDK for Provisioning API 🌟

SDK

January 31, 2024

We just released v1.0.0 of our Provisioning SDK, an open-source TypeScript library wrapper that makes it quick and easy to interact with Commerce Layer Provisioning API, both in browser and Node.js applications. The TypeScript SDK is built on top of the Provisioning OpenAPI schema, which you can use as well to to build mock servers, auto-generate code, SDKs for other languages, implement contract testing, and more.

Introducing our new Provisioning API πŸš€

Provisioning API

January 30, 2024

We’ve released our Provisioning API, which now enables Commerce Layer clients to manage provisioning tasks (such as organization creation, API credentials, memberships, roles and permissions management, etc.) programmatically instead of manually and exercise greater control over your organizational structure and user onboarding.

You can find the credentials to access the Provisioning API together with your account settings in the Dashboard.

To learn more, check the documentation and read our blog here.

Added the new Stock Transfers app to the dashboard hub πŸš€

Dashboard

January 25, 2024

As part of our new Dashboard renovations, we’ve released a new Stock Transfers application to help you manage stock transfers whenever your orders require one, allowing you to maintain a distributed inventory model without disrupting demand. You are now able to check all the key information behind each stock transfer and control their transition from one status to another. Click on the Hub tab and see it for yourself!

To learn more, read our blog here.

Added the editing feature to the Orders app

Dashboard

January 24, 2024

You can now leverage the order editing feature β€” previously available via API only β€” also from the Orders app of the Dashboard, being able to edit orders (e.g. adding or removing items, coupons or gift cards, adjustments, etc.) after placement (and before approval).

Added option to manually decrement stock after order approval

Core API

January 11, 2024

Now you can override the default API behavior (automatic stock quantities decrementation and stock reservations cancellation at order approval) by setting a simple flag on the inventory model. That lets you manually manage those actions at any time after the order approval by leveraging the trigger attributes exposed at the shipment and/or at the stock line item level.

Last updated

Was this helpful?