Shopify got disconnected
Dashboard shows "Shopify not connected" or orders aren't being created on Shopify. Guided re-OAuth procedure and post-reconnection verification.
TLDR: the Shopify OAuth token can expire or be revoked (store password change, app uninstalled). Reconnect from the Settings page, then run a real cart test and verify the store order.
Symptoms
- Dashboard โ Settings โ "Shopify connection" shows status "Not connected"
- OnboardingBanner above the dashboard says Shopify isn't linked
- WooshPayment orders marked
COMPLETEDbut don't show in Shopify Admin - API calls to Shopify rejected with 401
"Right after OAuth" case
If you've just completed OAuth but the sidebar/Settings say "Not connected":
Cause: the dashboard cached the old merchant snapshot in localStorage (pre-OAuth). The store is already updated in the DB but the client doesn't know yet.
Fix: Cmd+Shift+R (hard refresh). The Zustand store calls refreshMerchant() on mount and fetches the correct state from /api/merchant/me.
This bug has been resolved: the dashboard now calls refreshMerchant() on every mount of the /dashboard/* segment. If you still see it, it's stale browser cache โ a hard refresh is enough.
Real causes of disconnection
| Cause | Frequency |
|---|---|
| Merchant uninstalled the app from Shopify Admin | Common |
| Shopify store owner password change | Frequent |
| Store owner revoked access from Settings โ Apps | Frequent |
| Shopify invalidated the token for security | Rare |
Re-OAuth procedure
- WooshPayment Dashboard โ Settings โ Shopify connection
- Status shows "Not connected"
- Enter your
your-store.myshopify.com(you find it in Shopify Admin โ Settings โ Domains) - Click "Start OAuth"
- You're redirected to Shopify Admin with an OAuth prompt (scopes: read_products, write_orders, read_customers, write_script_tags, etc.)
- Install app
- You land back on WooshPayment with status "Connected"
- The ScriptTag is reinstalled automatically
After reconnecting, still repeat the real cart test before traffic.
What happens to pending orders
If during the disconnection period you have orders paid on WooshPayment but not synced to Shopify (Store order missing in the dashboard), WooshPayment automatically retries recovery through the reconciliation cron: it checks payment status on Whop, reuses the session idempotency key and retries store-order creation without creating duplicates.
For sessions still in PENDING or PROCESSING, open Dashboard โ Orders โ order and use Verify payment: the backend asks Whop directly and, if it finds a successful payment, updates the status. If the order remains COMPLETED without Store order after reconnecting and after the next reconcile run, send us the session token: we need to inspect the specific Shopify/Woo error.
Post-reconnection verification
- Create a test order (โฌ0.50) from your store
- Verify it appears in Shopify Admin โ Orders after Whop confirms the payment and WooshPayment syncs the store order
- Verify the WooshPayment Dashboard โ Orders shows it
COMPLETEDwith Store order populated
Prevention
Don't uninstall the app randomly
If you only need to update scopes or reconnect, start from our dashboard (Settings โ Shopify connection โ "Restart OAuth"). Uninstalling from Shopify Admin revokes everything and you'll have to start over.
Notify on password change
When the Shopify owner password changes, the access token is NOT automatically revoked by design, but Shopify sometimes invalidates tokens for anti-abuse. If you see a sudden 401 from Shopify webhooks, this likely happened.
Shopify app/uninstalled webhook
When a merchant uninstalls WooshPayment from Shopify Admin, we receive an app/uninstalled webhook on https://api.wooshpayment.com/webhooks/shopify/app-uninstalled. At that point we mark shopifyConnected: false. If you want to come back in, restart OAuth.
Troubleshooting
Re-OAuth says "Invalid shop"
You entered a Shopify domain that doesn't exist or is misspelled. Correct format: store-name.myshopify.com, not store-name.com.
Re-OAuth says "App already installed"
Open Shopify Admin โ Apps โ WooshPayment โ verify it's really installed. If yes, simply re-authorize from there ("Open app" link). If our OAuth flow fails with this error, the handoff JWT token likely expired: try logging out and back into WooshPayment before restarting OAuth.
After re-OAuth, orders still don't sync
- Wait briefly for webhook/order sync processing
- Verify in the dashboard that the order is
COMPLETEDand notPENDING - If it still fails โ write to us with the session token
WooCommerce equivalent
For Woo, "disconnection" means:
- REST API consumer key/secret revoked on Woo
- WordPress site URL changed
- HTTPS expired on your Woo domain
Procedure: Dashboard โ Integrations โ WooCommerce โ re-enter store URL, Consumer Key and Consumer Secret. Alternatively, do it from the onboarding "Platform" step if you are starting over.
Useful links
- Shopify integration โ initial setup
- Script tag debug โ if OAuth is OK but script tag isn't
- Payment fails