Connect your Shopify store
Install the free TCG QuickShip app on your store and connect it to your Quick Ship account. Orders flow in, tracking flows back, and a copy sold on another marketplace lowers the matching Shopify variant.
Install from Shopify (recommended)
The TCG QuickShip app is free to install. Your Quick Ship plan is billed by Quick Ship, separately from your Shopify invoice (see Shopify app billing). Connecting a store is free on any plan; live order sync needs the Pro plan or above.
- In Quick Ship open Connections, click Connect on the Shopify card, enter your store address (the permanent one ending in .myshopify.com) and click Continue to Shopify.
- Shopify shows the permissions the app needs. Click Install. You are sent straight back to Connections with the store connected.
- Starting from the Shopify App Store instead? Install the app there, sign in to Quick Ship when asked, and click Connect this store on the banner that appears at the top of Connections. The banner waits for an hour.
- Use Sync on the Process Orders page to pull new orders. Live order sync for App Store installs (orders arriving as they are placed) is coming shortly; the switch on the Shopify card will say so until then.
To remove the app later, uninstall it from your Shopify admin (Settings → Apps and sales channels) and disconnect it here.
Advanced: connect with a custom app you built
Sellers who already created their own Shopify app can keep using it. Switch on I built a custom app in the connect dialog and follow the steps below.
Open app development from your store
In your Shopify admin go to Settings → Apps → Develop apps and click Build apps in Dev Dashboard. Shopify opens the Dev Dashboard in the organisation your store belongs to.
Create the app
Click Create app, choose Start from Dev Dashboard, and name it something you will recognise later, for example TCG QuickShip. The name is only shown to you.
Create a version with these scopes
Open Versions → Create version and in the version’s Admin API scopes list tick exactly these 9. Quick Ship checks for every one of them when you connect and refuses the connection if any is missing.
| Scope | Quick Ship uses it to |
|---|---|
read_orders | Import your open orders |
read_products | Match variants to your Quick Ship cards |
read_merchant_managed_fulfillment_orders | See which items in an order still need shipping |
write_merchant_managed_fulfillment_orders | Mark those items fulfilled when you buy a label |
read_fulfillments | Check tracking already on an order |
write_fulfillments | Push tracking numbers to Shopify |
read_inventory | Read variant stock levels |
write_inventory | Lower a variant when a copy sells elsewhere |
read_locations | Find the location that holds stock |
Rather than ticking them one by one, copy this list and paste it into the scopes field:
Under Webhooks set the API version to 2026-07. Leave the subscriptions list empty: Quick Ship registers its own when you turn on live order sync. Then click Release.
Install the app on your store
Back on the app’s Home tab click Install app, pick your store, and approve the permissions Shopify lists. They should match the table above. If you release a new version later with extra scopes, come back to this tab and install the new version so the store approves them.
Copy the Client ID and Client secret
Open the app’s Settings tab. Copy the Client ID and the Client secret (click the eye icon to reveal it). Shopify no longer shows a permanent Admin API token for new apps; Quick Ship uses these two values to mint short-lived tokens for your store itself.
Connect in Quick Ship
Go to the Connections page, find the Shopify card and click Connect. Enter your store’s permanent address (the one ending in .myshopify.com, shown under Settings → Domains), then the Client ID and Client secret, and click Connect.
Quick Ship immediately checks that the store exists, that the credentials work, that every scope was granted, and, if the store already has an order, that the app may read customer names and addresses. Anything wrong shows up in the dialog with a fix; see the troubleshooting table below.
Turn on live order sync
On the connected Shopify card flip Live order sync on. Quick Ship subscribes to new orders on your store, so each new order appears on the Process Orders page within seconds, with its inventory reserved and your other synced marketplaces lowered to match. Lowering Shopify after a sale elsewhere is set up in step 8, not by this switch. Turn it off at any time and Quick Ship removes the subscription.
Without live sync you can still press Sync Shopify Orders on the Process Orders page to pull open, unfulfilled orders on demand. Either way, buying a label pushes the tracking number back to Shopify and marks the items fulfilled.
Optional: link variants for stock sync
To let Quick Ship lower a Shopify variant when that card sells on another marketplace, give the variant the SKU tcgqs-<TCGplayer sku> in Shopify (for example tcgqs-1234567), make sure Shopify tracks its quantity at the location that holds stock, and click Link variants on the Shopify card. Every matching card with active stock in Quick Ship is designated to Shopify, except copies already listed on a marketplace whose live order sync is off; those are reported as skipped. Nothing is written to Shopify at link time; quantities only move when a copy sells elsewhere. Run it again after adding new variants.
shpat_. In the connect dialog flip I have a legacy Admin API token and paste it instead. Order sync, tracking push, and Link variants all work, but Live order sync stays off: Shopify signs each delivery with the app secret, which a token alone does not carry. To enable it, create a Dev Dashboard app as above, disconnect, and reconnect with its Client ID and secret.Troubleshooting
While connecting
| Where | Message | What to do |
|---|---|---|
| Connect dialog | That does not look like a Shopify store address. | Use the permanent address ending in .myshopify.com (Settings → Domains in your admin), or just the store handle. Custom domains are not accepted. |
| Connect dialog | Shopify rejected these credentials. | Re-copy the Client ID and Client secret from the app’s Settings tab (step 5). A secret you rotated in Shopify invalidates the old one. |
| Connect dialog | No Shopify store exists at that address. | Check the spelling of the store address. It must be the .myshopify.com address of the store the app is installed on. |
| Connect dialog | Shopify says this store is unavailable (frozen or locked). | Resolve the billing or lock issue in your Shopify admin, then try again. |
| Connect dialog | The app is missing these Admin API scopes: … | Go back to step 3, add every scope named in the message to a new version, release it, then install the new version from the app’s Home tab (step 4) so the store approves the added scopes. |
| Connect dialog | Your app is not yet approved for customer data. | The app was created at dev.shopify.com rather than from your store admin. In the Partner Dashboard open the app → App distribution → Choose distribution → Custom distribution, enter your store address, then try again. No reinstall is needed. |
| Connect dialog | Customer data access could not be confirmed yet. | Not an error. The store has no order to probe with yet, so the check runs when you turn on live order sync (or when the first order syncs). Nothing to do now. |
| Connect dialog | Something went wrong talking to Shopify. | Shopify or the network hiccupped. Wait a moment and try again; if it keeps happening, check status.shopify.com. |
| Connect dialog | This store is already connected to another QuickShip account. | A store can feed one Quick Ship account at a time. Disconnect it in the other account first, then connect it here. |
| Connect dialog | Shopify connections are not available for this account yet. | The Shopify integration is still rolling out. Ask us on Discord (discord.gg/CsBTEy4zGn) if you would like early access. |
| Connect dialog | Shopify accepted the credentials but the connection could not be saved. | Nothing was stored. Try again; if it persists, contact us with the time it happened. |
After connecting
| Where | Message | What to do |
|---|---|---|
| Live order sync switch | Reconnect with a Dev Dashboard app to enable live sync. | You connected with a legacy Admin API token. Shopify signs each order delivery with the app secret, which a legacy token does not have. Create a Dev Dashboard app (steps 1–5), disconnect, and reconnect with its Client ID and secret. |
| Live order sync switch | Live order sync is available on the Pro plan and above. | Upgrade your Quick Ship plan. Manual Sync on the Process Orders page keeps working on your current plan. |
| Live order sync switch | Live order sync is not available yet. | Live sync is still rolling out for this account. Use Sync Shopify Orders in the meantime. |
| Live order sync switch | Could not enable live order sync: … | Shopify refused the subscription; the rest of the message says why. The usual cause is customer-data access (see the connect-dialog row above). Fix it in Shopify, then flip the switch again. |
| Live order sync switch | Could not disable live order sync: … | Shopify could not be reached to remove the subscription, so the switch stays on. Try again in a minute. |
| Shopify card | Shopify refused the stored credentials on <date>. | The secret was rotated, the app was removed from the store, or the store closed. Disconnect and reconnect with the app’s current Client ID and secret. |
| Process Orders → Sync | Shopify is not connected or its credentials no longer work. | Reconnect Shopify on the Connections page. |
| Process Orders → Sync | Shopify has not granted this app access to customer data. | Orders would arrive without addresses. Give the app custom distribution in the Partner Dashboard (see the connect-dialog row above), then sync again. |
| Process Orders → Sync | Your Shopify store is frozen or locked. | Resolve that in your Shopify admin, then sync again. |
| Process Orders → Sync | Shopify rate limit reached. | Wait a minute and sync again. |
| Link variants | No variants linked: N unknown skus, N without QuickShip stock. | Variant SKUs must be tcgqs-<TCGplayer sku> (step 8) and the card must have active copies in Quick Ship. Fix the SKUs in Shopify or add stock, then run Link variants again. |
| Link variants | No variants to link. | No variant in the store carries a tcgqs-<TCGplayer sku> SKU, or the ones that do have inventory tracking off. Set the SKU (step 8), turn on Track quantity for the variant, and try again. |
| Link variants | N items listed elsewhere without live sync skipped | Those copies are already listed on a marketplace whose live order sync is off, so Quick Ship will not also count them for Shopify. Turn that marketplace’s live order sync on and run Link variants again. |
| Link variants | more variants remain — run again | The store has more tcgqs- variants than one run reads. Click Link variants again until the message goes away. |
| Link variants | Shopify inventory sync is not available yet. | Inventory sync is still rolling out for this account. |
| Link variants | Could not link variants: … | Shopify could not be read; the rest of the message says why. Try again, and check the Shopify card for a refused-credentials notice. |

