nohold / docs
Get started

Install & connect

Install the nohold Shopify app and connect your Brightpearl account.

Installation has two phases: install on Shopify (OAuth), then connect your Brightpearl account.

Before you start

You'll need:

  • Shopify Admin access on the store you want to install on (Apps permission).
  • Brightpearl access with permission to install private apps (Settings → Apps → Private apps).
  • The invite link you received from the nohold team. The app is invite-only during beta.

1. Install the Shopify app

  1. Open your invite link, or visit https://app.nohold.app/install and enter your your-store.myshopify.com domain.

  2. Shopify shows the OAuth consent screen. nohold requests these scopes:

    • read_orders for receiving every new order via the orders/create webhook so the classifier can decide whether the cart is mixed.
    • read_products for product tags and metafields used by the classifier, and variant inventory levels for the fallback rule.
    • read_fulfillments for the existing fulfillment state on orders so nohold can split into two clean fulfillments rather than creating new ones.
    • read_assigned_fulfillment_orders and write_assigned_fulfillment_orders for orders Shopify assigns to one of your locations.
    • read_merchant_managed_fulfillment_orders and write_merchant_managed_fulfillment_orders for orders you manage yourself. The split, the hold, and the auto-release all happen through these.

    nohold does NOT request write_orders or any payment-related scope. Order content arrives via webhook; nohold never writes back to the original Shopify order. Customer data is the subset Shopify already includes in the order payload.

  3. Click Install app. You'll be redirected back into the nohold dashboard, on the Starter plan with a 14-day free trial. No card on file.

What about multi-location release filtering?

nohold captures the Shopify location each held fulfillment was assigned to and stores it on the hold. When stock arrives at a different location, the auto-release doesn't fire, keeping inventory at the right warehouse from spilling into another warehouse's release.

Full per-tag routing rules (for example, campaign:fall24 → London warehouse) are on the roadmap. When they ship, nohold will ask for an additional read_locations scope and you'll get a banner in the dashboard to re-grant it from your Shopify admin. The feature stays on Scale.

2. Connect Brightpearl

From the dashboard, go to Settings → Brightpearl Connection and click Connect Brightpearl.

You'll be asked for two values, both available in your Brightpearl admin:

FieldWhere to find it
Account codeBrightpearl URL — the slug after https://. For https://abc123.brightpearl.com it's abc123.
Staff tokenBrightpearl → Settings → Staff → [your user] → API → Generate token. Copy it once; Brightpearl won't show it again.

Paste both into the form and click Connect. nohold will:

  1. Verify the credentials by hitting /account-info on the Brightpearl API.
  2. Discover your default Sales Order status IDs (you can override these later in Settings).
  3. Mark the connection as healthy on the dashboard.

If verification fails, see Troubleshooting → Brightpearl connection.

3. Configure pre-order detection

By default, nohold treats any line item whose product carries the Shopify tag pre-order as a pre-order.

If you tag pre-order products differently (e.g. backorder, arriving-jan, etc.), or use a metafield instead of tags, jump to Settings → Pre-order detection and update the values.

You can change this any time. The change applies to new orders only — orders already split won't be re-evaluated.

4. You're ready

That's it. Place a test order with a mixed cart and head to First split to confirm everything is working end-to-end.

On this page