Shopify connector reference

Important

This feature is in Beta. To use it, a workspace admin must turn on Lakeflow Connect for Shopify from the Previews page. See Manage Azure Databricks previews.

This page has reference information for the managed Shopify connector, including supported source tables and destination table schemas.

Supported source tables

The Shopify connector supports the following source tables, all under the default source schema:

Source table Primary key Description Sync mode Cursor field
products id Products in your store, including title, status, vendor, and total inventory. Incremental updatedAt
orders id Orders placed in your store, including financial status, fulfillment status, and currency. Incremental updatedAt
customers id Customer profiles, including name, contact details, and order count. Incremental updatedAt
draft_orders id Draft orders created in your store, including status and completion time. Incremental updatedAt
collections id Product collections in your store, including title, handle, and sort order. Incremental updatedAt
custom_collections id Manually curated product collections. Incremental updatedAt
smart_collections id Automated product collections, including the rule set that determines membership. Incremental updatedAt
articles id Blog articles in your online store, including publication status. Incremental updatedAt
pages id Online store pages, including publication status. Incremental updatedAt
product_variants id Product variants, including SKU, price, barcode, and inventory quantity. Incremental updatedAt
blogs id Blogs in your online store. Incremental updatedAt
inventory_items id Inventory items, including SKU and whether the item is tracked. Incremental updatedAt
discount_codes id Code-based discounts, including the discount configuration. Incremental updatedAt
discount_automatic id Automatic discounts, including the discount configuration. Incremental updatedAt
locations id Store locations, including whether each ships inventory and fulfills online orders. Full refresh only
shop id Store profile, including domain, currency, and timezone. Full refresh only
tender_transactions id Tender transactions, including payment method and amount. Incremental processedAt
collects id Associations between products and custom collections. Full refresh only
disputes id Payment disputes and chargebacks, including status and evidence deadlines. Full refresh only
abandoned_checkouts id Abandoned checkouts, including totals and the recovery URL. Incremental updatedAt
fulfillment_orders id Fulfillment orders, including status and assigned location. Incremental updatedAt
media_image id Image files in your store's media library. Incremental updatedAt
media id All media files in your store's media library, including images, videos, and 3D models. Incremental updatedAt
countries id Countries configured for shipping and tax, including provinces. Full refresh only
balance_transactions id Shopify Payments balance transactions, including amount, fee, and net. Incremental transactionDate
transactions id Order payment transactions, including kind, gateway, status, and amount. Incremental created_at
order_refunds id Refunds issued on orders, including restock and line-item details. Incremental created_at
fulfillments id Order fulfillments, including tracking and shipment status. Incremental updated_at
order_line_refund id Line items included in order refunds, including quantity and restock type. Incremental parentUpdatedAt
order_adjustment id Adjustments applied to order refunds, including amount and reason. Incremental parentUpdatedAt
product_variant_media id Media attached to product variants, including images, videos, and 3D models. Incremental parentUpdatedAt
order_shipping_line id Shipping lines on orders, including carrier and pricing. Incremental parentUpdatedAt
order_agreements id Sales agreements on orders, including type and reason. Incremental parentUpdatedAt
order_risks order_id Fraud risk assessments for orders, including the recommendation. Incremental parentUpdatedAt
customer_address id Customer addresses, including city, province, country, and postal code. Incremental parentUpdatedAt
fulfillment_order_line_item id Line items on fulfillment orders, including total and remaining quantity. Incremental parentUpdatedAt
discount_redeem_code id Redeem codes for code-based discounts, including usage count. Incremental parentUpdatedAt
collection_product collection_id, product_id Associations between collections and the products they contain. Full refresh only
inventory_level id Inventory levels per item and location, including available, on-hand, and committed quantities. Full refresh only
deleted_products subjectId Destroy events for products. subjectId matches products.id. Incremental createdAt
deleted_product_variants subjectId Destroy events for product variants. subjectId matches product_variants.id. Incremental createdAt
deleted_collections subjectId Destroy events for collections, including custom and smart collections. subjectId matches the collection's id. Incremental createdAt
deleted_articles subjectId Destroy events for blog articles. subjectId matches articles.id. Incremental createdAt
deleted_pages subjectId Destroy events for online store pages. subjectId matches pages.id. Incremental createdAt
deleted_blogs subjectId Destroy events for blogs. subjectId matches blogs.id. Incremental createdAt
deleted_draft_orders subjectId Destroy events for draft orders. subjectId matches draft_orders.id. Incremental createdAt

Connector options

See Examples for usage.

Option Type Scope Required Applies to Description
start_datetime String (yyyy-MM-ddTHH:mm:ssXXX) Pipeline No All incremental tables Earliest date and time from which to ingest data. Defaults to 365 days before the first sync. Applies only to the first sync of each table; later syncs resume from the stored cursor.

Destination table schemas

products

Primary key: id Cursor field: updatedAt

Field Data type
id STRING
title STRING
handle STRING
status STRING
productType STRING
vendor STRING
createdAt TIMESTAMP
updatedAt TIMESTAMP
publishedAt TIMESTAMP
totalInventory BIGINT

orders

Primary key: id Cursor field: updatedAt

Field Data type
id STRING
name STRING
email STRING
createdAt TIMESTAMP
updatedAt TIMESTAMP
processedAt TIMESTAMP
displayFinancialStatus STRING
displayFulfillmentStatus STRING
currencyCode STRING
confirmed BOOLEAN
test BOOLEAN

customers

Primary key: id Cursor field: updatedAt

Field Data type
id STRING
firstName STRING
lastName STRING
email STRING
phone STRING
numberOfOrders STRING
verifiedEmail BOOLEAN
createdAt TIMESTAMP
updatedAt TIMESTAMP

draft_orders

Primary key: id Cursor field: updatedAt

Field Data type
id STRING
name STRING
status STRING
email STRING
createdAt TIMESTAMP
updatedAt TIMESTAMP
completedAt TIMESTAMP

collections

Primary key: id Cursor field: updatedAt

Field Data type
id STRING
title STRING
handle STRING
sortOrder STRING
templateSuffix STRING
updatedAt TIMESTAMP

custom_collections

Primary key: id Cursor field: updatedAt

Field Data type
id STRING
title STRING
handle STRING
sortOrder STRING
templateSuffix STRING
updatedAt TIMESTAMP

smart_collections

Primary key: id Cursor field: updatedAt

Field Data type
id STRING
title STRING
handle STRING
sortOrder STRING
templateSuffix STRING
updatedAt TIMESTAMP
ruleSet VARIANT

Note

This table doesn't support SCD type 2 because it has VARIANT columns.

articles

Primary key: id Cursor field: updatedAt

Field Data type
id STRING
title STRING
handle STRING
isPublished BOOLEAN
createdAt TIMESTAMP
updatedAt TIMESTAMP
publishedAt TIMESTAMP

pages

Primary key: id Cursor field: updatedAt

Field Data type
id STRING
title STRING
handle STRING
isPublished BOOLEAN
createdAt TIMESTAMP
updatedAt TIMESTAMP
publishedAt TIMESTAMP

product_variants

Primary key: id Cursor field: updatedAt

Field Data type
id STRING
title STRING
sku STRING
price STRING
inventoryQuantity BIGINT
position BIGINT
barcode STRING
createdAt TIMESTAMP
updatedAt TIMESTAMP

blogs

Primary key: id Cursor field: updatedAt

Field Data type
id STRING
title STRING
handle STRING
templateSuffix STRING
createdAt TIMESTAMP
updatedAt TIMESTAMP

inventory_items

Primary key: id Cursor field: updatedAt

Field Data type
id STRING
sku STRING
tracked BOOLEAN
requiresShipping BOOLEAN
createdAt TIMESTAMP
updatedAt TIMESTAMP

discount_codes

Primary key: id Cursor field: updatedAt

Field Data type
id STRING
discount VARIANT
updatedAt TIMESTAMP

Note

This table doesn't support SCD type 2 because it has VARIANT columns.

discount_automatic

Primary key: id Cursor field: updatedAt

Field Data type
id STRING
discount VARIANT
updatedAt TIMESTAMP

Note

This table doesn't support SCD type 2 because it has VARIANT columns.

locations

Primary key: id Sync mode: Full refresh only

Field Data type
id STRING
name STRING
isActive BOOLEAN
shipsInventory BOOLEAN
fulfillsOnlineOrders BOOLEAN

shop

Primary key: id Sync mode: Full refresh only

Field Data type
id STRING
name STRING
email STRING
myshopifyDomain STRING
currencyCode STRING
ianaTimezone STRING

tender_transactions

Primary key: id Cursor field: processedAt

Field Data type
id STRING
processedAt TIMESTAMP
paymentMethod STRING
remoteReference STRING
test BOOLEAN
amount VARIANT
order VARIANT
transactionDetails VARIANT

Note

This table doesn't support SCD type 2 because it has VARIANT columns.

collects

Primary key: id Sync mode: Full refresh only

Field Data type
id BIGINT
collection_id BIGINT
product_id BIGINT
created_at TIMESTAMP
updated_at TIMESTAMP
position BIGINT
sort_value STRING

disputes

Primary key: id Sync mode: Full refresh only

Field Data type
id STRING
legacyResourceId BIGINT
status STRING
type STRING
initiatedAt TIMESTAMP
evidenceDueBy TIMESTAMP
evidenceSentOn TIMESTAMP
finalizedOn TIMESTAMP
amount VARIANT
reasonDetails VARIANT
order VARIANT

Note

This table doesn't support SCD type 2 because it has VARIANT columns.

abandoned_checkouts

Primary key: id Cursor field: updatedAt

Field Data type
id STRING
name STRING
createdAt TIMESTAMP
updatedAt TIMESTAMP
completedAt TIMESTAMP
abandonedCheckoutUrl STRING
note STRING
taxesIncluded BOOLEAN
totalPriceSet VARIANT
subtotalPriceSet VARIANT
totalTaxSet VARIANT
customer VARIANT

Note

This table doesn't support SCD type 2 because it has VARIANT columns.

fulfillment_orders

Primary key: id Cursor field: updatedAt

Field Data type
id STRING
status STRING
requestStatus STRING
createdAt TIMESTAMP
updatedAt TIMESTAMP
fulfillAt TIMESTAMP
assignedLocation VARIANT
order VARIANT

Note

This table doesn't support SCD type 2 because it has VARIANT columns.

media_image

Primary key: id Cursor field: updatedAt

Field Data type
id STRING
createdAt TIMESTAMP
updatedAt TIMESTAMP
fileStatus STRING
alt STRING
image VARIANT
mimeType STRING
mediaContentType STRING
status STRING

Note

This table doesn't support SCD type 2 because it has VARIANT columns.

media

Primary key: id Cursor field: updatedAt

Field Data type
id STRING
createdAt TIMESTAMP
updatedAt TIMESTAMP
fileStatus STRING
alt STRING
mediaContentType STRING
status STRING

countries

Primary key: id Sync mode: Full refresh only

Field Data type
id BIGINT
name STRING
code STRING
tax_name STRING
tax DOUBLE
provinces VARIANT

Note

This table doesn't support SCD type 2 because it has VARIANT columns.

balance_transactions

Primary key: id Cursor field: transactionDate

Field Data type
id STRING
transactionDate TIMESTAMP
amount VARIANT
fee VARIANT
net VARIANT
type STRING
sourceType STRING
sourceId BIGINT
sourceOrderTransactionId BIGINT
test BOOLEAN
associatedOrder VARIANT
associatedPayout VARIANT
adjustmentReason STRING
adjustmentsOrders VARIANT

Note

This table doesn't support SCD type 2 because it has VARIANT columns.

transactions

Primary key: id Cursor field: created_at

Field Data type
id BIGINT
order_id BIGINT
kind STRING
gateway STRING
status STRING
message STRING
amount STRING
currency STRING
authorization STRING
authorization_expires_at TIMESTAMP
error_code STRING
source_name STRING
payment_id STRING
manual_payment_gateway BOOLEAN
parent_id BIGINT
location_id BIGINT
user_id BIGINT
device_id BIGINT
test BOOLEAN
created_at TIMESTAMP
processed_at TIMESTAMP
admin_graphql_api_id STRING
receipt VARIANT
payment_details VARIANT
total_unsettled_set VARIANT
amount_rounding VARIANT

Note

This table doesn't support SCD type 2 because it has VARIANT columns.

order_refunds

Primary key: id Cursor field: created_at

Field Data type
id BIGINT
order_id BIGINT
note STRING
user_id BIGINT
restock BOOLEAN
created_at TIMESTAMP
processed_at TIMESTAMP
admin_graphql_api_id STRING
duties VARIANT
total_duties_set VARIANT
return VARIANT
refund_shipping_lines VARIANT
order_adjustments VARIANT
refund_line_items VARIANT

Note

This table doesn't support SCD type 2 because it has VARIANT columns.

fulfillments

Primary key: id Cursor field: updated_at

Field Data type
id BIGINT
order_id BIGINT
status STRING
service STRING
tracking_company STRING
tracking_number STRING
tracking_url STRING
shipment_status STRING
location_id BIGINT
name STRING
created_at TIMESTAMP
updated_at TIMESTAMP
admin_graphql_api_id STRING
origin_address VARIANT
line_items VARIANT
tracking_numbers VARIANT
tracking_urls VARIANT
receipt VARIANT

Note

This table doesn't support SCD type 2 because it has VARIANT columns.

order_line_refund

Primary key: id Cursor field: parentUpdatedAt

Field Data type
id BIGINT
order_id BIGINT
parentUpdatedAt TIMESTAMP
line_item_id BIGINT
location_id BIGINT
quantity BIGINT
restock_type STRING
subtotal DOUBLE
subtotal_set VARIANT
total_tax DOUBLE
total_tax_set VARIANT
line_item VARIANT

Note

This table doesn't support SCD type 2 because it has VARIANT columns.

order_adjustment

Primary key: id Cursor field: parentUpdatedAt

Field Data type
id BIGINT
order_id BIGINT
refund_id BIGINT
parentUpdatedAt TIMESTAMP
amount STRING
tax_amount STRING
kind STRING
reason STRING
amount_set VARIANT
tax_amount_set VARIANT

Note

This table doesn't support SCD type 2 because it has VARIANT columns.

product_variant_media

Primary key: id Cursor field: parentUpdatedAt

Field Data type
id STRING
variant_id STRING
parentUpdatedAt TIMESTAMP
mediaContentType STRING
status STRING
alt STRING
image VARIANT
mimeType STRING
duration BIGINT
filename STRING
sources VARIANT
host STRING
embedUrl STRING
originUrl STRING
boundingBox VARIANT
updatedAt TIMESTAMP
createdAt TIMESTAMP

Note

This table doesn't support SCD type 2 because it has VARIANT columns.

order_shipping_line

Primary key: id Cursor field: parentUpdatedAt

Removed shipping lines are captured through the isRemoved column.

Field Data type
id STRING
order_id STRING
parentUpdatedAt TIMESTAMP
isRemoved BOOLEAN
title STRING
code STRING
source STRING
phone STRING
carrierIdentifier STRING
shippingRateHandle STRING
originalPriceSet VARIANT
discountedPriceSet VARIANT

Note

This table doesn't support SCD type 2 because it has VARIANT columns.

order_agreements

Primary key: id Cursor field: parentUpdatedAt

Field Data type
id STRING
order_id STRING
parentUpdatedAt TIMESTAMP
happenedAt TIMESTAMP
reason STRING
agreementType STRING

order_risks

Primary key: order_id Cursor field: parentUpdatedAt

Field Data type
order_id STRING
parentUpdatedAt TIMESTAMP
recommendation STRING
assessments VARIANT

Note

This table doesn't support SCD type 2 because it has VARIANT columns.

customer_address

Primary key: id Cursor field: parentUpdatedAt

Field Data type
id STRING
customer_id STRING
parentUpdatedAt TIMESTAMP
address1 STRING
address2 STRING
city STRING
province STRING
provinceCode STRING
country STRING
countryCodeV2 STRING
zip STRING
firstName STRING
lastName STRING
name STRING
phone STRING
company STRING

fulfillment_order_line_item

Primary key: id Cursor field: parentUpdatedAt

Field Data type
id STRING
fulfillment_order_id STRING
parentUpdatedAt TIMESTAMP
totalQuantity BIGINT
remainingQuantity BIGINT
lineItem VARIANT

Note

This table doesn't support SCD type 2 because it has VARIANT columns.

discount_redeem_code

Primary key: id Cursor field: parentUpdatedAt

Field Data type
id STRING
discount_id STRING
parentUpdatedAt TIMESTAMP
code STRING
asyncUsageCount BIGINT
createdBy VARIANT

Note

This table doesn't support SCD type 2 because it has VARIANT columns.

collection_product

Primary key: collection_id, product_id Sync mode: Full refresh only

Field Data type
collection_id STRING
product_id STRING

inventory_level

Primary key: id Sync mode: Full refresh only

Field Data type
id STRING
inventory_item_id STRING
updatedAt TIMESTAMP
location_id STRING
available BIGINT
on_hand BIGINT
committed BIGINT
incoming BIGINT
damaged BIGINT
reserved BIGINT
safety_stock BIGINT
quality_control BIGINT

deleted_products

Primary key: subjectId Cursor field: createdAt

Field Data type
id STRING
subjectId STRING
subjectType STRING
action STRING
createdAt TIMESTAMP
message STRING
author STRING

deleted_product_variants

Primary key: subjectId Cursor field: createdAt

Field Data type
id STRING
subjectId STRING
subjectType STRING
action STRING
createdAt TIMESTAMP
message STRING
author STRING

deleted_collections

Primary key: subjectId Cursor field: createdAt

Field Data type
id STRING
subjectId STRING
subjectType STRING
action STRING
createdAt TIMESTAMP
message STRING
author STRING

deleted_articles

Primary key: subjectId Cursor field: createdAt

Field Data type
id STRING
subjectId STRING
subjectType STRING
action STRING
createdAt TIMESTAMP
message STRING
author STRING

deleted_pages

Primary key: subjectId Cursor field: createdAt

Field Data type
id STRING
subjectId STRING
subjectType STRING
action STRING
createdAt TIMESTAMP
message STRING
author STRING

deleted_blogs

Primary key: subjectId Cursor field: createdAt

Field Data type
id STRING
subjectId STRING
subjectType STRING
action STRING
createdAt TIMESTAMP
message STRING
author STRING

deleted_draft_orders

Primary key: subjectId Cursor field: createdAt

Field Data type
id STRING
subjectId STRING
subjectType STRING
action STRING
createdAt TIMESTAMP
message STRING
author STRING

Required access scopes

The Shopify app must be authorized for the following Admin API access scopes. The scopes the connector requires depend on which tables you ingest. For more information, see the Shopify access scopes reference.

Access scope Required for
read_products products, product_variants, collections, custom_collections, smart_collections, collects, collection_product, deleted_products, deleted_product_variants, deleted_collections
read_inventory inventory_items, inventory_level
read_orders orders, abandoned_checkouts, transactions, tender_transactions, fulfillments, order_refunds, order_line_refund, order_adjustment, order_agreements, order_shipping_line, order_risks
read_draft_orders draft_orders, deleted_draft_orders
read_assigned_fulfillment_orders, read_merchant_managed_fulfillment_orders, read_third_party_fulfillment_orders fulfillment_orders, fulfillment_order_line_item
read_customers customers, customer_address
read_discounts discount_codes, discount_automatic, discount_redeem_code
read_content articles, blogs, pages, deleted_articles, deleted_blogs, deleted_pages
read_locations locations
read_files media, media_image, product_variant_media
read_shopify_payments_payouts balance_transactions
read_shopify_payments_disputes disputes

Note

  • To ingest orders and order-derived tables (such as orders, transactions, order_refunds, and fulfillments) older than 60 days, the app also needs the read_all_orders scope, combined with read_orders. Shopify grants read_all_orders by approval. Without it, read_orders returns only orders from the last 60 days.
  • The balance_transactions and disputes tables require Shopify Payments on the store.
  • Some customers, customer_address, and order fields are protected customer data. Shopify returns these fields from non-development stores only after the app meets the protected customer data requirements. See the Shopify access scopes reference.