Connections
Connect Shopify
Two ways in. Try the easy one first.
If Setup shows an Install button on the Shopify card, use it: type your my-store.myshopify.com address, press it, and Shopify asks your permission on its own screen. Done in a minute, and it sets up the order webhooks for you.
If there is no such button, or it fails, take the longer road below. You make a small private app inside your own Shopify admin and paste two values into Shopdeck. Nothing is submitted to Shopify for approval and nobody reviews anything.
Make the app inside your Shopify admin
Open the developer section of your admin
Go to admin.shopify.com and click, in this order:
SettingsApps and sales channelsDevelop appsThe first time, Shopify asks you to allow custom app development. Say yes — it is a switch on your own shop, not a request to anyone.
On newer Shopify accounts this has moved to the Shopify Dev Dashboard under your organisation. The steps are the same and the screens carry the same names.
Create the app
Press Create an app. Give it a name — Shopdeck is fine — and confirm.
Switch on twelve permissions
ConfigurationAdmin API integrationYou get a long list of checkboxes with a search box above it. Tick exactly these twelve, searching for each one:
Paste each of these into the search boxread_orders read_all_orders read_products read_inventory read_customers read_returns read_discounts read_price_rules read_analytics read_shopify_payments_payouts read_shopify_payments_accounts read_shopify_payments_disputesTwo of these do real work
Without read_all_orders Shopify only ever hands over the last 60 days, so your older history never arrives and long date ranges look empty.
The three shopify_payments permissions are what turn the Cash flow screen from a guess into your actual payouts.
Press Save at the top.
Install the app on your own shop
Open the API credentials tab and press Install app. Confirm. This installs it on your own shop only — it is not published anywhere.
Copy the two values
Stay on API credentials. You need:
- API key or Client ID — a 32-character string of letters and numbers. Copy it.
- API secret key or Client secret — starts with shpss_. Click Reveal and copy it.
The secret is shown once
Copy it now and paste it into Shopdeck before you close the tab. If you lose it you cannot look it up again — you have to create a new one, which invalidates the old.
Paste them into Shopdeck
Open the Shopify card in Setup
In Shopdeck, left-hand menu → Setup. The Shopify card is the first one. Or go straight to app.shopdeck.io/setup?service=shopify — that opens the page with the right card highlighted.
Fill in three fields and save
Leave everything else blank. Press Save.
Field in Shopdeck What goes in it, and where to find it Store domain Your .myshopify.com address, for example my-store.myshopify.com. Not your own domain, even though that is what customers see. Find it in Shopify under Settings → Domains — it is the one Shopify calls your permanent domain. Client ID The 32-character key from the API credentials tab. Client secret The value starting with shpss_ from the same tab. Check that it worked
Press Test connection. It should answer Connected to {your shop name} and show your currency and plan. The badge at the top of the card turns into a green Configured.
You are done when
You are done when the card says Configured, the test names your shop, and Profit Dashboard → Overview shows orders instead of a setup panel. The first full sync takes a few minutes — press Full sync at the top right to start it.
The other fields, and when you need them
All of these can stay empty. They exist for particular situations.
| Field in Shopdeck | What goes in it, and where to find it |
|---|---|
| Access token | Filled in for you by the Install button. Only paste one here if you generated it yourself in your shop’s admin. When this is set, Client ID and Client secret are no longer required. |
| API version | Leave blank. Shopdeck uses a current version by itself. Only fill this in if you have been told to use an older one. |
| Webhook signing secret | For getting orders in seconds instead of minutes. See Get orders in seconds — that page is entirely about this one field. |
| Storefront URL | Only if the landing pages Shopdeck builds must point somewhere other than your Shopify primary domain. Otherwise Shopdeck reads your domain from Shopify itself. |
When it does not work
“Use the myshopify.com domain, e.g. my-store.myshopify.com”
Why: You typed your own domain — the one customers see — instead of the Shopify one.
Fix: In Shopify: Settings → Domains. The address ending in .myshopify.com is the one, even if it is not the one you advertise.
Test connection fails with an authentication error
Why: Almost always a space that came along with a copy-paste, or the app was never installed on the shop in step 4.
Fix: Go back to API credentials and confirm the app says it is installed. Then re-copy both values, taking care not to select the space at the end. Paste, Save, test again.
Shopify shows “Oauth error missing_shopify_permission: read_all_orders” when you press Install
Why: Reading orders older than 60 days is a permission Shopify has to approve per app. Your app has not been approved for it yet, so instead of the permission screen Shopify shows this error page and stops.
Fix: Press the plain Install button on the Shopify card in Setup: for an app you registered yourself it asks for the last 60 days only, which Shopify grants to any app, and everything else (products, payouts, webhooks, tracking) works right away. Want the older orders too? In your Shopify Partner Dashboard open your app → API access and request access to Read all orders. Once Shopify has approved it, use the install with full order history link under the button.
Shopify says “your app isn’t approved to access protected customer data at this time”
Why: Two things have to be in place before Shopify hands an app customer data: the app must have a distribution method, and the data protection details must be filled in. Without the first, the second is never approved — even when every answer is yes. Apps installed on your own store are not reviewed by anyone; only App Store apps are.
Fix: In the Partner Dashboard open Apps → your app → Distribution (also called Choose distribution). Pick Custom distribution, enter your shop’s my-store.myshopify.com address, untick multi-store installs, and press Generate link. This choice cannot be changed later, so pick custom, not public. Then, under API access → Protected customer data access, choose Analytics as the reason, select only Address among the fields, and answer the data protection questions — the Security and incidents page gives every answer as Shopdeck is actually run.
It connects, but old orders are missing
Why: read_all_orders was not switched on, so Shopify only ever hands over the last 60 days.
Fix: Add that permission in Configuration → Admin API integration, save, and press Full sync in Shopdeck. Check the result on Health and syncing, which lists every permission and whether Shopify granted it.
Cash flow says payouts are not available
Why: The three payments permissions are missing.
Fix: Add read_shopify_payments_payouts, read_shopify_payments_accounts and read_shopify_payments_disputes, save, and run a full sync.