Shopify troubleshooting

Top Shopify issues — OAuth fails, token refresh expired, webhooks missed, scope health, multi-store, refund tracking. Fixes inline.

Written By Salvatore Sinigaglia

Last updated About 4 hours ago

Top Shopify issues — OAuth fails, token refresh expired, webhooks missed, scope health, multi-store, refund tracking. Fixes inline.

Shopify troubleshooting

Top 8 Shopify integration issues with symptom + cause + fix. For anything else, contact support@wevion.ai with your shop URL and workspace ID.

Who is this for

Mediabuyers and admins hitting a Shopify issue — sync stuck, missing orders, webhook problems.

1. OAuth install fails

Symptom: clicking Install app in Shopify Admin → error or redirect loop.

Cause:

  • App permissions revoked at shop level
  • Browser blocking redirect
  • Shop URL mismatch (using custom domain vs .myshopify.com)

Fix:

  • Use canonical .myshopify.com URL (NOT custom domain) at /connect/shopify
  • Enable popups + redirects for app.wevion.ai and accounts.shopify.com
  • Try a different browser (incognito, no extensions)
  • If app shows as already installed in Shopify Admin, uninstall first, then retry

2. Token refresh expired

Symptom: connector card yellow with "Token refresh expired".

Cause: refresh_token_expires_at in the past (rare for Shopify but possible after very long inactivity or app config change).

Fix:

  • Uninstall Wevion from Shopify Admin → Apps
  • Re-install via /connect/shopify (fresh OAuth flow)
  • New tokens issued; sync resumes; no data lost (existing Wevion data preserved)

3. Webhook events missing

Symptom: new order placed in Shopify Admin, doesn't appear in Wevion within 1 hour.

Cause:

  • Webhook delivery failed (Shopify retried but ultimately couldn't reach Wevion)
  • Webhook subscription lost (rare)
  • Wevion processing delay (very rare)

Fix:

  • Check Shopify Admin → Settings → Notifications → Webhooks: verify Wevion webhooks listed for orders/create, orders/updated, etc.
  • If missing: uninstall + reinstall app (re-subscribes webhooks)
  • Wait for 15-min polling cycle (backup mechanism catches missed events)
  • Force-sync from connector card menu if needed

4. Scope health warning

Symptom: connector card shows yellow with "Permission warning - some scopes missing".

Cause: granted scopes < required scopes. Happens when:

  • Shopify rolled out a new scope and Wevion now requires it
  • Store admin manually edited the app permissions in Shopify Admin

Fix:

  • Uninstall + reinstall app (re-grants all current required scopes)
  • After re-install, Wevion validates granted_scopes vs required_scopes; card turns green if match

5. Multi-store data confusion

Symptom: with 2+ Shopify stores connected, orders showing under wrong store.

Cause: each store should be its own shopify_config row. If somehow merged or mis-attributed, data routing confused.

Fix:

  • Verify at /connect/shopify: count of stores listed = your expected store count
  • Each store should show its own shop_domain (the .myshopify.com URL)
  • If duplicated entries: contact support for cleanup
  • If missing a store: install Wevion on that store separately

6. Refund not reducing attributed revenue

Symptom: refunded an order in Shopify, but Wevion's dashboard still shows full original revenue.

Cause:

  • refunds/create webhook missed
  • Sync delay (< 15 min, wait)
  • Refund issued before webhook subscription was active

Fix:

  • Wait 15 min for polling backfill
  • Check Shopify Admin → Notifications → Webhooks: verify refunds/create topic subscribed
  • Force-sync from connector card
  • For historical refunds (pre-Wevion install), contact support for CSV reimport

7. Custom checkout / one-page checkout missing data

Symptom: using a custom checkout extension (Shop Pay, Headless, etc.); orders sync but missing UTM data.

Cause: custom checkouts may not pass landing_site / referring_site to Shopify's order object.

Fix:

  • For Shop Pay: install Meta CAPI integration with extended browser pixel for attribution
  • For Headless: ensure your frontend captures UTM params and stores in order note or custom field
  • Configure Wevion to read your custom field for attribution (contact support for setup)

8. Currency mismatch

Symptom: store in EUR, Wevion workspace in USD, dashboard shows USD-converted values that differ from Shopify Admin.

Cause: FX rate timing — Wevion uses a daily FX rate from ExchangeRate-API.com for conversion; Shopify Admin uses its own rate.

Fix:

  • Per-store reports in Wevion are in native currency (no conversion) — match these to Shopify Admin
  • Cross-channel reports use workspace currency (auto-FX) — this is by design for multi-store aggregation
  • Difference within 2-3% is normal (FX timing)

When to contact support

Reach support@wevion.ai when:

  • Issue not in this list
  • Uninstall + reinstall doesn't fix
  • Need historical CSV reimport
  • Custom checkout integration

Include:

  • Workspace ID
  • Shop URL (xxx.myshopify.com)
  • Approximate timestamp
  • Exact error message

Response: 1-2 business days; priority on Pro/Enterprise.

Useful diagnostics

  • /connect/shopify → store detail drawer → Last sync + Last error + Scope health
  • Shopify Admin → Settings → Notifications → Webhooks: verify subscription list
  • Shopify Admin → Apps → Wevion: verify install state
  • Audit log filter: action: shopify_sync_failed (admin only)

FAQ

Will I lose Shopify data if I reconnect after a token refresh expired?

No. When your Wevion connector card shows "Token refresh expired," you uninstall Wevion from Shopify Admin → Apps and re-install via /connect/shopify. This fresh OAuth flow issues new tokens and sync resumes with no data lost — your existing Wevion data is preserved throughout the reconnection.

Which Shopify URL should I use to connect to Wevion?

Use the canonical .myshopify.com URL, not your custom domain, at /connect/shopify. A shop URL mismatch between a custom domain and the .myshopify.com address is a common cause of the OAuth install failing or looping. Also enable popups and redirects for app.wevion.ai and accounts.shopify.com, or try an incognito browser.

A new Shopify order isn't showing in Wevion — what should I do?

If a new order doesn't appear within an hour, the webhook delivery likely failed. In Shopify Admin, check Settings → Notifications → Webhooks that Wevion webhooks are listed for orders/create and orders/updated. Wevion's 15-minute polling cycle acts as a backup that catches missed events, and you can force-sync from the connector card menu.

Why does a refunded Shopify order still show full revenue in Wevion?

The refunds/create webhook was likely missed, or you're inside the sync delay. Wait 15 minutes for Wevion's polling backfill, then verify the refunds/create topic is subscribed in Shopify Admin → Notifications → Webhooks. Force-sync from the connector card if needed. For historical refunds from before install, contact support for a CSV reimport.

Why do Wevion and Shopify Admin show slightly different currency values?

This is FX rate timing. Wevion uses a daily FX rate from ExchangeRate-API.com to convert into your workspace currency, while Shopify Admin uses its own rate. Per-store reports in Wevion stay in native currency so they match Shopify Admin exactly; cross-channel reports use workspace currency by design. A difference within 2-3% is normal.