Shopify signs in the staff user of a specific store. It authenticates against the Admin API, so the identity it establishes is a merchant, not a shopper.

## Copy the redirect URI

In the [Authdog console](https://console.authdog.com), select the project and environment, open **Authentication > Providers**, find **Shopify**, and click **Enable**. Copy the redirect URI shown in the form:

```url
https://identity.authdog.com/api/v1/callback/<connectionId>
```

## Create the application

1. Open the [Shopify Partner dashboard](https://partners.shopify.com/) and create an app, or create a custom app in the store's admin.
2. Under **App setup**, add the redirect URI from Authdog to the **Allowed redirection URL(s)**.
3. Request the `read_products`, `read_orders`, and `read_customers` scopes.
4. Copy the **Client ID** (API key) and **Client secret**.
5. Note the store's `myshopify.com` host, that is the Domain URI.

> **Note**
>
> This connector is for merchant and staff sign-in through the Admin API.
> It is not Shopify's customer-account login, and it does not authenticate shoppers.

## Configure Authdog

| Field | Value |
| --- | --- |
| **Client ID** | The client identifier from the provider |
| **Client Secret** | The client secret from the provider |
| **Domain URI** | The store's myshopify host, e.g. `https://acme.myshopify.com` |

Save, then toggle the connection **active**.

## What Shopify returns

Authdog requests the `read_products read_orders read_customers` scopes and reads the profile from ``<domain>/admin/api/2024-04/shop.json``.

The shop endpoint returns the store record (shop id, name, and the shop owner's email), which Authdog uses as the profile.

Because the Domain URI names one store, one connection signs in one store. A multi-store product needs a connection per store, or a different integration pattern.

## Test it

1. Open your environment's hosted sign-in page, or link to `https://identity.authdog.com/api/v1/signin/<connectionId>`.
2. Select the Shopify button and complete the flow.
3. Confirm the user appears under **Users** in the console with a Shopify identity linked.

## Troubleshooting

| Symptom | Cause |
| --- | --- |
| `invalid_request: redirect_uri is not whitelisted` | The URI is missing from the allowed redirection URLs |
| `403` from the shop endpoint | The app lacks the requested read scopes on that store |
| Redirect or callback URL error | The URI registered with the provider does not match Authdog's exactly |
| Works in one environment only | Each environment has its own `connectionId`, and so its own redirect URI to register |

## Related

| Read | To learn how to |
| --- | --- |
| [Connectors](/docs/connectors) | Set up any other social provider |
