Back to Blog
WooCommerce Shipping Aug 10, 2026

How to bulk import tracking numbers in WooCommerce with AST PRO

Yash Patel

Yash Patel

Administrator

How to bulk import tracking numbers in WooCommerce with AST PRO

Your warehouse sends over a spreadsheet with 400 tracking numbers every afternoon. You open WooCommerce, find order 1042, paste a number, save, and repeat. By order 60 you’ve stopped checking whether the carrier dropdown matched what the warehouse wrote, and somewhere in there a customer gets a tracking link that goes nowhere.

Bulk entry is the fix, but only if the file imports cleanly the first time.

AST PRO — Advanced Shipment Tracking for WooCommerce includes a CSV import tool that adds tracking numbers to hundreds of orders in one pass, fires your fulfillment workflow as it goes, and reports exactly which rows failed and why.

This guide walks through building a file that imports without errors, and the three formatting traps that cause most failed rows.

Eight steps to a clean CSV import

1. Open the import tool and download the sample file
Go to WooCommerce → Shipment Tracking → CSV Import. At the bottom of the Manual CSV Form tab there’s a “Download sample csv” link. Use that file as your template rather than building headers from memory.

2. Keep the first five columns in this exact order
The importer reads the first five values by position, not by header name: order_id, tracking_provider, tracking_number, date_shipped, status_shipped. If your warehouse export puts the tracking number in column two, reorder it before uploading. Optional columns (sku, qty, shipping_note) are matched by header name, so those can sit anywhere after the first five.

3. Save tracking numbers as text, not numbers
This is the single most common cause of failed rows. Excel and Sheets convert long numeric tracking numbers into scientific notation (1.234E+11), and AST PRO rejects anything in that format rather than importing a corrupted number. Format the column as Text before pasting, or export straight to CSV from your carrier without opening it in a spreadsheet app.

4. Avoid commas inside any field
Rows are split on every comma, so a shipping note like “Left with neighbour, side door” will shift every column after it. Use semicolons or dashes inside note fields instead.

5. Match carrier names to your enabled carriers
The value in tracking_provider is checked against your AST PRO carrier list: the display name, the API provider name, or the carrier slug will all match. “UPS” works, “United Parcel” does not. If your warehouse uses its own carrier labels, map them to AST names in the export before it reaches you.

6. Pick the shipped date format that matches your file
Under the upload box you choose either dd/mm/YYYY or mm/dd/YYYY. Every row in the file has to use the format you selected, because a mixed file will pass some rows and fail others. Leave date_shipped empty and today’s date is used.

7. Use status_shipped to control what fires
Set it to 1 and the order runs through your fulfillment workflow: status update, tracking email, and any TrackShip handoff. Set it to 0 and the tracking number is stored quietly with no customer notification, which is useful for backfilling historical orders.

8. Add sku and qty for partial and split shipments
Include both columns and AST PRO attaches the tracking number to specific line items instead of the whole order. The quantity has to be a positive whole number, and it cannot exceed what is still untracked on that item, so a row asking to track 3 of a product where 2 remain will fail with the exact counts in the log.

Replace or skip: choosing your import mode

Before you hit Import Tracking Numbers, decide what happens to orders that already have tracking.

Leave “Replace tracking information?” off and any tracking number already present on the order is skipped, so re-uploading yesterday’s file is safe. Switch it on and existing tracking on matched orders is removed and rebuilt from the CSV, including removal from TrackShip for the numbers that get dropped. Use replace mode when you are correcting bad data, not for daily runs.

Then watch the log. The importer shows a live progress bar, a success count, a failed count, and a line-by-line console listing each failure with the order number attached, so you can fix just those rows and upload again.

Automating recurring imports

If the same file lands in the same place every day, the manual upload is wasted effort. Switch to the SFTP/FTP Automation sub-tab, enter your server credentials, and set a schedule. AST PRO then polls the remote file on a cron job and imports it in the background with the same validation rules.

For one-off batches of ten or twenty rows, the Bulk Paste tab is faster still: paste the rows straight in, no file needed.

What each CSV column does

ColumnPurpose
order_idMatches the WooCommerce order
tracking_providerCarrier name or slug
tracking_numberThe number, saved as text
date_shippedShipped date in your chosen format
status_shipped1 fires workflow, 0 stays silent
skuOptional, targets a line item
qtyOptional, units in this shipment
shipping_noteOptional, no commas

Get the file right once

A CSV import that fails halfway is worse than manual entry, because now you have to work out which orders went through. Get the column order, the text formatting, and the carrier names right once, save that export template, and a 400-row fulfillment day becomes a two-minute upload.

📦 Ready to stop typing tracking numbers one at a time?

Import hundreds of tracking numbers in one pass, with per-row error reporting and scheduled SFTP imports for files that arrive daily.

14-Day Money-Back Guarantee. HPOS Compatible. 1010+ Carriers Supported. Priority Support.