# How to connect to Shopify

Connecting your Shopify store to Apideck has two parts: you create a custom app in your own Shopify Dev Dashboard, then you enter that app's details in Vault.

**What you hand over, and what happens after that.** You never give Apideck your Shopify login. You create your own app and pass on its **Client ID** and **Client Secret**, together with your shop name. Apideck exchanges those for a Shopify access token that stays valid for 24 hours, and requests a fresh one automatically before it runs out. So the token expiring is not something you have to watch, renew or diary: your Client ID and Client Secret keep working until you change them in Shopify, which means uninstalling the app or rotating its secret.

## Before you start

- **Who can do this.** The store owner can create a custom app by default. A staff member needs the "App development > Develop" permission, granted by the store owner. Collaborator accounts cannot open the Shopify Dev Dashboard at all, so a collaborator cannot complete these steps. This is a common reason the screens below do not appear.
- **One store per app.** A custom app installs on a single store. Installing the same app across several of your stores only works when those stores belong to one shared Shopify Plus organisation. Otherwise, repeat these steps for each store and create one connection per store.
- **Customer details depend on your Shopify plan.** Reading customer name, address, phone and email counts as Level 2 protected customer data at Shopify, which requires the Grow plan or higher. On a lower plan you can still connect and read orders and products, but those customer fields come back as inaccessible. Shopify's [protected customer data](https://shopify.dev/docs/apps/launch/protected-customer-data) page explains the levels. That page is written mostly for public apps listed on the Shopify App Store, which must apply to Shopify for approval. A custom app like this one does not: your plan is the only gate, so there is nothing to submit and nobody to wait for.

Steps:

1. [Create a Shopify App](#1-create-a-shopify-app)
2. [Vault Connection Setup](#2-vault-connection-setup)

## 1. Create a Shopify App

### Login to your Shopify account

Log in to your [Shopify account](https://accounts.shopify.com/).

![Shopify - Login](https://res.cloudinary.com/apideck/image/upload/v1689600077/docs/connectors/shopify/shopify-admin-login.png)

### Navigate to the app section

From the left navigation, click on the "Apps" and click on "App Settings" or click on "Settings" > "Apps".

![Shopify - Goto Apps](https://res.cloudinary.com/apideck/image/upload/v1689599581/docs/connectors/shopify/shopify-admin-home.png)

Click on the "Develop apps" option at the top right section of the page.

![Shopify - Apps](https://res.cloudinary.com/apideck/image/upload/v1768969874/docs/connectors/shopify/shopify-app-admin.png)

Click on the "Develop" option to navigate to the Shopify Dev Dashboard.

![Shopify - App Development Overview](https://res.cloudinary.com/apideck/image/upload/v1768970277/docs/connectors/shopify/shopify-develop-app.png)

### Create your custom app

You are now redirected to the Shopify Dev Dashboard.

![Shopify - Dev Dashboard](https://res.cloudinary.com/apideck/image/upload/v1772016830/docs/connectors/shopify/shopify-dev-dashboard.png)

Click on the "Create app" button and enter your app name.

![Shopify - Create app](https://res.cloudinary.com/apideck/image/upload/v1772017006/docs/connectors/shopify/shopify-dd-create-app.png)

After creating the app, you will be redirected to the app versions page.

![Shopify - App versions](https://res.cloudinary.com/apideck/image/upload/v1772017148/docs/connectors/shopify/shopify-dd-app-versions.png)

### Configure Admin API scopes

To access the data from your Shopify account, you need to configure the Admin API scopes.

Click on the "Select scopes" button to configure the Admin API scopes or directly enter scopes as a comma-separated list.

![Shopify - Select Scopes](https://res.cloudinary.com/apideck/image/upload/v1772017326/docs/connectors/shopify/shopify-dd-select-scopes.png)

The scopes below are the ones we suggest for reading your Shopify data through Apideck. They are a recommendation rather than a fixed requirement: Apideck does not enforce a scope list, so choose the ones matching the data you want to share. Shopify offers a great many scopes, so use the search box to find each one.

Suggested scopes for reading data from your Shopify account:
- read_assigned_fulfillment_orders
- read_customers
- read_customer_merge
- read_discounts
- read_draft_orders
- read_fulfillments
- read_fulfillment_constraint_rules
- read_gift_cards
- read_inventory
- read_online_store_pages
- read_locations
- read_merchant_managed_fulfillment_orders
- read_metaobjects
- read_orders
- read_payment_terms
- read_price_rules
- read_product_listings
- read_products
- read_purchase_options
- read_returns
- read_shipping
- read_locales

Shopify only returns orders from the last 60 days by default. To read older orders, the app also needs the `read_all_orders` scope, which Shopify must approve first; see [Shopify's access scopes documentation](https://shopify.dev/docs/api/usage/access-scopes) for how to request it. Once approved, add `read_all_orders` alongside `read_orders`.

The list is deliberately broad and covers more than the connector reads today, so you can safely narrow it to the data you want to share. Keep the order, product and customer scopes if you want Apideck to notify your application when something changes in your store: Apideck registers those notifications with Shopify on your behalf when the connection goes live, and Shopify only allows them for topics your scopes cover.

Once you have selected the required scopes, click on the "Done" button to save the configuration.

Before releasing, set the version's **Webhooks API version** to `2026-10`, the Admin API version Apideck calls. Shopify formats webhook payloads using this app setting, not the version in Apideck's requests, and existing subscriptions keep their version until the app is updated.

Click on "Release" on the versions page. You can provide a version name and message, then release the app.

![Shopify - Release App](https://res.cloudinary.com/apideck/image/upload/v1772017559/docs/connectors/shopify/shopify-dd-release-app.png)

### Retrieve the Client Credentials and Install App

Navigate to the "Settings" section to retrieve client credentials.

![Shopify - Client Credentials](https://res.cloudinary.com/apideck/image/upload/v1772018136/docs/connectors/shopify/shopify-dd-client-credentials.png)

Navigate to the "Home" section to install app, click on the "Install app" button to install the app.

![Shopify - App install](https://res.cloudinary.com/apideck/image/upload/v1772018277/docs/connectors/shopify/shopify-dd-install-app.png)

After this step, you will be redirected to Shopify to install the app in your store by clicking on "Install".

## 2. Vault Connection Setup

Now that you have installed the Shopify app with client credentials, you're ready to fill out your credentials in Vault.

![Shopify Vault Form](https://res.cloudinary.com/apideck/image/upload/v1772018543/docs/connectors/shopify/shopify-vault-cc.png)

In Vault, you have to fill out the following fields:
- **Shop**: which refers to the shop name of your Shopify account. Enter only the middle part of your store address: for `https://my-store.myshopify.com`, enter `my-store`. Vault adds the rest of the address for you.
- **Client ID**: which refers to the Client ID of your Shopify app
- **Client Secret**: which refers to the Secret of your Shopify app

Click **Save** after completing the form and then click on **Authorize**. Your Shopify account is now connected.

Apideck checks the connection by reading your shop details, so a successful authorization also confirms that the app is installed and the credentials are accepted.

## Notes and troubleshooting

- **You cannot find "Develop apps" or the Dev Dashboard.** Check which account you are signed in with. A staff account needs the "App development > Develop" permission from the store owner, and a collaborator account cannot reach the Dev Dashboard at all.
- **Customer name, address, phone or email comes back as inaccessible.** That data requires the Grow plan or higher on the store you connected. Orders, products and shop data are not affected. This is a plan setting at Shopify, not something the connection can override.
- **You need extra data after connecting.** Add the scopes in the Dev Dashboard and release a new version of the app: the released version is what applies to the store.
- **You have more than one store.** Create one app and one Vault connection per store, unless your stores sit in a single shared Shopify Plus organisation.
- **The connection keeps failing after the steps above.** Confirm that the app is installed on the store and that the Client Secret was copied in full, then contact [Apideck Support](https://help.apideck.com/en/articles/7774658).
