Running an eCommerce store on Shopify (or any other platform) inevitably generates lots of data about orders, customers, products, and more. As the traffic grows, you may find it easier to export orders on Shopify and analyze them elsewhere – for example, in Google Sheets. Doing so is also handy if you wish to create a backup of your data, move it to another platform, or make bulk edits to thousands of records at once.
Luckily, doing any kind of exports from Shopify is easy but, as is often the case, there’s more than one way of doing it. We’ll explain the available flows and answer some more specific questions you might have.
How to export Shopify orders?
When it comes to exporting orders, you can do it in three ways:
- Export data manually from Shopify as a .csv file.
- With third-party tools, run automated imports that will pull data from your store into Google Sheets, Excel, or other destinations.
- Use Shopify’s Rest APIs (in particular, Order APIs) to move orders data to external destinations, either as a one-time activity or, more commonly, as a recurring process.
You have probably come across the manual method as the Export button on nearly every page is impossible to miss. Shopify has a built-in functionality for exporting data as .csv files. This format is widely supported in both cloud-based tools (including Google Sheets and Google BigQuery) as well as desktop clients (MS Excel, Apple Numbers, and many others).
We’ll explain how the process works in the “How to export Shopify orders manually?” section.
A far more useful way from the store owner’s perspective, however, is exporting Shopify orders automatically. It can be done with dedicated tools, such as Coupler.io, that don’t require any coding and are very straightforward to set up.
The advantage of such an approach is that you can have an app pull data from your Shopify account automatically on a recurring basis. For example, you can set up an importer that will update your orders every hour, keeping the spreadsheets always up to date, with zero effort on your side.
We’ll explain how it works in detail in the “How to export Shopify orders automatically?” section.
Exporting via Order APIs may sound a lot more technical because it’s an activity that often requires developers. Engineers can indeed use Shopify API to extract data at will. For details on how to get the most out of this method, please consult the API documentation.
How to export Shopify orders manually?
If you opt for a .csv export of Shopify orders, the process is very simple.
- Navigate to your orders page and hit the Export button in the top-right corner.
- Here, decide on the range of orders you want to export. If you’re exporting into a dedicated spreadsheets tool (as we are), you may want to opt for the CSV for Excel, Numbers… option that is selected by default. Plain CSV files are more suitable for exporting into other types of tools – for example, to a CRM or a support client.
- A file will be downloaded or emailed to you shortly if you’re exporting data about more than 50 orders.
- Now import it into the program of your choice. For example, if you import into Google Sheets, open a new spreadsheet, select File -> Import, and drop a freshly downloaded file. Select the desired options (the default options are probably okay for starters) and hit the Import data button.
- After brief processing, your orders will be imported into your Google Sheets file.
The limitations of manual exports
Interestingly, the order data exported with a .csv file and via an API isn’t precisely the same. Neither is incorrect by any means – both sources are equally reliable. The difference is that export performed via API are more detailed and may be necessary if you wish to dig deeper into, for example, how customers find you or what drives their buying decisions.
To give you an example, some fields missing from .csv reports are:
- Reason for cancellations
- Discounts and taxes applied (.csv file contains only the totals for both)
- The referring site and the first page a user visited on entering your store
- Date and time when the order was processed or updated
- Customer’s currency
Why the differences? We can’t speak for Shopify, but it’s fair to assume that the size of exportable files is the reason here.
Large Shopify order exports may take a considerable amount of time. Shopify itself estimates that, for example, a .csv export of 400,000 orders may take about four hours. Consequently, if all available data fields made their way into the exported file, the process could double or even triple in time. At that point, new orders would have likely flown in, possibly making the export already outdated.
If you’re curious about exploring the differences, we’ve got something for you. Our data analyst compared each of the 185 fields exportable from Shopify with Coupler.io importer with the contents of a .csv export and things you can find in the Shopify dashboard. Find them in this spreadsheet.
How to export Shopify orders automatically
Exporting as a .csv file is fine if you only need to do it once every couple of months. If you need to generate reports regularly, automating exports will make things a lot easier.
To do that, you can either develop a custom functionality with Orders API or take advantage of the ready-made solutions. You’ll find quite a few options in the Shopify App Store, suitable for different types of reporting, most coming with a 7- or 14-day free trial.
If you need more flexibility, you’ll enjoy Coupler.io. It lets you pull data from various apps, including Shopify, into one of the destinations of your choice: Google Sheets, Google BigQuery, or Microsoft Excel – on schedule and in a fully automated manner. Let’s see how to set it up.
- Sign up for a Coupler.io account with your Google account or log in if you already have an account. No credit card is required and the account is free up to the limit of 50,000 exported rows.
- On the Importers page, click on ADD NEW and pick Shopify as your source.
- Populate the required fields. To generate an API key and password, please follow the help text included on the page. When deciding on the permissions, you want to be sure that you have Read access for Orders and Order editing. Read and write access won’t be necessary when exporting data.
Of course, if you wish to export more than just orders, you can grant access to as many items as you wish.
- In the Source configuration, pick Orders as a Data entity if you’re interested in a general import or Orders with line items if you also need information about the products in a cart (names, SKU, weight, etc.).
- Fill in any optional fields if you want. Select also a Destination – in our example, it’s Google Sheets but, as we mentioned earlier, you can also choose to export Shopify to BigQuery and Excel.
- Save, run the importer, and see the first results.
Let’s now explore several common scenarios with the Shopify Google Sheets integration that involve more custom imports – those that pull only specific data or offer even more data fields than the regular imports.
How to export unfulfilled orders from Shopify?
It may be very useful to have all unfulfilled orders in one place. Of course, you have them available in the Shopify dashboard, very easy to filter from all the others.
But when more of those pile up, getting a regularly updated list in a spreadsheet will make tracking the progress a lot easier. This functionality is natively supported by Coupler.io’s Shopify importer.
Hit the Edit button on the importer we set up earlier or create a new importer for Shopify and the destination of your choice. In the Source settings, go to Advanced settings, and select unfulfilled in the Order fulfillment status menu.
In the meantime, make sure that your private app has at least read permissions for Fulfillment services.
Then, run the importer, and it will pull only unfulfilled orders into your spreadsheet.
How to export Shopify orders by language?
Sorting orders by the language of the buyer’s browser/system may be helpful from a marketing standpoint – when analyzing your client’s behavior and personalizing their next visits, for example. In the data you export, you’ll be looking at the property named customer_locale.
The simplest way of filtering orders by language is with the spreadsheets tool itself. Export all data with – for example, Shopify to Google Sheets importer. Then, go to Data -> Pivot Table. Select all the populated columns as the range.
- In Rows, select the column containing customer_locale.
- In Columns, you may add some other data you want to simultaneously. For example, we chose to see the financial_status for each customer_locale.
- In Values, select the function COUNTA, which will sum up the number of orders for each customer_locale.
In our case, the pivot table looks as follows:
How to export international orders from Shopify?
This is also done most easily in the spreadsheet itself. Export all orders and simply set up filtering for the column billing_address.country. In Google Sheets, select the column in question, and then Data -> Turn on filter. In the filter settings, deselect your home country and domestic records will be hidden from the list. You can, of course, build also another pivot table to count the number of orders for each country.
How to create an archive of Shopify orders?
Coupler.io is particularly helpful for creating an archive of your orders. When setting up a Shopify importer, you can toggle on the Automatic data refresh.
There, you can decide how frequently the data should be updated (every hour, day, or month), on which dates, and at what time. An importer set up this way will run automatically at specified times, updating the data in your spreadsheet with each new import.
You can create Shopify archives also for orders with line numbers, products, and customers.
How to export metafields of Shopify orders?
Unfortunately, metafields are not exported with orders, whether you export manually or run the automated importers. There is, however, an alternative way to pull metafields without any coding.
Note, however, that you won’t be able to export metafields of multiple orders at once. It’s not a bug but more of a current limitation of the Shopify platform. It doesn’t only apply to orders but also to products, clients, and any other entities. It has been raised within the community multiple times but, so far, with no effect. If it works for you, try using tags, or notes instead that you’ll be able to export with orders the usual way.
To export metadata associated with a particular order, we can use the private app that we set up in the earlier sections.
- Open the Coupler.io dashboard, click on ADD NEW, and select JSON Client from the dropdown list.
- Now, go to Apps -> Manage private apps, open your app and copy its Example URL.
- In a separate editor, edit it. The part at the very end of the URL:
where ORDER is the ID that appears in the URL of the order page, not the actual order ID visible in the dashboard (
#1004 in the example below).
An example URL for this particular order will look as follows:
- Back to Coupler.io importer setup, add this URL as JSON URL and insert metafields as Path on the same page.
- Then proceed with the destination setup as before, add an optional schedule and run the importer. This will import metadata for the selected order right into Google Sheets or another destination.
Note that if you have the Coupler.io addon for Google Sheets installed, you won’t need to open the Coupler.io dashboard every time you want to change the order’s ID. Instead, while on the Google Sheets file you want to import the data to, click on Add-ons in the menu, then Coupler.io, and Open dashboard.
In the newly opened menu, find your importer, click on the three-dots menu, and then Edit. Here, edit the order ID in the JSON URL and re-run the importer by clicking on the Save & Run button. Metadata for the order will be fetched within seconds.
How to export Shopify orders with code?
Rather than run a dedicated importer, you can also query Shopify API to get the desired data about your orders or, for example, to update orders in bulk. Each request you can send is pretty well covered in the Orders API documentation.
To perform any action, you’ll need to find your JSON URL. Copy it from the settings of your private app, the same as we did in the previous chapter. It will look as follows:
The most basic thing would be to get all orders. Do it by adding ?status=any to the end of your GET request.
You can also use Coupler.io once again to execute these queries, with the more generic JSON client importer. As you set up the Source, insert your Example URL as JSON URL, select the type of request, and insert the criteria into the URL query string field as shown in the example:
How to export order with tracking number?
With Orders API you can export over 180 fields about each particular purchase. Interestingly, things like a tracking number associated with an order aren’t a part of this API.
To get such vital details, we’ll need to query a different Shopify API – Fulfillment API. It will also require small adjustments to our JSON Client -> Google Sheets importer.
As was the case for metadata, we can only query API for individual orders. The syntax of the JSON URL also looks a bit different. Here’s an example:
When setting up the Coupler.io importer, be sure to also change Path to fulfillments. Run the importer and head over to your spreadsheet where you’ll find the tracking number for the selected order, along with other details (shipping company, URL for tracking, as well as vital order details).
How to export Shopify orders with pictures?
It could be handy to get all the order details along with the picture of the purchased product. Sadly, product pictures are not a part of Orders API and, as such, can’t be pulled together with orders. You’ll need to make two separate calls, one to Order API, another to the Product API.
Before you continue, make sure that your private app has at least the read access to Products and Products listing.
Knowledge is power. There’s a lot of data about your orders that you can easily pull into the destinations of your choice. You may find it easier to view them this way, rather than jumping between pages in your Shopify dashboard, not to mention any sorts of manipulation you can perform.
Thanks for reading!Back to Blog