Shopify
This page contains the setup guide and reference information for the Shopify source connector.
Prerequisites
- An active Shopify store.
- If you are syncing data from a store that you do not own, you will need to request access to your client's store (not required for account owners).
- For Airbyte Open Source users: A custom Shopify application with
read_
scopes enabled.
Setup guide
This connector supports OAuth2.0 and API Password (for private applications) authentication methods.
Set up Shopify
For existing Airbyte Cloud customers, if you are currently using the API Password authentication method, please switch to OAuth2.0, as the API Password will be deprecated shortly. This change will not affect Airbyte Open Source connections.
For Airbyte Cloud:
- Log into your Airbyte Cloud account.
- Click Sources and then click + New source.
- On the Set up the source page, select Shopify from the Source type dropdown.
- Enter a name for the Shopify connector.
Connect using OAuth2.0
- Choose a Source name.
- Click Authenticate your Shopify account.
- Click Install to install the Airbyte application. Log in to your account, if you are not already logged in. Select the store you want to sync and review the consent form. Click Install app to finish the installation.
- The Shopify Store field will be automatically filled after you authenticate your Shopify account based on the store you selected. Once populated, confirm the value is accurate.
- (Optional) You may set a Replication Start Date as the starting point for your data replication. Any data created before this date will not be synced. Defaults to January 1st, 2020.
- Click Set up source and wait for the connection test to complete.
For Airbyte Open Source:
- Navigate to the Airbyte Open Source dashboard.
- Click Sources and then click + New source.
- On the Set up the source page, select Shopify from the Source type dropdown.
- Enter a name for the Shopify connector.
Create a custom app
Authentication to the Shopify API requires a custom application. Follow these instructions to create a custom app and find your Admin API Access Token.
- Log in to your Shopify account.
- In the dashboard, navigate to Settings > App and sales channels > Develop apps > Create an app.
- Select a name for your new app.
- Select Configure Admin API scopes.
- Grant access to the following list of scopes. Only select scopes prefixed with
read_
, notwrite_
(e.g.read_locations
,read_price_rules
, etc ). - Click Install app to give this app access to your data.
- Once installed, go to API Credentials to copy the Admin API Access Token. You are now ready to set up the source in Airbyte!
Connect using API Password
- Enter a Source name.
- Enter your Shopify Store name. You can find this in your URL when logged in to Shopify or within the Store details section of your Settings.
- For API Password, enter your custom application's Admin API access token.
- (Optional) You may set a Replication Start Date as the starting point for your data replication. Any data created before this date will not be synced. Please note that this defaults to January 1st, 2020.
- Click Set up source and wait for the connection test to complete.
Custom app scopes
Add the following scopes to your custom app to ensure Airbyte can sync all available data. For more information on access scopes, see the Shopify docs.
read_analytics
read_assigned_fulfillment_orders
read_content
read_customers
read_discounts
read_draft_orders
read_fulfillments
read_gdpr_data_request
read_gift_cards
read_inventory
read_legal_policies
read_locations
read_locales
read_marketing_events
read_merchant_managed_fulfillment_orders
read_online_store_pages
read_order_edits
read_orders
read_price_rules
read_product_listings
read_products
read_publications
read_reports
read_resource_feedbacks
read_script_tags
read_shipping
read_shopify_payments_accounts
read_shopify_payments_bank_accounts
read_shopify_payments_disputes
read_shopify_payments_payouts
read_themes
read_third_party_fulfillment_orders
read_translations
Supported sync modes
The Shopify source connector supports the following sync modes:
Feature | Supported? |
---|---|
Full Refresh Sync | Yes |
Incremental Sync | Yes |
The Shopify source supports both Full Refresh and Incremental syncs. You can choose if this connector will copy only the new or updated data, or all rows in the tables and columns you set up for replication, every time a sync is run.
This source can sync data for the Shopify REST API and the Shopify GraphQL API and the Shopify GraphQL BULK API
Supported Streams
- Abandoned Checkouts
- Articles
- Balance Transactions
- Blogs
- Collects
- Collections (GraphQL)
- Countries
- Custom Collections
- Customers
- Customer Journey Summary (GraphQL)
- Customer Address (GraphQL)
- Draft Orders
- Discount Codes (GraphQL)
- Disputes
- Fulfillments
- Fulfillment Orders (GraphQL)
- Inventory Items (GraphQL)
- Inventory Levels (GraphQL)
- Locations
- Metafields (GraphQL)
- Order Agreements (GraphQL)
- Orders
- Order Refunds
- Order Risks (GraphQL)
- Pages
- Price Rules
- Products (GraphQL)
- Product Images (GraphQL)
- Product Variants (GraphQL)
- Shop
- Smart Collections
- Transactions
- Transactions (GraphQL)
- Tender Transactions
Entity-Relationship Diagram (ERD)
Capturing deleted records
The connector captures deletions for records in the Articles
, Blogs
, CustomCollections
, Orders
, Pages
, PriceRules
and Products
streams.
When a record is deleted, the connector outputs a record with the ID
of that record and the deleted_at
, deleted_message
, and deleted_description
fields filled out. No other fields are filled out for the deleted records.
Check the following Shopify documentation for more information about retrieving deleted records.
Marketing Attribution data
Data related to marketing attribution can be found across a few different streams. Sync these streams to understand marketing performance:
Customer Journey Summary
(firstVisit.source, firstVisit.sourcetype)Orders
(referring_site, source_name)Abandoned Checkouts
(referring_site, source_name)
Features
Feature | Supported?(Yes/No) |
---|---|
Full Refresh Sync | Yes |
Incremental - Append Sync | Yes |
Namespaces | No |
Data type map
Integration Type | Airbyte Type |
---|---|
string | string |
number | number |
array | array |
object | object |
boolean | boolean |