Parent orders

Parent orders

Overview

OneStock’s Parent Orders are designed to make your complex order scenarios easier to manage. Whether you need to send items to multiple addresses, use different shipping methods, or handle other advanced requirements, this feature is here to help simplify the process and support your business needs.

a34d8080-c91c-4e7c-87ec-1f779d5c0d9b.png

🧩 How does it work?

The Parent Order acts as a top layer, a conductor. It groups together several “child” orders (the orders as we know them so far) and allows them to be managed in a unified way.

📦 Multiple deliveries: address, method, and time may differ.

🔁 Optional: the parent order is only added if necessary, without complicating standard cases.

⚙️ Process : First create the parent order, then generate all associated child orders.

 

💡 A seamless adoption approach

This new structure integrates seamlessly into the existing model. The parent command is optional: it is only activated when required by the multi-delivery command. In all other cases, the current logic remains unchanged. This allows for gradual adoption and full compatibility with existing processes.

 

🌍 A real-life example

Sophie places an order with several items. She chooses:

  • Click & Collect for a jacket available today at her local store,

  • Same-day delivery for a birthday gift,

  • Standard delivery next month for a backordered item.

 

▶️ Feature activation

Thanks to the seamless adoption approach, parent orders can be easily activated for any site. Activation of the module, toggles display in the Backoffice orders page. Parent order creation by API is supported out of the box.

 

⚠️ Important : Please inform your Onestock contact to activate it for the first time to ensure smooth operation.

 

Information and configurations

Creation of parent_order

We highly recommand to use V4 API call routes to use this feature (especially V4 OMS routes). This feature is still in BETA, the API routes may change in the future.

To manage this kind of order, the steps are :

  1. POST/parent_order

  2. POST/order with the associated parent_order_id

Once the order is created, it is not possible to PATCH it with a parent_order

It is possible to manage standard orders and parent-child orders within the same project. In this case, some orders will have a parent_order_id and others will not.

How to manage parent order in reality ?

Recommendation: How to use parent orders for a web cart

Cart Creation

The customer adds items to their cart.
→ Based on the selected items, the retailer identifies possible groupings and suggests combination.

Combination are managed by the retailler or by a middleware.

Delivery Choice

For each identified combinaison, the retailer makes a call to the OMS ou the Delivery Promise and display delivery methods, delivery prices and delivery delays for each combination.

The customer selects a delivery method and address for each combination.

ℹ️ If the delivery promise is only partially confirmed, the OMS notifies the retailer. The customer can then update the delivery methods for any unavailable products.

Order creation

  • The customer pays the command.

  • The retailer then submits a parent order that includes the entire cart.

  • Each combination is sent as a child order, linked to the parent order.

 

Recommendation: Payment Management with Parent Orders

The retailer creates the different combinations (child orders) in the cart. The customer chooses delivery methods for each combination.

→ Each child order is associated with one delivery method and its corresponding delivery fees, taxes and discounts.

  • Delivery fee : stored at child order level.

  • Taxes : stored at the child order level.

  • Item-level discounts : are applied and stored at child order level.

  • Cart-level discounts : are applied to the overall total. → The retailer is responsible for distributing these discounts across the different child orders before posting the parent order.

We store every payment information at child order level. This processus may change in the future if needed.

 

Parent Order Status

The status of a parent order automatically reflects the statuses of its child orders:

  • New or pending : All child orders are either “pending” or “paid”

  • In progress : At least one child order is in a state such as “orchestrating”, “collectable”, or “processing”

  • Fulfilled : All child orders are either “fulfilled”, “removed”, or “collected”

  • Removed : All child orders are in the “removed” state

The parent order worflow is not configurable yet. If one of the custom states at order level is not well managed, do not hesitate to contact your Onestock contact.

 

Parent Orders in the Order List View

You can add a new column to the order list page to display the associated parent_order_id:

  1. Go to Configuration > Back Offices > Orders > Order list >

  2. In the Columns to display section, add "Parent Number"

  3. Then go to the order list page, open the column selector, and select "Parent Number"

 

398fc1e6-c0ba-44a8-bac8-e3c70323b22a.png

 

7d65041a-c5ac-4ecd-a06f-4c0bb818a3b2.png

Good to know

  • For the moment is not possible to customize or manage the information displayed on the parent order page in the back office.

  • All data is stored at the child level; we only show a few key fields at the parent level (e.g., customer details, billing address, prices, a quick view of child orders).

 

General behaviors

Pagination

Although a parent order can technically contain up to 50 child orders, to ensure optimal Backoffice performance, the order detail page display is currently limited to 20 child orders.

→ If you need to manage more orders by parent, contact the yellow team.

Currency

Parent and child orders must have the same currency.

Sales channels

Multiple sales channels are supported for a parent order.

⚠️ Warning: Some projects restrict user access by sales channel. To use the feature properly, ensure all users have access to all sales channels to prevent display issues in the Back Office.

 

Prices

  • Parent order: Only one price per parent order, set by API.

    • The price set at the parent order is static and need to be filled at creation.

    • Taxes and shipping are filled in child orders.

  • Child orders: One price per child order, set via API

    • The total sum of child order prices must be less than or equal to the parent order price

  • Taxes & Shipping Fees: Managed per child order, shown only at child level

Price at parent level is fixed (no edition possible).

 

Customer information

  • Customer details : Only one customer details per parent order. Each change will be automaticcaly applicated on every order/parent associated

  • Customer info in billing section : Only one customer details per parent order. Each change will be automaticcaly applicated on every order/parent associated

  • Customer info in delivery section : One per child order, shown only at the child order level

 

Anonymisation

Once a child order is anonymized, all other child orders under the same parent are anonymized as well. Information at the parent level is also anonymized.

 

Searches & filters

You can search for a parent order using the order search filter. This will display all child orders that share the specified parent_order_id.

To enable this:

  1. Go to Configuration > Back Office > Orders > Order List

  2. In the Order search fields section, add "Parent order id"