Shopify to BigQuery
Sync your full Shopify order history, products, customers and inventory into BigQuery, and keep it current with incremental syncs. Weld lands 57 Shopify tables with their keys intact, so revenue, cohort and product reports are a SQL query away.
Checked against Weld and vendor docs on
- order137 cols
- customer26 cols
- product_variant26 cols
- transaction46 cols
- product14 cols
- location21 cols
- Extract
- Load
- Keep in sync
- shopify.orderSynced
- shopify.customerSyncing
- shopify.product_variantSynced
- shopify.transactionSynced
- shopify.productSynced
- shopify.locationSynced
- Shopify tables
- 92
- fields, typed
- 1,450
- relationships kept
- 54
- agent context included
- MCP
Trusted by data and AI teams
Three ways to get Shopify data into BigQuery
Google now has its own Shopify transfer, which is free while it is in Preview. It suits a quick start. For a pipeline you report revenue from, the questions are history, freshness and what happens when Shopify changes its API.
BigQuery Data Transfer Service
- Best for
- Trying Shopify data in BigQuery at no cost
- Effort
- Low: configure in the Google Cloud console
- Freshness
- Scheduled or on demand
- Good to know
- In Preview, so offered as is with limited support. Google's docs describe both incremental and full transfers, so check run behaviour on a large store.
Custom script on the Admin API
- Best for
- Teams with engineers to own a pipeline
- Effort
- High: pagination, rate limits, schema changes
- Freshness
- Whatever you schedule
- Good to know
- Shopify returns only the last 60 days of orders unless the app holds the read_all_orders scope, and the API is versioned quarterly, so the script needs upkeep.
Weld
- Best for
- Reporting and agents on reliable Shopify data
- Effort
- Low: authorise, pick tables, choose a schedule
- Freshness
- Incremental syncs on your schedule
- Good to know
- Requests read_all_orders for full history, adds history tables on request, and keeps 57 tables with their keys intact.
How to sync Shopify to Google BigQuery with Weld.
In the app, with the API or an agent.
What lands in Google BigQuery
Every Shopify table, keys intact.
Most Shopify reporting starts from five tables. They join on keys Weld keeps as they come from Shopify.
- order137 columns
- idPKlong
- customer_id→ customerlong
- location_id→ locationlong
- namestring
- shipping_address_phonestring
One row per order with totals, financial and fulfilment status, currency and cancellation. Filter out test orders with the test column.
- order_line_items
One row per product line on an order, with price, quantity, SKU and discount. Joins to order on order_id and to product on product_id.
- customer26 columns
- idPKlong
- currencystring
- emailstring
- multipass_identifierstring
- order_countlong
Customers with marketing consent state, order count and total spent. Orders link to it through customer_id.
- product_variant26 columns
- idPKlong
- product_id→ productlong
- inventory_item_id→ inventory_itemlong
- image_idlong
- skustring
Variants with SKU, price, compare-at price and inventory quantity. Joins to product and inventory_item.
- transaction46 columns
- idPKlong
- order_id→ orderlong
- error_codestring
- device_idstring
- user_idlong
Payment events per order: captures, refunds and voids, with gateway and status. The source for net revenue after refunds.
- order
- product
- customer
- location
- fulfillment_event
- product_variant
- fulfillment_order
- inventory_item
- draft_order
- shop
- fulfillment
- collection
- inventory_level
- product_variant_contextual_pricing
- inventory_level_quantities
- abandoned_checkout
- transaction
- abandoned_checkout_line
- order_agreement_sale
- order_line
- draft_order_line
- price_rule
- fulfillment_order_line
- order_line_refund
- order_customer_journey_summary_visit
- discount_code
- order_metafield
- transaction_fees
- payment_dispute
- company_contact
- and 62 more
Monthly gross sales by product type.
In Google BigQuery SQL.
Runs in BigQuery against the tables Weld lands, here in a dataset named shopify. order is a reserved word in BigQuery, so it is quoted.
1select2 date_trunc(date(o.created_at), month) as month,3 p.product_type,4 count(distinct o.id) as orders,5 round(sum(li.price * li.quantity), 2) as gross_sales6from shopify.`order` as o7join shopify.order_line_items as li on li.order_id = o.id8join shopify.product as p on p.id = li.product_id9where o.cancelled_at is null10 and not o.test11group by month, p.product_type12order by month desc, gross_sales descAsk your agent.
It queries Google BigQuery for you.
Connect Claude, Cursor, ChatGPT or your own agent to Weld over MCP. It reads the Shopify context, finds the tables it needs and runs the query in Google BigQuery.
How many order rows do we have per customer? Use our Shopify data in Google BigQuery.
Reading the Shopify context first, so the query uses the right tables and keys.
Things to know.
Before you sync Shopify.
ELT vs. reverse ETL: Shopify and Google BigQuery
ELT (Extract, Load, Transform) moves data from Shopify into Google BigQuery for analysis. This is the approach shown on this page, and the one to use for dashboards, reports, and data models.
Reverse ETL works the other direction: it pushes enriched data from Google BigQuery back into Shopify. For example, you could sync computed lead scores or customer segments from your warehouse into Shopify to personalize outreach.
Weld supports both directions, so you can build a complete data loop between Shopify and Google BigQuery.
Google BigQuery to Shopify- Full order history needs read_all_orders
- Without the read_all_orders scope, Shopify gives apps only the last 60 days of orders. Weld's app requests it for you. If you connect with your own access token or custom app instead, enable the scope yourself.
- Shop currency and presentment currency differ
- Orders carry amounts in the shop currency and in the currency the customer paid in, in separate shop_money and presentment_money columns. Pick one per report, or totals across markets will not add up.
- Refunds and cancellations change past orders
- Orders change after they are placed. Incremental syncs pick up updated rows, and history tables keep earlier versions when you need to report what a figure was on a given day.
- Shopify Plus tables
- The users table is only available through Weld's Shopify Plus connector, which needs a Plus subscription.
Keep reading.
Guides, docs and schema.
Common questions.
About Shopify to Google BigQuery.
Start syncing Shopify to Google BigQuery.
Set up your Shopify data pipeline in minutes. No credit card required. Free for 14 days.