Settings reference
Every field on the Settings page — what it does, defaults, and what to set it to.
The Settings page lives at Dashboard → Settings. All fields are saved together; there's no per-field auto-save.
Pre-order detection
Controls how nohold classifies a line item as pre-order. See Detection for the full priority order.
Pre-order tag
The Shopify product tag that marks a product as pre-order.
- Default:
pre-order - Case-insensitive.
Pre-Order,PRE-ORDER,pre-orderall match. - Required — leave blank only if you exclusively use a metafield (below).
Pre-order metafield key
Optional. Format: <namespace>.<key>. Example: custom.preorder.
When set, nohold checks this metafield on each product. A truthy value (true, yes, 1, any non-empty string except false/no/0) marks the product as pre-order.
Use this when product tags are reserved for other systems (marketing automation, search facets, etc.) and you can't repurpose them.
The metafield takes priority only over inventory fallback; tag detection still runs first.
Shipping & notifications
Shipping cost strategy
How shipping is split between the immediate and deferred SOs. See Proration for details.
| Value | Behavior |
|---|---|
| Allocate proportionally (default) | Split shipping by line subtotal ratio. |
| Duplicate on both | Full shipping on both A and B. |
| Zero on deferred | Full shipping on A. Zero on B. |
Notify customer on split
When on, nohold sends a transactional email to the customer's order email each time a mixed cart finishes splitting. The email is sent from notifications.nohold.app (via Resend) and renders the items in each shipment, the expected ship date for the preorder half when you've set one, and a link to the customer's Shopify order-status page.
When off, nohold sends nothing. The customer sees only the normal Shopify order-confirmation email. The split itself still happens; only the notification is suppressed.
- Default: on. Available on Growth and Scale plans. (Starter merchants see an upgrade prompt in place of the toggle.)
nohold writes one row per send attempt to an internal audit log, dedupes against duplicate sends from retries, and updates the row when Resend reports a bounce or spam complaint. The customer sees one email per split, never doubled, even when the underlying dispatch retries.
Preorder ETA
The expected-ship-date settings determine how nohold communicates timing to your customers.
Preorder ships in (days)
When set, nohold stamps an expected ship date on every new preorder at split time. The date appears in the customer notification email (for example, Expected to ship by August 15, 2026) and on the Splits row in your dashboard.
- Default: blank (no date shown to customers).
- Range: 1 to 365 days.
- Required: no. Leave blank if you'd rather set ETAs per-split.
Per-split overrides take precedence. Change the date on any individual split from the Splits page. See Per-split ETA.
Available on Growth and Scale plans.
Send a test email
A button below the customer-notification toggle. Click it, type any recipient email, and nohold sends a sample of the per-shipment notification template, with example items and a sample ETA so you can see exactly what your customer would see.
- Test sends are not logged against the customer's order. They're a preview, not a real send.
- Rate-limited to 5 sends per merchant per hour to prevent abuse.
Available on Growth and Scale plans.
Brightpearl order statuses
By default, nohold auto-discovers your Brightpearl Sales Order statuses on the first dispatch and stores the IDs internally. Override these only if auto-discovery picks the wrong status.
Immediate order status ID
The Brightpearl status ID for A (the in-stock SO).
- Default: auto-discovered from your Brightpearl
/order-statuslist. nohold picks the first non-held, ready-to-pick status. - Leave blank to keep auto-discovery active. Setting an ID disables auto-discovery for this field.
Deferred order status ID
The Brightpearl status ID for B (the pre-order SO).
- Default: auto-discovered. nohold picks the first held / on-hold status.
- Same blank-to-auto-discover behavior.
How to find your status IDs
In Brightpearl:
- Go to Settings → Sales → Order statuses.
- Hover the status in the list — the URL preview shows
?id=N. That number is the status ID.
Or use the API: GET /accounting-service/order-status returns all statuses with IDs. Available to any user with API access.
Status after stock arrives
When the preorder hold releases automatically (stock arrived for all preorder items), nohold transitions the deferred Brightpearl Sales Order to this status and leaves an audit note.
- Default: blank (BP status stays unchanged, nohold only writes the note).
- Format: numeric Brightpearl status ID.
- How to find it: same as the immediate/deferred IDs above.
Use this when your workflow has a distinct ready to pick status that's different from the on-hold status the deferred SO starts in. Leave blank to skip the BP transition; the audit note is written either way.
Available on all plans (this is part of the core Brightpearl automation).
Release preorder holds
How nohold decides when to release the Shopify fulfillment hold on the preorder half of a split. Three options.
Automatically when stock arrives (default)
Released the moment Shopify reports the preorder variants back in stock at the location the hold was placed against. Right for most merchants.
Manually from the Splits page
nohold never auto-releases. A Release hold button appears on each Splits row with active holds; click it to release. Use this when:
- A 3PL needs PO-received confirmation before fulfillment runs.
- You QC inbound shipments before letting orders ship.
- Your fulfillment workflow gates on something nohold doesn't see.
Available on Growth and Scale plans.
When stock arrives AND Shopify reports paid
Released only when both: (1) preorder variants come back in stock, AND (2) Shopify's order financial_status is paid. Right for deposit pre-orders: your customer paid a deposit at checkout, the balance gets captured later, and the order should ship only after the balance clears.
nohold withholds the release; it never charges. The payment surface stays entirely inside Shopify. nohold reads the existing financial_status field and acts on it. It never collects, requests, or processes payments.
Available on Scale plan only.
Campaign tag prefix
Optional. When set, nohold captures the first matching tag on each new Shopify order and stamps it onto the split row.
- Default: blank (no tagging).
- Format: any string; treated as a prefix match.
- Example: prefix
campaign:matches a Shopify order taggedcampaign:fall24and stamps the full stringcampaign:fall24onto the split.
The captured tag appears in the per-campaign breakdown of the preorder demand analytics panel and as a column in the CSV export. Use this when you run multiple distinct preorder campaigns and want to compare cohort performance.
If you change the prefix, only orders placed afterward are tagged. Historical splits keep their original tag value.
Available on Scale plan only.
Brightpearl connection
The connection panel above the form shows:
- Account code. Read-only after connection. To change accounts, disconnect and reconnect.
- Connected at. Timestamp of last successful auth handshake.
- Health. Green (recent dispatch succeeded), yellow (circuit breaker open), red (auth failed).
Click Disconnect to revoke the staff token and clear nohold's stored credentials. New orders will queue but not dispatch until you reconnect; they won't be lost. See Failure handling.