Orders5 min read
Send Shopify Orders to Google Sheets Without Duplicate Rows
Why Shopify orders show up twice in Google Sheets or Excel, how to stop it, and how to send orders with line-item properties as their own columns.
In this guide
Duplicate rows usually come from a flow that runs more than once for the same order, or from a flow that keeps no record of which orders it already sent. To fix it, use one trigger per order, mark every order once it has been sent, and check the sheet against Shopify after the first run. Columna: Order Export & Sheets can send orders to a Google Sheets spreadsheet you connect, or to a CSV or XLSX file for Excel, and can tag the orders you export.
Why do Shopify orders show up twice in Google Sheets?
Merchants who build their own order-to-spreadsheet flow with Zapier, Make or Shopify Flow often see the same sale copied more than once. The cause is almost always in how the flow is set up:
- The trigger is too broad. A flow that runs on every order update, not only on a new order, adds a row each time the order is paid, fulfilled or edited.
- Nothing marks an order as sent. If a run fails halfway and is started again, or someone re-runs it by hand, the same orders are sent a second time.
- Later changes are patched by hand. Cancellations and refunds happen after the order is placed. If the flow does not handle them, people edit or re-add rows in the sheet, and the sheet slowly stops matching Shopify.
How do I stop duplicate order rows?
- Pick one trigger. One new order should add its rows once. Do not also add rows when the order is updated.
- Mark what you sent. Add a tag to each order once it is in the sheet. The tag shows you in Shopify admin which orders are already there, and lets you filter them out of the next run.
- Choose your row layout. Decide whether one order is one row, or each line item is its own row. An order with three products gives one row or three rows depending on this choice, so a count that looks like duplicates can simply be the line-item layout. Our guide to one row per line item compares the two.
- Check the first run. Place a test order, or take one closed day, and compare the number of orders in Shopify with the number of distinct order numbers in the sheet.
Which way of getting orders into a spreadsheet should I use?
| Shopify’s order export | A home-made Zapier, Make or Flow setup | Columna: Order Export & Sheets | |
|---|---|---|---|
| Where orders go | A CSV file you download or receive by email | Wherever you build the flow to send them | Google Sheets, or a CSV or XLSX file |
| Line-item properties (engraving, gift messages, upload links) | Not in the standard columns | Only if you map each one yourself | Each property key in its own Property: <key> column |
| Marking orders already sent | You tag them yourself | Only if you build that step | Optional tag on the orders you export |
| Row layout | Several rows per order, one per line item | Whatever you map | One row per order or one row per line item |
How do I connect Shopify to Excel?
Shopify’s order export gives you a CSV file from the Orders page, which you then open in Excel. An app can also write the file for you, as CSV or XLSX. Our guide to exporting Shopify orders to Excel covers the built-in export and how to open the CSV without losing leading zeros or accents. To get an .xlsx from that CSV with the order details on every line-item row, use the Shopify order CSV to Excel converter.
If your team works in Google Sheets instead, sending the orders straight to a spreadsheet saves the download and upload step. Either way, the rules above for avoiding duplicates are the same.
How does Columna send orders to Google Sheets?
Columna: Order Export & Sheets is a Shopify app on the Shopify App Store. Besides CSV and XLSX files, it can send orders to Google Sheets:
- Google Sheets. Send the export to a Google Sheets spreadsheet you connect.
- Your own columns. Pick and order the columns in a reusable template and rename the headers. The app scans your recent orders for property keys and offers a column for each, named
Property: <key>. - Filters. Choose orders by payment status, fulfillment status, date range and tags.
- Row layout. One row per order, or one row per line item.
- Optional tagging. Turn on tagging to add a tag to the orders you export, so you can see in Shopify admin which orders were already sent. This is the only change the app makes to your orders.
FAQ
Why does one order appear on several rows?
Usually because the sheet has one row per line item: an order with three products gives three rows with the same order number. If the same line item appears twice, the order was sent twice, and you need one trigger and a tag for orders already sent.
Can I send one row per order to Google Sheets?
Yes. In Columna you choose one row per order or one row per line item for the export. For production work with engraving text, one row per line item keeps each item’s text in its own row.
Do I need Zapier or Make to get orders into Google Sheets?
No. An app that writes to Google Sheets does the same job for order data. If your flow also connects many other tools, that part stays in Zapier or Make.
Does Columna change my orders?
Only if you turn on tagging, and then only to tag the orders you exported. Otherwise it reads orders and products.
Try Columna: Order Export & Sheets
Columna: Order Export & Sheets exports Shopify orders to CSV or XLSX with line-item properties (engraving text, gift messages and upload links), processed in your browser. It is made for shops that hand orders to production, fulfilment or accounting.
Set up the Columna Google Sheets sync, send a few test orders, and check that each order appears once. Try Columna: Order Export & Sheets on the Shopify App Store.