Skip to content
notjust. docs

Shopify

Connect your store and Workshop runs jobs on it. Draft orders become jobs, finished jobs become orders, paid ones are fulfilled, and the dashboard counts the money. Connected plan.

Workshop doesn't keep its own prices, stock or customers: it uses your Shopify store's. Connected plan.

What you get

The queueA draft order tagged as a workshop job (a job group tag, like workshop) waits in the queue. Draft orders made on the POS count too
Drop-offBook a job in, with a deposit charged on the POS. See Drop-off
Job sheetItems, discounts and notes written to the draft. See The job sheet
FinishingThe draft becomes an order, payment pending, invoice emailed if you want. See Finishing jobs
Auto-fulfilPaid jobs fulfilled and off the board by themselves
DashboardRevenue, profit, hours billed, per person and per group
InventoryStock by location. See Inventory
CustomersFound or added in Shopify as you type, phones as +61

Connect Shopify

Settings → Integrations → Shopify (owner).

  1. Type your store (your-store.myshopify.com, or paste the address from your Shopify admin).
  2. Connect with Shopify.
  3. Shopify shows what the notjust. Workshop & Cycles app may do. Approve it.

You're back in Workshop, connected. The first sync brings in the last year of orders; the dashboard shows it running.

It's the same app for Cycles: a store connected in one is ready for the other.

What it's allowed to do, and why

PermissionUsed for
Orders, all ordersThe dashboard's figures; finished jobs become orders; deposits
Draft ordersJobs: made at drop-off, edited on the job sheet, finished into orders
Products, inventory, locationsProduct search, pictures, cost prices for profit, the Inventory page
CustomersSearch and add customers at drop-off
Merchant-managed fulfilment ordersFulfilling paid jobs, when auto-fulfil is on

If Shopify hasn't granted one (say, after the app added a permission), the connection says Not granted: … and what's missing. Press Reconnect and approve.

Set it up

All in Settings → Integrations → Shopify, once connected:

  • Job groups, Labour products, Waiting for pickup, Rental repairs and assembly: how the dashboard counts. See Dashboard.
  • Tags when a job is finished: tags a finished job's order gets. Tag with the name of whoever finished it (on by default), tags for every job, and tags for particular job titles ("Rental return" gets rental).

Disconnect

Disconnect removes the app from your store (while Cycles doesn't use it on the same store). The synced history stays in Workshop. Uninstalling the app in Shopify does the same; Workshop then says it's disconnected.

Use your own Shopify app

For a store that already has its own app from Shopify's Dev Dashboard. Everyone else: use Connect with Shopify above.

  1. In the Dev Dashboard, give your app these Admin API scopes: read_orders, write_orders, read_all_orders, read_draft_orders, write_draft_orders, read_products, read_inventory, read_locations, read_customers, write_customers, write_merchant_managed_fulfillment_orders. Release the version and install it on the store.
  2. Settings → Integrations → Shopify → Use your own Shopify app instead.
  3. Enter the store domain and paste the app's Client ID and Client secret (Dev Dashboard → your app → Settings).
  4. Save and test.

Workshop fetches a fresh token before each one expires, so it stays connected. A pasted Admin API token (older custom apps) also works, but tokens from Dev Dashboard apps expire after 24 hours: use the Client ID and secret instead.

Secrets are stored encrypted and never shown again.

Last updated 24 September 2026