nohold / docs
How splitting works

Detection

How nohold decides which line items are pre-order and which are in-stock.

Every Shopify orders/create webhook runs through the classifier. Each line item is labelled in-stock or pre-order, and the order as a whole is labelled:

  • In-stock only — passes through unchanged. No split, no dispatch overhead, doesn't count toward your quota.
  • Pre-order only — also passes through unchanged, dispatched once as a held SO.
  • Mixed — split into two SOs.

How a line item gets classified

nohold checks signals in this order. The first match wins:

1. Product tag (default)

If the product carries the tag configured under Settings → Pre-order tag (default: pre-order), the line item is pre-order.

Tags are checked case-insensitively. Multiple tags on a product are fine — only the configured tag matters.

2. Product metafield (optional)

If you've configured a metafield key under Settings → Pre-order metafield key (e.g. custom.preorder), nohold checks that metafield on the product. A truthy value (true, yes, 1) marks the line as pre-order.

Use this when you can't add tags to products — for example, if tags are reserved for marketing automation. The metafield path is <namespace>.<key> — both halves are required.

3. Inventory level (fallback)

If no tag and no metafield matches, nohold falls back to inventory. If the variant's available stock is 0 or negative at the time of the order, the line item is treated as pre-order.

This is a safety net — we recommend using tags or metafields as the primary signal because they reflect intent ("this is a pre-order product"), not transient state ("this happened to be out of stock right now").

Real-world examples

CartClassificationResult
1× Speaker (in-stock), 1× Ltd. Case (pre-order tag)MixedSplit into A (Speaker) + B (Case)
2× Speaker (in-stock)In-stock onlyOne SO, no split, free
1× Ltd. Case (pre-order tag)Pre-order onlyOne held SO, no split, free
1× Speaker (in-stock), 1× Mug (no stock, no tag)Mixed (via inventory fallback)Split into A + B

Changing detection rules

Detection rules apply to new orders only. Existing splits won't be re-classified when you change settings — they're already in Brightpearl.

If you change the rules and want to test the new behavior, place a test order. See First split.

On this page