Skip to content
Changelog

Report a bug

Connect Shopify

Use a Shopify connection when a teammate needs to read or update store data through the Shopify Admin API. Type connects with a Shopify app that you create and control, using that app’s Client ID, Client Secret, store URL, and access scopes.

You need:

  • Access to dev.shopify.com.
  • Permission to create a Shopify app in the Shopify Dev Dashboard.
  • Admin access to the Shopify store you want Type to use.
  • The store’s myshopify.com domain, such as acme.myshopify.com.
  • The Admin API scopes the teammate should have.

Shopify’s docs explain client credentials, the client credentials grant, and access scopes.

  1. Go to dev.shopify.com and sign in.

  2. Open Apps.

  3. Create a new app for your organization.

  4. Configure the app for the store Type should access.

  5. Add the Admin API scopes the teammate needs. We recommend starting with:

    read_analytics,read_customers,read_discounts,read_draft_orders,read_fulfillments,read_inventory,read_orders,write_orders,read_products,write_products,read_reports

    The app’s Access section should show those scopes:

    Shopify app details showing the recommended Admin API scopes and legacy install flow set to false
  6. Use the narrowest scopes that support the work you want the teammate to do.

  7. Release or deploy the app version if Shopify requires it.

  8. Install the app on the target Shopify store.

The app must be installed on the store before Type can exchange its credentials for an access token.

  1. In the Shopify Dev Dashboard, open the app.
  2. Go to the app’s Settings page.
  3. Copy the Client ID.
  4. Copy the Client Secret.

Keep the Client Secret private. Do not paste it into teammate instructions, skills, docs, or thread messages.

  1. Open the teammate that should use Shopify.
  2. Open the teammate’s connector settings.
  3. Search for Shopify.
  4. Choose the Shopify connector.
  5. Enter the Shopify store domain, such as acme.myshopify.com.
  6. Enter the Client ID from the Shopify app.
  7. Enter the Client Secret from the Shopify app.
  8. If the form shows a Scope field, enter the same Shopify access scopes you configured for the app. Use spaces or commas between scopes.
  9. Test the connection.
  10. Save the connection and keep it assigned to the teammate that needs Shopify access.

The Type connection form should show the Shopify store URL, organization access, OAuth2 token exchange, Client ID, and Client Secret fields:

Type Shopify connector form showing Store URL, organization access, OAuth2 token exchange, Client ID, and Client Secret fields

Type stores the credentials securely and uses them server-side to obtain Shopify Admin API access for the connected store.

For most Shopify teammates, we recommend this scope set:

read_analytics,read_customers,read_discounts,read_draft_orders,read_fulfillments,read_inventory,read_orders,write_orders,read_products,write_products,read_reports

Remove any scopes the teammate should not have. Start with read-only scopes when the teammate only needs reporting, analysis, or catalog lookup. Keep write scopes only when the teammate should create or update Shopify records.

For example, a reporting teammate might need read access to products and orders. An operations teammate that creates fulfillment or refund actions may need additional write scopes. Match the scopes in Shopify and Type so the app can request only the permissions you intend to grant.

  • Invalid credentials: Confirm the Client ID and Client Secret came from the same Shopify app that is installed on the store.
  • Store URL errors: Use the store’s myshopify.com domain, such as acme.myshopify.com.
  • Scope errors: Confirm the scopes entered in Type match scopes configured and granted in Shopify.
  • Access denied for a tool or endpoint: Add the missing scope in Shopify, release or deploy the updated app version if required, approve the change for the store, and reconnect or retest in Type.
  • Wrong store data: Confirm the app is installed on the intended store and that the store domain in Type matches that store.