What you need
- A Shopify user who can build and install apps for the target store.
- Access to the Shopify Dev Dashboard for the organization that owns the store.
- A Permute workspace where you can create connectors.
1. Create the Shopify app
- Open the Shopify Dev Dashboard.
- Confirm the target store appears under Stores in the same organization.
- Select Apps, then Create app.
- Under Start from Dev Dashboard, name the app. For example, “Permute Data Connector.”
- Select Create.

2. Configure an app version
Open Versions and select Create version. A version is Shopify's immutable snapshot of the app's URLs, access scopes, and API settings.
- Set App URL to
https://shopify.dev/apps/default-app-home. - Leave Embed app in Shopify admin turned off.
- Leave Use legacy install flow turned off so Shopify manages installation.
- Paste the scopes below into Shopify's main Scopes field.
- Leave Shopify's Optional scopes field empty.
- Select Release.
Minimum connection scopes
These five scopes are required. The connector will reject the connection if any one is missing.
read_products,read_inventory,read_locations,read_orders,read_customers
Recommended broad-access scopes
For the highest-coverage integration, use the complete list below. These are read-only permissions. Permute does not request Shopify write scopes.
read_products,read_inventory,read_locations,read_orders,read_customers,read_draft_orders,read_returns,read_discounts,read_payment_terms,read_assigned_fulfillment_orders,read_merchant_managed_fulfillment_orders,read_third_party_fulfillment_orders,read_marketplace_fulfillment_orders,read_fulfillments,read_shipping,read_inventory_transfers,read_inventory_shipments,read_store_credit_accounts,read_store_credit_account_transactions,read_shopify_payments_accounts,read_shopify_payments_payouts,read_shopify_payments_disputes,read_shopify_payments_dispute_evidences,read_markets,read_publications,read_product_listings,read_marketing_events,read_metaobject_definitions,read_metaobjects,read_files,read_content,read_online_store_navigation,read_legal_policies,read_locales,read_translations

What the expanded scopes unlock
| Data area | Additional Shopify scopes |
|---|---|
| Draft orders, returns, discounts, and payment terms | read_draft_orders, read_returns, read_discounts, read_payment_terms |
| Fulfillment orders, services, carrier services, and delivery profiles | read_assigned_fulfillment_orders, read_merchant_managed_fulfillment_orders, read_third_party_fulfillment_orders, read_marketplace_fulfillment_orders, read_fulfillments, read_shipping |
| Inventory transfers and shipments | read_inventory_transfers, read_inventory_shipments |
| Store credit accounts and transactions | read_store_credit_accounts, read_store_credit_account_transactions |
| Shopify Payments payouts, balance transactions, disputes, and evidence | read_shopify_payments_accounts, read_shopify_payments_payouts, read_shopify_payments_disputes, read_shopify_payments_dispute_evidences |
| Markets and product publication status | read_markets, read_publications, read_product_listings |
| Marketing, metaobjects, files, site content, policies, locales, and translations | read_marketing_events, read_metaobject_definitions, read_metaobjects, read_files, read_content, read_online_store_navigation, read_legal_policies, read_locales, read_translations |
3. Install the app on the store
- Return to the app's Overview page.
- In the Installs card, select Install app.
- Select the target store, review the read permissions, and confirm installation.
- Return to the Dev Dashboard and confirm the installation count increased.
The app must be installed before Permute can exchange its client credentials for an access token. Shopify does not display a permanent Admin API token for this app type.

4. Copy the connection details
Open the app's Settings page and copy:
- Client ID
- Client secret
Copy the permanent store domain
- Open Shopify Admin for the target store and select Settings.
- In the shop settings menu, select Domains.
- Find the domain ending in
.myshopify.com, such asexample-store.myshopify.com. - Copy the domain name exactly as shown.
Copy only the myshopify.com domain name. Do not include https://, a URL path, an admin.shopify.com address, or a custom storefront domain.


myshopify.com value from the page heading.5. Add Shopify in Permute
- Open the target Permute workspace.
- Go to Connectors and select Add connector.
- Choose Shopify.
- Enter a recognizable connector name.
- Enter the permanent Shopify store domain, Client ID, and Client secret.
- Choose Everything to ingest every table allowed by the granted scopes, or Selected only to restrict the connector to explicitly selected tables.
- Select Connect.
Access orders older than 60 days
Shopify normally limits read_orders to the recent order window. To make the complete order history available, request Shopify approval for read_all_orders from the app's Request access page.
- Submit Shopify's Read all orders access request and explain the Permute analytics use case.
- Wait for Shopify to approve the request.
- Create a new app version and add
read_all_ordersto the main Scopes field. - Release the version and approve the updated store permissions.
- Run or wait for the next Permute sync.
The Client ID and Client secret do not change. Permute checks the app's granted scopes and automatically uses the expanded order history after Shopify grants it.
Change access later
When you add or remove Shopify scopes:
- Create a new version in the Dev Dashboard.
- Update the main Scopes field and release the version.
- Open or reinstall the app on the store to approve any added permissions.
- Run the connector again. Credentials only need replacement if you rotated the client secret.
Troubleshooting
| Message or symptom | What to check |
|---|---|
shop_not_permitted or authentication fails | The app and store are not in the same Shopify organization, or the app is not installed. |
| Missing required scopes | Add all five minimum scopes to the main Scopes field, release a version, and approve the update. |
| Connector succeeds but some tables are absent | The relevant expanded scope is missing, the table was not selected, or the store has no matching data. |
| Only recent orders are visible | read_all_orders has not been approved and granted. |
| Shopify Payments access denied | Confirm all Payments scopes, Shopify Payments activation, and the installing user's payout permission. |
| A bulk query does not finish | Confirm the app is still installed and retry the connector sync. Permute cancels active operations after approximately 13 minutes so the sync can fail safely. |