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.
🧩 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 :
POST/parent_orderPOST/orderwith the associatedparent_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:
Go to Configuration > Back Offices > Orders > Order list >
In the Columns to display section, add "Parent Number"
Then go to the order list page, open the column selector, and select "Parent Number"
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:
Go to Configuration > Back Office > Orders > Order List
In the Order search fields section, add "Parent order id"