Skip to main content Skip to complementary content
Already have an account? Sign in

Shopify (v3)

Last updated: 9/15/2026

Shopify integration summary

Stitch’s Shopify integration replicates data using the Shopify GraphQL Admin API (v2025-01). Refer to the Schema section for a list of objects available for replication.

Shopify is now powered by GraphQL

We’ve enhanced the Stitch’s Shopify integration by replacing REST Admin API by the Shopify GraphQL API. This provides:

  • More structured and complete data
  • Better performance and scalability
  • Access to new fields that are unavailable in REST

What has changed?

The data structure has been reorganized for consistency and clarity. Some fields may look different or appear in new locations. Also, a few fields are deprecated from the Shopify side.

If you need help, you can compare the structures. Refer to Shopify documentation:

Check out our updated Shopify docs for stream-level details and examples.

Shopify feature snapshot

A high-level look at Stitch's Shopify (v3) integration, including release status, useful links, and the features supported in Stitch.

STITCH
Release status

Released on April 1, 2025

Supported by

Stitch

Stitch plan

Standard

API availability

Available

Singer GitHub repository

singer-io/tap-shopify

REPLICATION SETTINGS
Anchor Scheduling

Supported

Advanced Scheduling

Supported

Table-level reset

Unsupported

Configurable Replication Methods

Unsupported

DATA SELECTION
Table selection

Supported

Column selection

Supported

Select all

Supported

TRANSPARENCY
Extraction Logs

Supported

Loading Reports

Supported

Connecting Shopify

Shopify setup requirements

To set up Shopify in Stitch, you need:

  • Admin access in Shopify. This is required to create and manage custom apps.

    Note: If you’re on a Shopify Plus plan, the permissions required may differ. Store owners can grant users permissions to manage apps and custom integrations. In general, app management permissions should be sufficient.

    Refer to the Shopify Staff permissions documentation for more information.

  • Access to Shopify Developer Dashboard with app management permissions. You’ll use this to create a custom app and generate credentials.

  • Note: Access tokens refresh automatically every 24 hours and are managed server-side by Stitch. You don’t need to manually refresh your credentials.

Step 1: Add Shopify as a Stitch data source

  1. Sign into your Stitch account.
  2. On the Stitch Dashboard page, click the Add Integration button.

  3. Click the Shopify icon.

  4. Enter a name for the integration. This is the name that will display on the Stitch Dashboard for the integration; it’ll also be used to create the schema in your destination.

    For example, the name “Stitch Shopify” would create a schema called stitch_shopify in the destination. Note: Schema names cannot be changed after you save the integration.

Step 2: Create a Shopify custom app

A custom app allows you to securely generate credentials that Stitch will use to authenticate and replicate data from your Shopify store.

To create a custom app:

  1. Log into your Shopify Admin Dashboard.
  2. In the sidebar, go to Settings > Apps and integrations.
  3. Click Develop apps (or App and sales channel settings if using Shopify Plus).
  4. Click Create an app.
  5. Enter a name for your app (for example: Stitch).
  6. Click Create app.

The app is created. Do not install it. You need to request some Shopify access first. See the next step.

Step 3: Request access from Shopify

To access certain Shopify API scopes, you must request access from Shopify before installing your custom app. The following scopes require explicit approval:

read_all_orders scope

By default, you only have access to the last 60 days of orders. To access all historical orders, you must request the read_all_orders scope in the Shopify Partners dashboard.

To request the read_all_orders scope:

  1. Go to the Shopify Partners dashboard.
  2. Navigate to Apps and select your app.
  3. Open the API access requests section.
  4. In the Read all orders section, click Request access.
  5. In the access request justification, specify that the app needs full read-only access to historical orders for long-term analytics, reconciliation, and reporting.
  6. Submit the request and wait for Shopify approval.

After Shopify approves the request, you can add the read_all_orders scope to your app scope list. If the app was already installed before this permission was granted, you must uninstall and reinstall the app for the new scope to take effect.

read_users scope

To use the read_users scope, one of the following conditions must be true:

  • The app must be a finance embedded app.
  • The app must be installed on a Shopify Plus or Advanced store.

Contact Shopify Support to enable this scope if required.

Step 4: Install the Shopify custom app

Follow this step only if you’ve created the app and requested access from Shopify. See the previous steps.

  1. Go to the Shopify Partners dashboard.
  2. In the Configuration tab, click Admin API access scopes.
  3. Select or copy-paste the following required scopes: read_orders,read_all_orders,read_customers,read_products,read_checkouts,read_inventory,read_locations, read_assigned_fulfillment_orders,read_merchant_managed_fulfillment_orders,read_third_party_fulfillment_orders.

    Scope Purpose
    read_orders Replicate order data
    read_all_orders Replicate historical order data
    read_customers Replicate customer information
    read_products Replicate product catalog
    read_checkouts Replicate checkout data
    read_inventory Replicate inventory levels
    read_locations Replicate store locations
    read_assigned_fulfillment_orders Replicate assigned fulfillment orders
    read_merchant_managed_fulfillment_orders Replicate merchant-managed fulfillment orders
    read_third_party_fulfillment_orders Replicate third-party fulfillment orders
  4. Click Save.
  5. In the API credentials tab, under Admin API access token, click Reveal token once. You’ll see your Client ID and Client Secret.
  6. Store these credentials securely. You need them in the next step. Your Client Secret will only be visible once after initial creation. Store it securely before navigating away.
  7. Click Install app.

Step 5: Define the historical replication start date

The Sync Historical Data setting defines the starting date for your Shopify integration. This means that data equal to or newer than this date will be replicated to your data warehouse.

Change this setting if you want to replicate data beyond Shopify’s default setting of 1 year. For a detailed look at historical replication jobs, check out the Syncing Historical SaaS Data guide.

Step 6: Create a replication schedule

In the Replication Frequency section, you’ll create the integration’s replication schedule. An integration’s replication schedule determines how often Stitch runs a replication job, and the time that job begins.

Shopify integrations support the following replication scheduling methods:

To keep your row usage low, consider setting the integration to replicate less frequently. See the Understanding and Reducing Your Row Usage guide for tips on reducing your usage.

Step 7: Set objects to replicate

The last step is to select the tables and columns you want to replicate. Learn about the available tables for this integration.

Note: If a replication job is currently in progress, new selections won’t be used until the next job starts.

For Shopify integrations, you can select:

  1. Individual tables and columns

  2. All tables and columns

Click the tabs to view instructions for each selection method.

  1. In the integration’s Tables to Replicate tab, locate a table you want to replicate.
  2. To track a table, click the checkbox next to the table’s name. A blue checkmark means the table is set to replicate.

  3. To track a column, click the checkbox next to the column’s name. A blue checkmark means the column is set to replicate.

  4. Repeat this process for all the tables and columns you want to replicate.
  5. When finished, click the Finalize Your Selections button at the bottom of the screen to save your selections.
  1. Click into the integration from the Stitch Dashboard page.
  2. Click the Tables to Replicate tab.

  3. In the list of tables, click the box next to the Table Names column.
  4. In the menu that displays, click Track all Tables and Fields:

    The Track all Tables and Fields menu in the Tables to Replicate tab
    The Track all Tables and Fields menu in the Tables to Replicate tab

  5. Click the Finalize Your Selections button at the bottom of the page to save your data selections.

Initial and historical replication jobs

After you finish setting up Shopify, its Sync Status may show as Pending on either the Stitch Dashboard or in the Integration Details page.

For a new integration, a Pending status indicates that Stitch is in the process of scheduling the initial replication job for the integration. This may take some time to complete.

Free historical data loads

The first seven days of replication, beginning when data is first replicated, are free. Rows replicated from the new integration during this time won’t count towards your quota. Stitch offers this as a way of testing new integrations, measuring usage, and ensuring historical data volumes don’t quickly consume your quota.

Shopify replication

Replicating order refunds

To extract order refund data, Stitch queries every order in your account. If you have the order_refunds table selected for replication, the process can potentially be very slow depending on how many orders and refunds exist in your Shopify account. As tables are extracted one at a time, this could cause extraction to not proceed for days at a time. To ensure timely replication of your other selected tables, consider creating a separate integration for only the order_refunds table.

Note: Creating a separate integration for your order_refunds table may negatively affect your Shopify API quota.

Shopify table reference

abandoned_checkouts

The abandoned_checkouts table contains info about abandoned checkouts. Shopify considers a checkout to be abandoned when a customer has entered billing and shipping details, but hasn’t completed the purchase.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updatedAt

Useful links

abandoned_checkouts schema on GitHub

Shopify API method

collections

The collections table contains info about the collections.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updatedAt

Useful links

collections schema on GitHub

Shopify API method

customers

The customers table contains info about the shop’s customers. This includes their contact details, order history, and email marketing preferences.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updatedAt

Useful links

Shopify documentation

customers schema on GitHub

Shopify API method

events

The events table contains info about events in the shop.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

createdAt

Useful links

Shopify documentation

events schema on GitHub

Shopify API method

fulfillment_orders

The fulfillment_orders table contains datails about fulfillment orders.

Replication Method

Key-based Incremental

Primary Key

id

Useful links

Shopify documentation

fulfillment_orders schema on GitHub

Shopify API method

inventory_items

The inventory_items table contains info about items in a shop.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updatedAt

Useful links

Shopify documentation

inventory_items schema on GitHub

Shopify API method

inventory_levels

The inventory_levels table contains info about quantities of an inventory item for a location.

Replication Method

Key-based Incremental

Primary Keys

id

Replication Key

updatedAt

Useful links

Shopify documentation

inventory_levels schema on GitHub

Shopify API method

locations

The locations table contains info about .

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

createdAt

Useful links

Shopify documentation

locations schema on GitHub

Shopify API method

metafields_collections

The metafields_collections table contains info about metafields for collections.

Replication Method

Key-based Incremental

Primary Keys

id

Replication Key

updatedAt

Useful links

metafields_collections schema on GitHub

Shopify API method

metafields_customers

The metafields_customers table contains info about metafields for customers.

Replication Method

Key-based Incremental

Primary Keys

id

Replication Key

updatedAt

Useful links

metafields_customers schema on GitHub

Shopify API method

metafields_orders

The metafields_orders table contains info about metafields for orders.

Replication Method

Key-based Incremental

Primary Keys

id

Replication Key

updatedAt

Useful links

metafields_orders schema on GitHub

Shopify API method

metafields_products

The metafields_products table contains info about metafields for products.

Replication Method

Key-based Incremental

Primary Keys

id

Replication Key

updatedAt

Useful links

metafields_products schema on GitHub

Shopify API method

order_refunds

The order_refunds table contains info about refunds associated with orders.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

createdAt

Useful links

order_refunds schema on GitHub

Shopify API method

order_shipping_lines

The order_shipping_lines table contains the shipping details that the customer chose for their order.

Replication Method

Key-based Incremental

Primary Key

id

Useful links

Shopify documentation

order_shipping_lines schema on GitHub

Shopify API method

orders

The orders table contains info about a shop’s completed orders.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updatedAt

Useful links

Shopify documentation

orders schema on GitHub

Shopify API method

product_variants

The product_variants table contains info about variants that can be added to a product to represent one version of a product with several options.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updatedAt

Useful links

Shopify documentation

product_variants schema on GitHub

Shopify API method

products

The products table contains info about a shop’s products.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updatedAt

Useful links

Shopify documentation

products schema on GitHub

Shopify API method

transactions

The transactions table contains info about transactions.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

createdAt

Useful links

transactions schema on GitHub

Shopify API method

Did this page help you?

If you find any issues with this page or its content – a typo, a missing step, or a technical error – please let us know!