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
Plug a source port into
Transform on this cable
JSON in
JSON out
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
Output / BIGQUERY
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.
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
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.
No credit card required.