Shopify
Shopify is an ecommerce platform that has everything you need to sell online, on social media, or in person.
Supported schema versions
Our Shopify connector supports two schema versions:
- Legacy schema
- GraphQL schema
Features
Legacy schema
| Feature Name | Supported | Notes |
|---|---|---|
| Capture deletes | ADJUSTMENT_ORDER_TRANSACTION, APP, BALANCE_TRANSACTION, CATALOG, ABANDONED_CHECKOUT, COLLECTION, COMPANY, COMPANY_CONTACT, CUSTOMER, DISPUTE, CUSTOMER_SEGMENT, DRAFT_ORDER, FULFILLMENT_EVENT, DISCOUNT_AUTOMATIC_APP, DISCOUNT_AUTOMATIC_BASIC, DISCOUNT_AUTOMATIC_BXGY, DISCOUNT_AUTOMATIC_FREE_SHIPPING, DISCOUNT_CODE_APP, DISCOUNT_CODE_BASIC, DISCOUNT_CODE_BXGY, DISCOUNT_CODE_FREE_SHIPPING, DISCOUNT_CUSTOMER_BUYS_COLLECTION, DISCOUNT_CUSTOMER_BUYS_PRODUCT, DISCOUNT_CUSTOMER_BUYS_PRODUCT_VARIANT, DISCOUNT_CUSTOMER_GETS_COLLECTION, DISCOUNT_CUSTOMER_GETS_PRODUCT, DISCOUNT_CUSTOMER_GETS_PRODUCT_VARIANT, DISCOUNT_CUSTOMER_SEGMENT_SELECTION, DISCOUNT_CUSTOMER_SELECTION, DISCOUNT_DESTINATION_SELECTION_COUNTRY, DISCOUNT_REDEEM_CODE, DISCOUNT_SHAREABLE_URL, GIFT_CARD, INVENTORY_ITEM, LOCATION, ORDER, PAYOUT, PRODUCT, PRODUCT_PUBLICATION, PUBLICATION, SHOP, and USER tables. | |
| History mode | ||
| Custom data | ABANDONED_CHECKOUT, ABANDONED_CHECKOUT_LINE, ORDER, ORDER_LINE, and DRAFT_ORDER_LINE tables. | |
| Data blocking | ||
| Column hashing | ||
| Re-sync | ||
| Row filtering | ||
| API configurable | API configuration | |
| Priority-first sync | ABANDONED_CHECKOUT, COLLECTION, COMPANY, CUSTOMER, CUSTOMER_VISIT, DRAFT_ORDER, ORDER, PRICE_RULE, PRODUCT, and TENDER_TRANSACTION tables. | |
| Fivetran data models | ||
| Private networking | ||
| Authorization via API |
GraphQL schema
| Feature Name | Supported | Notes |
|---|---|---|
| Capture deletes | ADJUSTMENT_ORDER, APP, BALANCE_TRANSACTION, CATALOG, ABANDONED_CHECKOUT, COLLECTION, COMPANY, COMPANY_CONTACT, CUSTOMER, DISPUTE, CUSTOMER_SEGMENT, DRAFT_ORDER, FULFILLMENT_EVENT, DISCOUNT_AUTOMATIC_APP, DISCOUNT_AUTOMATIC_BASIC, DISCOUNT_AUTOMATIC_BXGY, DISCOUNT_AUTOMATIC_FREE_SHIPPING, DISCOUNT_CODE_APP, DISCOUNT_CODE_BASIC, DISCOUNT_CODE_BXGY, DISCOUNT_CODE_FREE_SHIPPING, DISCOUNT_CUSTOMER_BUYS_COLLECTION, DISCOUNT_CUSTOMER_BUYS_PRODUCT, DISCOUNT_CUSTOMER_BUYS_PRODUCT_VARIANT, DISCOUNT_CUSTOMER_GETS_COLLECTION, DISCOUNT_CUSTOMER_GETS_PRODUCT, DISCOUNT_CUSTOMER_GETS_PRODUCT_VARIANT, DISCOUNT_CUSTOMER_SEGMENT_SELECTION, DISCOUNT_CUSTOMER_SELECTION, DISCOUNT_DESTINATION_SELECTION_COUNTRY, DISCOUNT_REDEEM_CODE, DISCOUNT_SHAREABLE_URL, GIFT_CARD, INVENTORY_ITEM, LOCATION, ORDER, PAYOUT, PRODUCT, PRODUCT_PUBLICATION, PUBLICATION, SHOP, and USER tables. | |
| History mode | ||
| Custom data | ABANDONED_CHECKOUT, ABANDONED_CHECKOUT_LINE, ORDER, ORDER_LINE, and DRAFT_ORDER_LINE tables. | |
| Data blocking | ||
| Column hashing | ||
| Re-sync | ||
| Row filtering | ||
| API configurable | ||
| Priority-first sync | ABANDONED_CHECKOUT, COLLECTION, COMPANY, CUSTOMER, CUSTOMER_VISIT, DRAFT_ORDER, ORDER, PRICE_RULE, PRODUCT, STAFF_MEMBER, and TENDER_TRANSACTION tables. | |
| Fivetran data models | ||
| Private networking | ||
| Authorization via API |
The Shopify connector supports Shopify Plus accounts. Shopify Plus is an enterprise ecommerce platform. You can sync data from the GIFT_CARD and USER tables.
Supported deployment models
We support the SaaS Deployment model for the connector.
Setup guide
Follow our step-by-step Shopify setup guide to connect Shopify with your destination using Fivetran connectors.
GraphQL vs Legacy schema
We recommend using the GraphQL schema for all connections. Since Shopify deprecated the REST Admin API on October 1, 2024, the REST framework has been transitioned into a maintenance phase where it only receives essential updates. Additionally, Shopify now prioritizes the GraphQL API for rolling out new features and enhancements. Beyond future-proofing your syncs, the GraphQL schema provides access to more tables, finer data granularity, and a cleaner, normalized structure that closely aligns with how Shopify models its data.
Key differences
| Capability | Legacy schema | GraphQL schema |
|---|---|---|
| Underlying API | Mix of REST and GraphQL APIs | Built entirely on Shopify's current GraphQL API |
| Future compatibility | At risk since Shopify deprecated the REST APIs | Aligned with Shopify's long-term supported direction |
| Data granularity | Coarser, some nested fields | More granular, normalized tables |
| Table coverage | Standard set of tables | Expanded set including newer Shopify objects |
| New Shopify features | Delayed or limited support | Available natively as Shopify releases them |
For schema details specific to your version, see the Schema information section.
Migrating to GraphQL schema
To use the GraphQL schema, you must create a new connection and enable the GraphQL Schema toggle during setup (if the toggle is available for your account). You cannot directly switch an existing connection from the Legacy schema to the GraphQL schema.
- The GraphQL schema and the Legacy schema are not identical.
- Creating a new connection with the GraphQL schema will start a full initial sync. Your existing Legacy schema connection and its data are unaffected and will continue to sync until you delete it. If both connections are running simultaneously for the same shop, sync times may be slightly higher than usual due to shared Shopify API rate limits.
Sync overview
We use hard deletes to remove records from the following tables:
Legacy schema
ABANDONED_CHECKOUT_DISCOUNT_CODEABANDONED_CHECKOUT_LINEABANDONED_CHECKOUT_SHIPPING_LINEABANDONED_CHECKOUT_URL_TAGAPPBUNDLE_COMPONENTCOLLECTION_METAFIELDCOMPANY_LOCATION_CATALOGCOMPANY_LOCATION_TAX_EXEMPTIONCUSTOMER_ADDRESSCUSTOMER_METAFIELDCUSTOMER_TAGCUSTOMER_TAX_EXEMPTIONDISCOUNT_ALLOCATIONDISCOUNT_APPLICATIONDRAFT_ORDER_LINEDRAFT_ORDER_LINE_TAX_LINEDRAFT_ORDER_METAFIELDDRAFT_ORDER_NOTE_ATTRIBUTEDRAFT_ORDER_TAGFULFILLMENT_ORDERFULFILLMENT_ORDER_FULFILLMENT_HOLDFULFILLMENT_ORDER_LINE_ITEMMARKET_CATALOGMARKET_CONDITIONMARKET_CONDITION_COMPANY_LOCATIONMARKET_CONDITION_LOCATIONMARKET_CONDITION_REGIONMEDIA_ERRORMEDIA_FILE_ERRORMEDIA_SOURCEMEDIA_WARNINGORDER_DISCOUNT_CODEORDER_LINEORDER_METAFIELDORDER_NOTE_ATTRIBUTEORDER_RISK_ASSESSMENTORDER_RISK_FACTORDER_SHIPPING_LINEORDER_SHIPPING_TAX_LINEORDER_TAGORDER_URL_TAGPRICE_LIST_PRICEPRICE_RULE_ENT_COLLECTIONPRICE_RULE_ENT_COUNTRYPRICE_RULE_ENT_PRODUCTPRICE_RULE_ENT_VARIANTPRICE_RULE_PREREQ_COLLECTIONPRICE_RULE_PREREQ_CUSTOMERPRICE_RULE_PREREQ_CUSTOMER_SEGMENTPRICE_RULE_PREREQ_PRODUCTPRICE_RULE_PREREQ_VARIANTPRODUCT_MEDIAPRODUCT_MEDIA_METAFIELDPRODUCT_METAFIELDPRODUCT_TAGPRODUCT_VARIANTPRODUCT_VARIANT_MEDIAPRODUCT_VARIANT_METAFIELDRETURNRETURN_EXCHANGE_LINE_ITEMRETURN_EXCHANGE_LINE_ITEM_ORDER_LINERETURN_LINE_ITEMRETURN_SHIPPING_FEETAX_LINE
GraphQL schema
ABANDONED_CHECKOUT_DISCOUNT_CODEABANDONED_CHECKOUT_LINEABANDONED_CHECKOUT_TAX_LINEADJUSTMENT_ORDERAPPBUNDLE_COMPONENTCOLLECTION_METAFIELDCOLLECTION_RULECOMPANY_LOCATION_CATALOGCOMPANY_LOCATION_TAX_EXEMPTIONCUSTOMER_ADDRESSCUSTOMER_METAFIELDCUSTOMER_TAGCUSTOMER_TAX_EXEMPTIONDISCOUNT_ALLOCATIONDISCOUNT_APPLICATIONDRAFT_ORDER_CUSTOM_ATTRIBUTEDRAFT_ORDER_LINEDRAFT_ORDER_LINE_CUSTOM_ATTRIBUTEDRAFT_ORDER_LINE_TAX_LINEDRAFT_ORDER_METAFIELDDRAFT_ORDER_TAGDRAFT_ORDER_TAX_LINEFULFILLMENT_ORDERFULFILLMENT_ORDER_FULFILLMENT_HOLDFULFILLMENT_ORDER_LINE_ITEMFULFILLMENT_SERVICEFULFILLMENT_TRACKING_INFOMARKET_CATALOGMARKET_CONDITIONMARKET_CONDITION_COMPANY_LOCATIONMARKET_CONDITION_LOCATIONMARKET_CONDITION_REGIONMEDIA_ERRORMEDIA_FILE_ERRORMEDIA_SOURCEMEDIA_WARNINGORDER_CUSTOM_ATTRIBUTEORDER_DISCOUNT_CODEORDER_LINEORDER_LINE_CUSTOM_ATTRIBUTEORDER_LINE_TAX_LINEORDER_METAFIELDORDER_RISK_ASSESSMENTORDER_RISK_FACTORDER_SHIPPING_LINEORDER_SHIPPING_TAX_LINEORDER_TAGPRICE_LIST_PRICEPRICE_RULE_ENT_COLLECTIONPRICE_RULE_ENT_COUNTRYPRICE_RULE_ENT_PRODUCTPRICE_RULE_ENT_VARIANTPRICE_RULE_PREREQ_COLLECTIONPRICE_RULE_PREREQ_CUSTOMERPRICE_RULE_PREREQ_CUSTOMER_SEGMENTPRICE_RULE_PREREQ_PRODUCTPRICE_RULE_PREREQ_VARIANTPRODUCT_MEDIAPRODUCT_MEDIA_METAFIELDPRODUCT_METAFIELDPRODUCT_TAGPRODUCT_VARIANTPRODUCT_VARIANT_MEDIAPRODUCT_VARIANT_METAFIELDREFUND_SHIPPING_LINERETURNRETURN_EXCHANGE_LINE_ITEMRETURN_EXCHANGE_LINE_ITEM_ORDER_LINERETURN_LINE_ITEMRETURN_SHIPPING_FEE
Incremental sync
We cannot track incremental updates for the following tables because the necessary parameters are not available in Shopify’s API:
Legacy schema
APPCATALOGCOMPANY_LOCATION_CATALOGCUSTOMER_SEGMENTCUSTOMER_SEGMENT_MEMBERDISCOUNT_AUTOMATIC_APPDISCOUNT_AUTOMATIC_BASICDISCOUNT_AUTOMATIC_BXGYDISCOUNT_AUTOMATIC_FREE_SHIPPINGDISCOUNT_CODE_APPDISCOUNT_CODE_BASICDISCOUNT_CODE_BXGYDISCOUNT_CODE_FREE_SHIPPINGDISCOUNT_CUSTOMER_BUYS_COLLECTIONDISCOUNT_CUSTOMER_BUYS_PRODUCTDISCOUNT_CUSTOMER_BUYS_PRODUCT_VARIANTDISCOUNT_CUSTOMER_GETS_COLLECTIONDISCOUNT_CUSTOMER_GETS_PRODUCTDISCOUNT_CUSTOMER_GETS_PRODUCT_VARIANTDISCOUNT_CUSTOMER_SEGMENT_SELECTIONDISCOUNT_CUSTOMER_SELECTIONDISCOUNT_DESTINATION_SELECTION_COUNTRYDISCOUNT_REDEEM_CODEDISCOUNT_SHAREABLE_URLDISPUTEGIFT_CARDLOCATIONMETAFIELD (SHOP)PAYOUTPRICE_LISTPRICE_LIST_PRICEPRODUCT_PUBLICATIONPUBLICATIONSHOPUSER
GraphQL schema
APPCATALOGCOMPANY_LOCATION_CATALOGCUSTOMER_SEGMENTCUSTOMER_SEGMENT_MEMBERPRODUCT_PUBLICATIONDISCOUNT_AUTOMATIC_APPDISCOUNT_AUTOMATIC_BASICDISCOUNT_AUTOMATIC_BXGYDISCOUNT_AUTOMATIC_FREE_SHIPPINGDISCOUNT_CODE_APPDISCOUNT_CODE_BASICDISCOUNT_CODE_BXGYDISCOUNT_CODE_FREE_SHIPPINGDISCOUNT_CUSTOMER_BUYS_COLLECTIONDISCOUNT_CUSTOMER_BUYS_PRODUCTDISCOUNT_CUSTOMER_BUYS_PRODUCT_VARIANTDISCOUNT_CUSTOMER_GETS_COLLECTIONDISCOUNT_CUSTOMER_GETS_PRODUCTDISCOUNT_CUSTOMER_GETS_PRODUCT_VARIANTDISCOUNT_CUSTOMER_SEGMENT_SELECTIONDISCOUNT_CUSTOMER_SELECTIONDISCOUNT_DESTINATION_SELECTION_COUNTRYDISCOUNT_REDEEM_CODEDISCOUNT_SHAREABLE_URLDISPUTEGIFT_CARDLOCATIONPAYOUTPRICE_LISTPRICE_LIST_PRICEPRODUCT_PUBLICATIONPUBLICATIONSHOPSTAFF_MEMBERUSER
As a result, we sync data for the above tables once a day. However, you can sync the latest data by syncing each table manually. See our table re-sync documentation for more information.
For the Legacy schema, we sync metafields with the owner resource as shop daily and sync other resource metafields incrementally based on their parent endpoint. In the GraphQL schema, shop metafields are also synced incrementally.
We sync the following tables daily if the sync takes less than 30 minutes. Otherwise, we sync them weekly on Saturdays. This applies to both schema versions.
Expand to see the full list of tables
DISCOUNT_AUTOMATIC_APPDISCOUNT_AUTOMATIC_BASICDISCOUNT_AUTOMATIC_BXGYDISCOUNT_AUTOMATIC_FREE_SHIPPINGDISCOUNT_CODE_APPDISCOUNT_CODE_BASICDISCOUNT_CODE_BXGYDISCOUNT_CODE_FREE_SHIPPINGDISCOUNT_CUSTOMER_BUYS_COLLECTIONDISCOUNT_CUSTOMER_BUYS_PRODUCTDISCOUNT_CUSTOMER_BUYS_PRODUCT_VARIANTDISCOUNT_CUSTOMER_GETS_COLLECTIONDISCOUNT_CUSTOMER_GETS_PRODUCTDISCOUNT_CUSTOMER_GETS_PRODUCT_VARIANTDISCOUNT_CUSTOMER_SEGMENT_SELECTIONDISCOUNT_CUSTOMER_SELECTIONDISCOUNT_DESTINATION_SELECTION_COUNTRYDISCOUNT_REDEEM_CODEDISCOUNT_SHAREABLE_URL
Metafields
Fivetran supports Shopify's Metafield resource. We support the metafields of the following tables:
COLLECTIONCUSTOMERDRAFT_ORDERORDERPRODUCTPRODUCT_VARIANTSHOP
You must select the METAFIELD table in the connection's schema tab to sync any metafield data to your destination. All metafields, regardless of resource type, are written to this single table. To control which resource metafields are synced, also select the applicable resource-specific tables, such as COLLECTION_METAFIELD or CUSTOMER_METAFIELD.
All the metafields data for the resources you have selected will appear in the METAFIELD table in your destination following the next incremental sync. The owner_resource column indicates the resource the metafields data refers to.
The METAFIELD table in the schema tab represents shop metafields (owner_resource = 'shop'). In the GraphQL schema, the SHOP table must also be selected for shop metafield syncing. For more information, see Why Aren't My Selected Metafield Tables Syncing?.
Web pixels data
Our connector supports syncing web pixels event data. We sync all the standard Shopify web pixels events that are sent by the Shopify web pixels and sync them in the following tables:
Expand to see the full list of tables
ALERT_DISPLAYED_EVENTCART_ATTRIBUTE_EVENTCART_LINE_EVENTCART_VIEWED_EVENTCHECKOUT_ATTRIBUTES_EVENTCHECKOUT_DELIVERY_OPTION_EVENTCHECKOUT_DISCOUNT_APPLICATION_EVENTCHECKOUT_EVENTCHECKOUT_LINE_ITEM_DISCOUNT_ALLOCATION_EVENTCHECKOUT_LINE_ITEM_EVENTCHECKOUT_LINE_ITEM_PROPERTY_EVENTCHECKOUT_TRANSACTION_EVENTCOLLECTION_VIEWED_EVENTCOLLECTION_VIEWED_PRODUCT_VARIANT_EVENTPAGE_VIEWED_EVENTPRODUCT_ADDED_TO_CART_EVENTPRODUCT_REMOVED_FROM_CART_EVENTPRODUCT_VIEWED_EVENTSEARCH_RESULT_PRODUCT_VARIANT_EVENTSEARCH_SUBMITTED_EVENTUI_EXTENSION_ERRORED_EVENT
We use the CHECKOUT_EVENT table and its child tables to store data from the following Shopify checkout-related events:
Expand to see the full list of tables
checkout_address_info_submitted_eventcheckout_completed_eventcheckout_contact_info_submitted_eventcheckout_shipping_info_submitted_eventcheckout_started_eventpayment_info_submitted_event
You can choose what records to sync into the CHECKOUT_EVENT and its child tables by selecting or deselecting the corresponding event names in the connector schema dashboard.
This feature is available only for connections created using Fivetran’s Shopify public app.
- Only one connection per shop supports the synchronization of web pixels data. If you have multiple connections for the same Shopify store, only one connection syncs the web pixels data.
- When you enable any web pixels–related tables in the connection, Fivetran registers a Shopify Web Pixel Extension on your storefront. This runs securely in Shopify’s sandboxed environment and follows Shopify’s customer consent rules.
- If your site has privacy or performance guidelines, we recommend that you check with your team before enabling these tables. You can disable this behavior by disabling all web pixel–related tables in your connection.
- For more information, see Shopify Web Pixels documentation.
Historical sync time frame
You can configure the historical sync time frame when setting up your connection to speed up both the initial sync and subsequent re-syncs. Historical sync time frame limits the amount of data synced for the following tables:
Legacy schema
ABANDONED_APPLIED_DISCOUNTABANDONED_CHECKOUTABANDONED_CHECKOUT_DISCOUNT_CODEABANDONED_CHECKOUT_LINEABANDONED_CHECKOUT_SHIPPING_LINEABANDONED_CHECKOUT_TAX_LINEABANDONED_CHECKOUT_URL_TAGAPPLIED_GIFT_CARDCUSTOMER_VISITDISCOUNT_ALLOCATIONDISCOUNT_APPLICATIONDRAFT_ORDERDRAFT_ORDER_LINEDRAFT_ORDER_LINE_TAX_LINEDRAFT_ORDER_NOTE_ATTRIBUTEDRAFT_ORDER_TAGFULFILLMENTFULFILLMENT_EVENTFULFILLMENT_ORDERFULFILLMENT_ORDER_FULFILLMENT_HOLDFULFILLMENT_ORDER_LINEFULFILLMENT_ORDER_LINE_ITEMORDERORDER_ADJUSTMENTORDER_DISCOUNT_CODEORDER_LINEORDER_LINE_REFUNDORDER_NOTE_ATTRIBUTEORDER_RISK_ASSESSMENTORDER_RISK_FACTORDER_RISK_SUMMARYORDER_SHIPPING_LINEORDER_SHIPPING_TAX_LINEORDER_TAGORDER_URL_TAGREFUNDRETURNRETURN_EXCHANGE_LINE_ITEMRETURN_EXCHANGE_LINE_ITEM_ORDER_LINERETURN_LINE_ITEMRETURN_SHIPPING_FEETAX_LINETENDER_TRANSACTIONTRANSACTION
GraphQL schema
ABANDONED_CHECKOUTABANDONED_CHECKOUT_DISCOUNT_CODEABANDONED_CHECKOUT_LINEABANDONED_CHECKOUT_TAX_LINECUSTOMER_VISITDISCOUNT_ALLOCATIONDISCOUNT_APPLICATIONDRAFT_ORDERDRAFT_ORDER_CUSTOM_ATTRIBUTEDRAFT_ORDER_LINEDRAFT_ORDER_LINE_CUSTOM_ATTRIBUTEDRAFT_ORDER_LINE_TAX_LINEDRAFT_ORDER_TAGDRAFT_ORDER_TAX_LINEFULFILLMENTFULFILLMENT_EVENTFULFILLMENT_LINE_ITEMFULFILLMENT_ORDERFULFILLMENT_ORDER_FULFILLMENT_HOLDFULFILLMENT_ORDER_LINE_ITEMFULFILLMENT_TRACKING_INFOORDERORDER_ADJUSTMENTORDER_CUSTOM_ATTRIBUTEORDER_DISCOUNT_CODEORDER_LINEORDER_LINE_CUSTOM_ATTRIBUTEORDER_LINE_TAX_LINEORDER_RISK_ASSESSMENTORDER_RISK_FACTORDER_RISK_SUMMARYORDER_SHIPPING_LINEORDER_SHIPPING_TAX_LINEORDER_TAGREFUNDREFUND_LINE_ITEMREFUND_SHIPPING_LINERETURNRETURN_EXCHANGE_LINE_ITEMRETURN_EXCHANGE_LINE_ITEM_ORDER_LINERETURN_LINE_ITEMRETURN_SHIPPING_FEETENDER_TRANSACTIONTRANSACTION
We apply the selected start date only to these tables, as they contain data that you are less likely to reference later. For example, you still may want to refer to a product collection created two years ago, so we don’t apply the start date to the COLLECTION table. However, you are unlikely to refer to an order created 10 years ago, which is why we apply the start date to the ORDER table.
You can modify the historical sync time frame at any time.
- If you set it to an earlier date, we perform a full historical re-sync during the next scheduled sync, retrieving data starting from that new date.
- If you set it to a later date, we don’t delete any existing data. Instead, we apply the new time frame only to subsequent re-syncs.
Sync limitations
If an update to a child object does not trigger an update in its parent object, we do not capture the update until the parent object is updated. For example:
- If the
productVariantMetafieldobject is updated, we do not capture the update until its parent object,product, is updated. - If the
damagedinventory quantity is updated, theupdatedAttimestamp of its parent object,product, remains unchanged, and we do not capture the update. However, if theavailableinventory quantity is updated, theupdatedAttimestamp of its parent object,product, is updated, and we capture the update.
Schema information
For more information on which schema version applies to your connection, see GraphQL vs Legacy schema.
GraphQL schema — applies to Fivetran accounts created on or after August 1, 2025, and to connections with the GraphQL Schema toggle enabled.
Legacy schema — applies to all other connections.
Syncing empty tables and columns
The Shopify connection doesn't support the creation of empty tables and columns in your destination.
We create a table in the destination only if we can retrieve the table data from the source. If Shopify doesn’t return data for the source table, we don’t create the table in your destination.
Shopify API access scopes
The API access scopes listed in this section are applicable only for the Shopify connections created using a non-Fivetran app (custom, private or another public app).
Fivetran requires the following authenticated access scopes for Shopify's Admin API:
Expand to see the full list of tables
read_all_ordersread_analyticsread_assigned_fulfillment_ordersread_customersread_discountsread_draft_ordersread_filesread_fulfillmentsread_gift_card_transactionsread_gift_cardsread_inventoryread_inventory_transfersread_localesread_locationsread_marketing_eventsread_marketsread_merchant_managed_fulfillment_ordersread_metaobject_definitionsread_metaobjectsread_ordersread_payment_termsread_price_rulesread_product_listingsread_productsread_publicationsread_returnsread_shippingread_shopify_payments_accountsread_shopify_payments_disputesread_shopify_payments_payoutsread_themesread_third_party_fulfillment_ordersread_usersread_customer_eventswrite_pixels
The read_all_orders and read_users scopes require some conditions to be enabled. To use the read_all_orders scope, you must explicitly request access from Shopify before installing the app. For more information, see our Request API access documentation.