Recurring Orders overview

Elevate, May 20-22-2025, Miami Beach, Florida

Overview of the concepts related to Recurring Orders and the checkout process.

Recurrence Policy

A Recurrence Policy holds information about a schedule/interval that will be used for order creation.

Recurring items

Line Items and Custom Line Items now carry information about possible recurrence.

For each item, you can set a different schedule/interval and price mode.

To configure an item, you can do the following:

For Recurring Orders, each Line Item or Custom Line Item can have a fixed or a dynamic price.

  • Fixed price: the price set at the time of creating the Recurring Order will remain unchanged. If the SKU's price is updated later, the Recurring Order will continue to use the original price.
  • Dynamic price: each time a new order is generated, the price will automatically update based on the current platform price.

Recurring Order creation

One or more Recurring Orders can be created automatically when an order is created using the Create Order from Cart endpoint.

Carts support Custom Line Items with recurring (subscription) and non-recurring (one-time) purchase information combined.

Example:

A customer wants to buy 4 different products (SKU). Their cart has the following items:

ItemPurchase IntervalShip to
SKU1One-time purchaseHome
SKU2WeeklyHome
SKU3MonthlyOffice
SKU4MonthlyOffice

The customer completes the checkout process and receives an email with the confirmation.

Internally, Composable Commerce performs the following steps:

  • A new Order is created with all four items.
  • The Order is checked to determine if any Line Items or Custom Line Items are marked as recurring.
  • If all items are one-time purchases, no further action is taken.
  • If one or more items are recurring:
    • All recurring items are grouped by their recurrence interval.
    • In this example:
      • Group A: SKU2 (weekly)
      • Group B: SKU3 and SKU4 (monthly)
    • For each group, a new Recurring Order and a new Cart are created.
    • The new Cart inherits the base configuration of the original Order (e.g., tax mode, customer group, inventory mode, store, business unit) but contains only the items that belong to that group.
    • If multiple shipping methods are used, only the shipping methods and addresses associated with the items in the group are copied to the new Cart.
The result:
  • Recurring Order A: SKU2 is shipped weekly to the home address.
  • Recurring Order B: SKU3 and SKU4 are shipped monthly to the office address.
Every new order will execute all related API Extensions, and generate Messages.

Recurring Carts

Every recurring order has a link to a cart that will be reused to create the subsequent orders.
Recurring Carts are identified by the CartOrigin RecurringOrder.
Recurring Carts are not deleted by the automatic cleanup, regardless of whether any changes occur within a 90-day period.

Subsequent Orders

After a Recurring Order is created, new orders will be created automatically.

New orders use the field nextOrderAt to specify the date and time that the next order should be created.
In most cases, all orders will be created around the same time as nextOrderAt but in some cases it may take up to 48 hours for a new order to be created.

The following example shows when next orders are going to be created for a recurring order configured with weekly interval.

DateStatusOrder CreatednextOrderAt
1 Jan 2025Active8 Jan 2025
8 Jan 2025Active15 Jan 2025
15 Jan 2025Active22 Jan 2025
22 Jan 2025Active29 Jan 2025
29 Jan 2025.........

Paused Recurring Orders

Recurring Orders can be paused at any moment. When a Recurring Order is paused, subsequent orders will not be created until the Recurring Order is re-activated.

The following example shows when next orders are going to be created for a recurring order configured with weekly interval but it has been paused/activated in between.

DateStatusOrder CreatednextOrderAt
1 Jan 2025Active8 Jan 2025
6 Jan 2025Paused by the userxempty
19 Jan 2025Reactivated by the userx22 Jan 2025
22 Jan 2025Active29 Jan 2025
29 Jan 2025Active......

Pricing

Prices (both embedded and standalone) can now include information about recurrence policies.

When selecting a price for a recurring order, the platform will use the standard price selection rules, along with the specified recurrence policy, to determine the correct price for the given SKU and recurrence.

Example: For a Recurring Order using an SKU with a monthly recurrence, the platform will attempt to locate a price explicitly tied to that monthly policy.
Important: Recurring orders do not support a fallback mechanism for price selection. If a matching price cannot be found for the specified SKU and recurrence policy, the corresponding line item will not be added to the cart.

Configuration

For Recurring Orders to work properly, a price must be connected to a recurrence policy.

Example: To sell Yogurt in 3 different intervals, a price must exist for each interval.

If you are using Standalone Prices: Add a new price via the create price endpoint and set the desired Recurrence Policy in the StandalonePriceDraft object.
If you are using Embedded Prices: Add a new price via the update action Add Prices and set the desired Recurrence Policy in the PriceDraft object.