Set up a Shopify export, then choose tabs, columns, and a date range. Use the data reference when you need every field spelled out.
Create a Shopify export and pick tabs, columns, and a date range.
See every available field for each Shopify tab.
How Orders, Line Items, and refunds are filtered.
After connecting your Shopify store, configure exports to send store data to Google Sheets, BigQuery, or Excel. Start with a few tabs, run the export once, then add more fields as you need them.
The Shopify export configuration screen
The date range applies to Orders, Line Items, Customers, Sales Metrics, Product Analysis, Refund Analysis, Refund Line Analysis, Payouts, Balance Transactions, and all Analytics tabs. Products, Store, Locations, Inventory, and Inventory Locations always export current data.
Shorter ranges run faster. Common options include:
The date range dropdown also includes Today, Yesterday, Last 3 / 14 / 28 / 90 days, Last 6 months, Last month, and This quarter.
Each data type writes to its own tab, worksheet, or BigQuery table. Enable a tab by selecting columns for it.
The tab interface for configuring different data types
Full column lists: Shopify data reference.
On each tab, choose the fields to include. Use Select All or Deselect All to start from a full or empty set, then keep only what you need.
The column selection interface for a data tab
Some tabs also offer JSON variants of list fields for BigQuery and scripts. See Segment and list JSON columns. For refunds, totals, and date columns, see Advanced features.
Use append for data you want to track over time (orders, sales metrics). Use replace for current-state data (inventory, products).
Open a topic below if you need refunds, JSON columns, Shopify Payments, or metafields.
Orders and Line Items use slightly different filters for the same date range:
| Scenario | In Orders? | Products + Shipping in Line Items? | Refund row in Line Items? |
|---|---|---|---|
| Order created in window, never refunded | Yes | Yes | n/a |
| Order created in window, refunded in window | Yes | Yes | Yes |
| Order created in window, refunded before the window | Yes (Total Price already reflects the refund; Refunded Amount is populated) | Yes | No (refund happened in an earlier window) |
| Order created before the window, refunded in window | No | No | Yes (Order Date on the refund row is the original order date, outside the window) |
| Order created in window, refunded in a future window | Yes | Yes | No (refund has not been processed yet) |
created_at. Total Price, Subtotal, and Refunded Amount reflect the order's current state (all-time refunds included).created_at filter.refund.createdAt).If you sum Total Price on Orders and on Line Items for the same window, they may not match exactly. Use Refunded Amount to see how much of an order has been refunded. If an order has a refunded amount but no matching Refund rows in Line Items, the refund happened in an earlier window. Widen the date range to include the refund's processed date.
Line Items totals: Total Price is the net price after discounts for product and shipping rows (it equals Discounted Price). Refund rows use a negative Total Price equal to the refund amount. Sum Total Price across product, shipping, and refund rows of the same order to reconcile to Shopify net sales (excluding tax). Use Discount Amount for the discount allocated to each line.
Refund rows in Line Items: Each refunded line is its own row with Line Item Type = Refund, a negative Total Price, and the original product's SKU, variant, and product fields populated.
Refunded Amount on Line Items: Per-row. Refund rows show the amount for that line; product and shipping rows show 0. Sum across an order, or use the Orders tab Refunded Amount column.
Orders totals: Subtotal and Total Price are current values (refunds subtracted), matching Shopify's Total sales view. For a fully refunded order both are 0, with Refunded Amount equal to the original total.
Product Analysis and Refund Analysis: Gross Sales is product price × quantity before discounts and refunds. Net Sales subtracts Discounts and Returns, matching Shopify's Sales by product report.
On Orders and Line Items, Order Date is date only (YYYY-MM-DD), which is easier for grouping and pivoting. Add Order Date Time if you need the full timestamp (YYYY-MM-DD HH:MM:SS). Existing BigQuery tables with an order_date column keep their schema. If that column was typed as TIMESTAMP, new values are written as midnight (00:00:00). Add Order Date Time to recover full precision.
Segment and discount lists are available as comma-separated columns and as JSON array strings on the same row. Use the JSON variants with PARSE_JSON in BigQuery or JSON.parse in Apps Script.
If the Customers export feels slow, remove the segment columns. See Tips.
[].When you enable Note Attributes on the Orders tab, SyncRange exports additional details as a JSON array string column named Order Note Attributes. Example: [{"key":"delivery_window","value":"Afternoon"}]. Duplicate keys are preserved. This works in Google Sheets and BigQuery.
SyncRange can export Shopify Payments data when your store uses Shopify Payments and has granted the read_shopify_payments_accounts and read_shopify_payments_payouts scopes.
issued_at. Supports Since last export.processed_at. Supports Since last export.Reconnect required: Stores connected before this feature was added must reconnect Shopify to grant the new scope. If the scope is missing or Shopify Payments is not activated, those tabs are skipped and the rest of the export continues.
Column definitions: Payouts and Balance Transactions.
Analytics tabs pull aggregated report data from Shopify via ShopifyQL (shopifyqlQuery). They are grouped into six chips (Sessions, Campaigns, Marketing Engagements, Search, Web Performance, Shop Campaigns). Groups with multiple reports let you select one or more breakdowns; each selected breakdown still exports to its own destination table.
These tabs require the read_reports access scope. Shopify may also require Level 2 protected customer data access for Analytics queries.
Reconnect required: Stores connected before this feature was added must reconnect Shopify to grant read_reports. If the scope is missing, Analytics tabs are skipped and the rest of the export continues.
Column definitions: Analytics tabs.
On the Orders, Products, and Collections tabs you can add up to eight custom metafield columns. Each key becomes its own column: the header is the metafield name (for example custom.internal_id), and each row shows that metafield's value. This works in Google Sheets and BigQuery.
Enter keys in namespace.key format. Leave a slot blank if you do not need it. In Shopify admin, copy the name from Settings → Custom data for that resource (or from a record's metafields).
| Tab | Shopify admin | Example keys |
|---|---|---|
| Orders | Settings → Custom data → Orders | custom.internal_id, custom.po_number |
| Products | Settings → Custom data → Products | custom.brand, custom.segment |
| Collections | Settings → Custom data → Collections | custom.segment, custom.brand |
Where to find the metafield name (namespace.key) in Shopify admin.
Something missing on this page? Email [email protected]