Skip to content
adapters.io

Shopify to BigQuery integration for analytics-ready store data

The Shopify to BigQuery integration from Adapters loads orders, line items, customers, products, and refunds from Shopify into partitioned BigQuery tables on an incremental schedule, so cohort, LTV, and margin models run on a full order history instead of a manual export. Field mapping is no-code, so try it against sample records in the live demo.

No credit card required.

Field mapping auto-plugged · tap a port to rewire

5 sample records ready

Last updated September 2026

What running Shopify to BigQuery by hand costs you

  • The Shopify Admin API paginates by cursor and throttles by leaky bucket, so full-catalog and full-order backfills are slow to script.
  • Order edits, refunds, and cancellations change records after the fact, and a naive nightly dump into BigQuery misses those updates.
  • Blending Shopify with ad spend and payment fees for true margin means a warehouse table, not a folder of exported CSVs.

The field mapping, out of the box

These cables are pre-wired when you pick the pair. Rewire any of them, or add your own, in the same visual data mapping tool you use for every adapter.

Input / SHOPIFY

order.id
fct_order.order_id
order.total_price
fct_order.total_price
order.created_at
fct_order.created_at
line_item.sku
fct_order_line.sku
customer.id
dim_customer.customer_id
order.updated_at
fct_order.loaded_at

Transforms included

Incremental loads use the Shopify updated_at watermark so edits, refunds, and cancellations flow through on the next run; money fields cast to BigQuery NUMERIC, ISO 8601 timestamps land as TIMESTAMP in UTC, tables partition by order date, and line items land in their own table so margin and cohort models read one clean, deduplicated order history.

Shopify to BigQuery in depth

The Shopify side of this route is a cost budget and a bulk export. The BigQuery side is a set of load quotas that quietly decide your schedule. Read from Shopify and Google Cloud documentation on 20 August 2026.

Your Shopify plan sets the extraction rate

The GraphQL Admin API meters calculated query cost in points per second: 100 on Standard, 200 on Advanced, 1,000 on Plus, 2,000 on Enterprise. A single query may never exceed 1,000 points, and exceeding it rejects the query rather than throttling it, so no amount of backoff helps. Flatten the query and split the work. Every response carries a throttleStatus block you can pace against, which is the difference between a load that finishes and one that spends its budget rediscovering the limit.

Bulk operations are how you get the history

Paged queries stop at the 25,000 object pagination ceiling, and counts are only accurate up to the same figure, so do not verify a load by comparing a Shopify count to a BigQuery row count. Bulk operations sidestep both: asynchronous, exempt from the normal cost limits, JSONL output, and five concurrent bulk queries per app per shop from API version 2026-01. The result URL expires after a week. JSONL is convenient here because BigQuery loads newline-delimited JSON natively.

Load job quotas shape the schedule more than data volume

BigQuery allows 1,500 load jobs per table per day and 100,000 per project per day. That works out to a load every 58 seconds per table at best, so a near-real-time design built on load jobs runs out of quota rather than throughput. Batch to a few minutes, or use the storage write API for streaming. The upside is that batch load jobs are free, running on a shared slot pool, so a frequent small-batch schedule costs nothing in compute.

File and row size ceilings on the load itself

A single load job accepts up to 15 TB and must finish within 6 hours. For ndJSON the maximum row size is 100 MB, and a compressed source file cannot exceed 4 GB (5 TB uncompressed). Shopify orders with long line item arrays and heavy metafields are the realistic candidates for hitting the row ceiling. Split large bulk exports before loading rather than discovering the limit at hour five of a six hour job.

Shopify money is a decimal string, so use NUMERIC

A Shopify MoneyV2 returns amount as a Decimal such as 12.99 with a separate currencyCode. Load it into NUMERIC, not FLOAT64: floating point sums of order totals drift, and the drift shows up as a reconciliation gap nobody can locate. Keep the currency code in its own column even if you only sell in USD today, because adding it retroactively means restating every historical row.

Partition on the event date, cluster on the store

Partition orders by the order date and cluster by shop domain if you run multiple stores. That combination keeps a query for one store in one month reading a small fraction of the table, which matters because BigQuery bills on bytes scanned. An unpartitioned orders table is cheap to create and expensive forever after. The same partitioning discipline applies on Postgres to BigQuery.

Flatten line items deliberately

Shopify orders are naturally nested and BigQuery supports nested and repeated fields, so you can keep line items as an ARRAY of STRUCT inside the order row. That preserves fidelity and avoids a join. The cost is that every analyst has to know to UNNEST. If your consumers are BI tools rather than SQL users, land a flat line-items table alongside the nested order. Tables cap at 10,000 columns, which is generous unless metafields are being exploded into columns.

Late refunds mean the warehouse restates

Refunds and fulfillments arrive after the order they belong to, sometimes in a later month. Extract on updated_at rather than created_at, or the entire refund stream is invisible to an incremental load. Use partition overwrite for the affected days rather than appending, so a restated period does not double count. The wider set of decisions on this route is on Shopify integration tools.

How it goes live

Three steps, minutes end to end, covered by flat data integration pricing from $49 a month.

STEP 01

Pick the pair

Connect Shopify and BigQuery with scoped credentials. About a minute each.

STEP 02

Confirm the mapping

The cables above are pre-wired. Adjust any field, preview the transform on sample records, done.

STEP 03

Schedule the sync

Hourly down to every minute, with retries, alerting, and a full log on every run.

Prefer to understand the moving parts first? Our long-form guide to the Shopify to BigQuery guide covers the field-by-field detail, the failure cases, and what changes at volume.

Try it in the live demo Preloads SHOPIFY → BIGQUERY with sample records

Shopify to BigQuery sync: common questions

How do I connect Shopify to BigQuery?

Through the Shopify Admin API, reading orders, line items, customers, products, variants, refunds and transactions, then loading each into a partitioned BigQuery table. There is no direct link from BigQuery to Shopify, so a connector or scheduled job holds the API credentials and owns the incremental watermark.

How long does a Shopify backfill to BigQuery take?

Longer than most people expect on a large store, because of rate limits. The REST Admin API uses a leaky bucket with a 40 request capacity that drains at 2 requests per second on standard plans, 4 per second on Advanced and 20 per second on Shopify Plus. A multi year order history is therefore measured in hours, not minutes.

Which Shopify data should you load into BigQuery?

Orders and order line items first, then customers, products and variants, then refunds and transactions. Line items are what let you analyze by product and margin, and they are the table most first attempts omit. Transactions matter if you need to reconcile payouts rather than just report on sales.

How do you handle Shopify order edits in BigQuery?

Merge rather than append. Shopify orders change after creation through edits, refunds, fulfillment updates and cancellations, so an append only load produces several versions of the same order and every revenue query double counts. Read on updated_at and merge on the order ID so the table always holds the current state.

How does the Shopify to BigQuery sync work?

The Shopify to BigQuery integration from Adapters loads orders, line items, customers, products, and refunds from Shopify into partitioned BigQuery tables on an incremental schedule, so cohort, LTV, and margin models run on a full order history instead of a manual export. Field mapping is no-code, so try it against sample records in the live demo.

Is there a prebuilt Shopify connector for BigQuery?

Yes. This Shopify to BigQuery connector ships prebuilt: the field mapping is wired the moment you pick the pair, transforms are included, and you can try it against sample records in the live demo. No code or engineering sprint required.

How much does the Shopify BigQuery integration cost?

Pricing is flat and monthly: Starter at $49, Growth at $149, Scale at $399. Every plan includes this pair, visual field mapping, and per-record logs. There are no per-task or per-row fees, so the bill stays the same as volume grows.

How often can Adapters sync Shopify to BigQuery?

Hourly on Starter, every 5 minutes on Growth, and down to every minute on Scale. Failed records retry automatically with backoff, and alerting plus a full per-record log come standard on every run.

Do I need to write code to connect Shopify and BigQuery?

No. Fields are auto-mapped the moment you pick the pair, and you can rewire any mapping visually before the first sync. Incremental loads use the Shopify updated_at watermark so edits, refunds, and cancellations flow through on the next run; money fields cast to BigQuery NUMERIC, ISO 8601 timestamps land as TIMESTAMP in UTC, tables partition by order date, and line items land in their own table so margin and cohort models read one clean, deduplicated order history.

More pairs from the API connector library

stripe quickbooks integration shopify netsuite integration salesforce hubspot integration airtable google sheets sync postgres to snowflake sync shopify quickbooks integration salesforce netsuite integration paypal quickbooks integration square quickbooks integration stripe netsuite integration hubspot quickbooks integration quickbooks to xero migration shopify xero integration salesforce to snowflake integration square netsuite integration hubspot xero integration salesforce to bigquery integration postgres to bigquery netsuite to snowflake integration quickbooks to bigquery integration stripe to snowflake integration shopify to snowflake integration quickbooks to snowflake integration hubspot to snowflake integration netsuite to bigquery integration stripe to bigquery integration paypal to snowflake integration square to snowflake integration square to bigquery integration netsuite to postgres integration salesforce to postgres integration xero to snowflake integration hubspot to bigquery integration xero to bigquery integration paypal to bigquery integration stripe to postgres integration snowflake to bigquery migration shopify to postgres integration hubspot to postgres integration bigquery to snowflake migration quickbooks to postgres integration xero to postgres integration square to postgres integration paypal to postgres integration snowflake to postgres mysql to postgres migration mysql to snowflake redshift to snowflake migration mysql to bigquery sql server to snowflake sql server to postgresql migration

Browse the full api connector library, or request a pair you do not see.

Shopify and BigQuery, finally in agreement

Map the pair once and let it sync on schedule. Flat price from $49 a month, no per-task fees.

Try the live demo

No credit card required.