Docs · Setup
Connect Shopify POS in 5 minutes
One-time setup in Shopify Partners. After this every café running Shopify POS can install StockPilot from their admin → catalog + sales auto-sync.
Open Shopify Partners
Go to partners.shopify.com and sign in. Free Partners account if you don't have one — gives you free dev stores for testing.
Create a new app
Left nav → Apps → Create app → Create app manually(NOT “Use Shopify CLI” — we're not using their dev tooling).
App name
StockPilotApp URL field: paste https://stockpilot-app-production-2a53.up.railway.app
Configure OAuth callback
Open the app → Configuration tab → App URL + Allowed redirection URLs:
Allowed redirection URL
https://stockpilot-app-production-2a53.up.railway.app/api/integrations/shopify/callbackSave. Shopify rejects the OAuth handshake if this exact URL isn't in the allowed list — same trap as Square.
Copy API key + Secret + scopes
Same Configuration tab, scroll up to API credentials:
- API key— Shopify's name for OAuth client_id, 32 hex chars
- API secret key— Shopify's OAuth client_secret, 32 hex chars. Click Reveal.
Then under Configuration → Access scopesensure these are checked (Read access only — we don't mutate inventory):
- read_products
- read_inventory
- read_orders
- read_merchant_managed_fulfillment_orders
(Optional) Add a webhook subscription
For real-time sale push (vs polling), Shopify Webhooks support JSON POSTs to:
Webhook endpoint
https://stockpilot-app-production-2a53.up.railway.app/api/integrations/shopify/webhookConfiguration → Webhooks → add orders/create and orders/updated pointing at the URL above. HMAC verification uses your API secret key — no separate signing key needed (different from Square / Clover).
Paste into Railway
Railway → Variables → + New Variable twice:
SHOPIFY_CLIENT_ID=paste the API keySHOPIFY_CLIENT_SECRET=paste the API secret key
Railway redeploys automatically — takes ~60 seconds.
Test from Settings
Reload /settings. The Shopify POS row no longer errors. Click Connect Shopify. The app asks you for your {shop}.myshopify.com domain → redirects to Shopify's OAuth screen → install → return. Catalog starts syncing.