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.

4.8 on G2
ShopifySource
WeldWeld
Google BigQueryWarehouse

Checked against Weld and vendor docs on

Weld · New sync
ShopifySourceShopifyConnected
Tables to sync
  • order137 cols
  • customer26 cols
  • product_variant26 cols
  • transaction46 cols
  • product14 cols
  • location21 cols
  • Extract
  • Load
  • Keep in sync
Google BigQueryDestinationGoogle BigQueryReady
shopify dataset
  • 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

  • Flatpay
  • Holafly
  • eComplete
  • Dishoom
  • Danish Endurance
  • Female Invest
  • Son of a Tailor
  • Onomondo
  • Medik8
  • Pas Normal Studios
Options

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.

B

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.
C

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 it works

How to sync Shopify to Google BigQuery with Weld.
In the app, with the API or an agent.

Weld · Data warehouse
Google BigQueryData warehouseGoogle BigQueryConnected
Data locationChosen when you connect
CredentialsService account or key, stored encrypted
Schema

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.

Open the schema explorer
  • 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.

All 92 tables
  • 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
Example query

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.

Google BigQuery · query
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 desc
Weld MCP server

Ask 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.

Claude CodeOpus 5
>

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.

●weld·search_available_references
⎿raw.shopify.order
raw.shopify.customer
+ 90 more Shopify tables
●weld·get_reference_schema
⎿order · 137 columns
joins customer on customer_id
●weld·run_query
⎿select c.id, count(*) from {{raw.shopify.order}} o
join {{raw.shopify.customer}} c on o.customer_id = c.id
group by 1
submitted
●weld·get_query_status
⎿DONE
●weld·get_query_result
⎿rows returned
✓Answered from Shopify data in Google BigQuery
>Ask about your Shopify data
Under the hood

Things to know.
Before you sync Shopify.

Reverse ETL

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.
FAQ

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.

ShopifySource
WeldWeld
Google BigQueryWarehouse