← All posts

How to Export More Than 250 Shopify Orders to Google Sheets

If you've tried to pull your full order history out of Shopify, you've already met the wall: 250 rows. That's the limit on Shopify's built-in export, and it doesn't matter whether you're exporting to a spreadsheet, a BI tool, or anything else. This guide shows how to get around it — and uses that full dataset to build something immediately useful: a revenue-by-product breakdown that's actually accurate.

The Problem: 250 Rows Isn't a Report, It's a Sample

Shopify's admin export gives you a CSV with up to 250 orders. For a store doing any real volume, that's a few days of data at best. Any report you build on top of it — revenue by product, order value distribution, refund rate — is built on a sample, not your full history.

This isn't a new frustration. It comes up constantly across the Shopify community, and it affects every tool that tries to connect to Shopify through the standard export path — spreadsheets, BI tools, everything.

The Shopify Admin API doesn't have this limit. It returns your full order history with pagination, filtering, and field selection. The barrier has always been access: most merchants don't want to set up API credentials, write pagination logic, or manage a data pipeline just to get their own order data.

API Import handles all of that.

Setup: Connect Shopify in Two Minutes

Open API Import from the Extensions menu in any Google Sheet and select Shopify from the connector list.

You'll need two things from your Shopify admin:

  1. Store URL — your yourstore.myshopify.com domain
  2. Admin API access token — create one under Settings → Apps and sales channels → Develop apps

Paste both into API Import. That's the entire setup — no OAuth redirect, no webhook configuration, no credentials file to manage.

Execution: Pull Your Full Order History

In the API Import prompt field, describe what you want:

"Get all orders from the last 12 months including order ID, created date, financial status, line items, quantities, and prices."

API Import handles the parts that make direct API access tedious:

  • Pagination — Shopify returns orders in pages of up to 250; API Import follows next cursors automatically until all records are retrieved
  • Field selection — maps your plain-English request to the correct Shopify API fields (line_items, total_price, financial_status, etc.)
  • Date filtering — translates "last 12 months" into the correct created_at_min parameter

The result lands in your sheet with one row per line item — meaning each product within an order gets its own row, which is exactly what you need for product-level analysis:

Order IDDateProductVariantQtyLine TotalStatus
58212026-04-01Slim WalletBlack2$58.00paid
58212026-04-01Card HolderTan1$24.00paid
58222026-04-02Slim WalletBrown1$29.00refunded

No CSV. No copy-paste. No 250-row ceiling.

Analysis: Revenue by Product Across Your Full Catalogue

With the full dataset in Sheets, add a SUMIF to aggregate revenue per product title:

=SUMIF(C:C, "Slim Wallet", F:F)

Or use a pivot table — select the data range, then Insert → Pivot table, and set:

  • Rows: Product
  • Values: Line Total (sum)
  • Filter: Status = "paid" (exclude refunded orders)

What you get is a ranked list of every product by revenue, calculated across your entire order history — not a 250-row slice of it. For stores with seasonal inventory, a catalogue of 50+ SKUs, or more than a week's worth of orders, this is the first time that number is actually correct.

Reading the results

High revenue, high volume: Your core SKUs. These are the products to protect — keep them in stock, watch their refund rate, and make sure ad spend is supporting them.

High revenue, low volume: High-ticket items with limited reach. Check whether low volume is a supply constraint or a discovery problem — if the conversion rate is strong, they may be undersupported by paid or organic traffic.

Low revenue, high volume: High-frequency, low-value products. Consider whether they're being used as entry points (good) or whether they're diluting average order value (worth testing a bundle).

Consistently refunded products: Cross-reference the pivot with a separate COUNTIF on refunded line items. Any product with a refund rate above 10–15% warrants a closer look at sizing, description accuracy, or supplier quality.

Keeping the Data Current

Re-running the prompt weekly takes seconds and gives you a rolling view of how product revenue shifts over time. Paste the new export into a second tab, and your pivot table can reference both ranges with a simple INDIRECT — no formulas to rewrite, no manual merging.

For stores running promotions or testing new SKUs, a weekly cadence makes it easy to see the revenue impact within the same reporting week it happened.

Ready to pull live API data into Google Sheets™?

Install the free add-on and import your first dataset in minutes.

Install Free on Google Sheets™