Open Dashboard › Import from sheet (you need the permission to bulk upload). Use it for your own records, a courier's list, or an export from a shop or an older system. Nothing is saved until the last button.
- Choose the file. CSV, TSV, Excel (
.xlsx) or the “.xls” files that shops export as a web table. Files saved by Excel as “CSV (semicolon)” or “Unicode text” are understood too. A very old binary.xlscannot be read safely: open it in Excel or Google Sheets and save it as.xlsxor CSV. Up to 20 MB and 60,000 rows. - Match the columns. The tracker finds the title row and guesses which column is the order number, status, date, tracking number, courier, city and COD amount. Correct anything that is wrong. If your sheet has several tabs, pick the tab. You need three things in every row: an order number, a status and a date.
- Say what each status word means. The words in your status column are listed with how many rows use each one. “Booked” or “Shipped” become Dispatched, “Returned to shipper” becomes Return received, and so on. A word it does not know starts as “Leave these rows out”: choose what it means if you want those rows. Or pick one status for every row.
- Check. The tracker reads every row without saving anything and tells you how many rows will be logged, how many orders are new, what the orders will show afterwards (for example Dispatched → Delivered), and every row that will be left out, with the reason and examples. You can download the left-out rows as a CSV with the reason on each line, fix them in the sheet and import again. Not happy? Change the columns and check again.
- Import. The rows are saved in small steps with a progress bar; keep the page open. If the page closes, open it again and look under Earlier imports.
How rows are read
- A sheet may list the same order several times (booked, returned, received): each row is one event, and they are applied oldest first with the same rules as every other upload.
- Order numbers follow your order-number rule (Settings).
1042,#1042and Excel's1042.0all become #1042. - Dates may be written as
20/10/2026,20-Oct-2026,2026-10-20 15:30, or an Excel date. For numbers like03/04/2026you choose day first or month first; the tracker suggests one from your dates. A date with no time is logged at 12:00 so that the same file always gives the same result. A date in the future, or one that does not exist (31 February), is left out. - The tracking number, courier, city and COD amount are only filled in where the order has none. An order's own tracking number is never replaced. Excel often turns a long tracking number into
1.23E+13and loses digits: such cells are not used, and the check tells you. - Orders that are already in the tracker: by default only what they do not have yet is added. You can also let the sheet correct a different date, or leave existing orders alone.
- Importing old orders? Leave Tell Shopify off, so the shop is not flooded with tag and fulfilment updates.
Taking an import back
Under Earlier imports press Undo. Every date, status and detail the import added is put back, and orders it created are removed. If a person or the courier changed an order after the import, that newer value is kept and the order is named afterwards.
TipAfter an import the usual automatic checks apply: a Dispatched order older than a day shows as In Transit, and orders waiting longer than your delay limits show as Delayed. That is the tracker working as it always does, not a problem with the import.