Order lifecycle
Edits, cancellations, refunds, and how the held SO auto-releases when stock arrives.
A split isn't a one-shot operation. Shopify orders change after they're placed — customers cancel, ops teams edit, refunds happen — and pre-order stock eventually arrives. nohold keeps both SOs in sync with what happens upstream.
Auto-release on stock arrival
This is the core post-split behavior. When pre-order stock lands in Brightpearl:
- Brightpearl emits a stock transfer / goods-in event.
- nohold detects the event and re-checks every held (deferred) SO that includes the affected SKU.
- Any SO with enough inventory to fulfill all its lines is automatically released — moved from the deferred status to your normal "ready to pick" status.
- Your warehouse team works it like any other SO. They never had to manually reassign stock or chase down a release.
If a held SO has multiple pre-order lines and only one arrives, the SO stays held until all lines can be fulfilled. nohold doesn't partially release.
Edits, refunds & cancellations
When something changes in Shopify, nohold propagates the change to whichever SO(s) the change affects.
Cancellations
| Shopify action | What nohold does |
|---|---|
| Cancel whole order | Cancels both A and B in Brightpearl |
| Refund only the in-stock half before it ships | Cancels A. B continues waiting for stock. |
| Refund only the pre-order half | Cancels B. A is unaffected. |
Refunds
Refunds map to the matching SO so credit notes line up correctly:
- A refund on an in-stock line creates a credit on A.
- A refund on a pre-order line creates a credit on B.
- A whole-order refund hits both SOs proportionally to their totals.
Refunds preserve tax and shipping treatment from the original split. If shipping was set to "Allocate proportionally", the refund follows the same proportions.
Order edits
Shopify's orders/edit event covers adding, removing, or repricing line items after an order is placed.
- Adding a line item — added to whichever SO matches its classification (in-stock → A; pre-order → B).
- Removing a line item — removed from the SO that contained it.
- Repricing — the line price update propagates to its SO.
If an edit empties one half (e.g. you removed every in-stock line, leaving only pre-orders), A is cancelled and B continues unchanged.
What survives across both halves
Both SOs always carry:
- The original Shopify order number with
-A/-Bsuffix. - The same Shopify channel reference.
- The same customer record.
- A pointer back to the original Shopify order (Brightpearl
extReffield).
This means anywhere your ops team currently looks for "the Shopify order in Brightpearl", they'll find both halves.
What nohold does not do
To keep behavior predictable, nohold deliberately avoids:
- Merging back an A and B that were previously split. Once split, they live as separate SOs — even if all lines later end up in stock.
- Combining shipments across A and B. Each SO ships independently. Most warehouses prefer this anyway because it lets in-stock revenue out the door immediately.
- Re-classifying an existing split. If you change the pre-order tag in Settings, that affects future orders only.