Warehouse Shipping Workflow: CSV to Printed Labels
A step-by-step warehouse workflow for turning an order export into printed carrier labels: CSV import, header mapping, rate selection, and auto-print.
A warehouse shipping workflow that runs from a CSV export to printed labels has five stages: export orders from the system of record, import the file with the column headers mapped once, review the queue for weight and address problems, choose a carrier per shipment or in bulk, and send the labels straight to a thermal printer. Done well, the file goes in at the start of the shift and labels are on the pack bench a few minutes later. This guide walks through each stage on GoatLabels, where CSV import with header aliasing, one "To Ship" queue and auto-print via PrintNode are built in, and points out where warehouses usually lose time.
Where does the CSV come from?
The CSV is the bridge between whatever holds your orders and the label tool. Common sources:
- A store export. Shopify, WooCommerce, Amazon and similar platforms export orders as CSV. If you sell on one of the 13 stores GoatLabels connects to directly, syncing is faster than exporting, but CSV still matters for platforms without a connector.
- A WMS or ERP report. Warehouse systems produce pick lists and shipment manifests that can be saved as CSV.
- A spreadsheet. Wholesale orders, replacements and internal transfers often live in a sheet maintained by hand.
The file needs, at minimum, a recipient name, address lines, city, state or region, postal code, country, and a weight. Dimensions, order reference, phone and email make the labels better but are not required to get started.
How does header aliasing save mapping time?
Every export names columns differently. One file says "Ship To Name," another says "recipient," a third says "customer_name." Header aliasing means the importer recognizes common variants and maps them to the right field without you dragging columns around every time.
Rules that keep imports clean:
- Keep one export template per source. Save the export configuration in your store or WMS so the column set is stable week to week.
- Put weight in one unit. Mixed ounces and pounds in the same column is the most common cause of a wrong billable weight.
- Do not merge address lines. Suite and unit numbers belong in a second address column, not appended to the street with a comma.
- Include an order reference. It prints on the label as a reference and makes reconciliation possible later.
The bulk shipping labels from CSV page shows the import screen and the fields it recognizes.
What should the queue review catch?
After import, every row lands in the "To Ship" queue next to orders synced from connected stores. The queue review is a two-minute pass that prevents the two most expensive mistakes in parcel shipping: bad addresses and wrong weights.
Addresses. Look for rows flagged as undeliverable or incomplete. A missing unit number on an apartment address is the classic cause of a return-to-sender.
Weights. Sort by weight and look at the extremes. A 0.1 lb entry for a 3 lb item, or a 30 lb entry for a t-shirt, usually means a unit mismatch in the export.
Dimensions. For boxes larger than about a shoebox, dimensions matter because UPS and FedEx bill on dimensional weight when it exceeds actual weight. If dimensions are missing for large boxes, add them before rating.
If addresses are messy at the source, run the clean address list before bulk import checklist first; it is faster to fix the file than to fix rows one by one.
How do you choose carriers for a whole batch?
Once the queue is clean, each shipment shows rates from USPS, UPS, FedEx and DHL side by side. For a warehouse the decision is usually a policy, not a per-order judgment:
- Light parcels under a pound typically go on the USPS quote unless a customer paid for speed.
- Heavy or bulky boxes get compared across UPS, FedEx and USPS, since dimensional weight rules differ by carrier.
- Expedited orders are filtered out and rated on transit time first, price second.
A useful default is to select the lowest quoted rate that meets the promised delivery window, then override individual shipments where the order notes say otherwise. GoatLabels does not publish a rate card because its margin sits on top of carrier commercial rates, so the number you compare is the quote in the queue, which is also the amount deducted from the prepaid wallet.
How does auto-print work on the pack bench?
Printing is where a manual workflow breaks. Downloading PDFs and printing them one at a time is slow and leads to labels being applied to the wrong box. Two options:
- PrintNode. A small agent runs on a PC near the printer. When a label is purchased, it is sent to that printer automatically. The packer never opens a file.
- Browser print dialog. For a single station, purchasing a label and printing from the browser is fine and needs no setup.
Pair the printer choice with a scan step: the packer scans the order reference on the pick slip, the label prints, and the label goes on that box before the next scan. That sequence keeps labels and boxes matched.
A worked example: 120 orders in one shift
A small warehouse exports 120 Shopify orders at 8:00. The file has 118 rows with weights in ounces and two with weights in pounds, which the queue review catches as outliers. Six addresses are missing unit numbers; four are fixed from the order notes and two are held for customer contact.
The remaining 116 shipments are rated. Most are under 1 lb and go on USPS Ground Advantage, which per USPS carries packages up to 70 lb and includes $100 of insurance against loss or damage. Nine boxes are 16 x 12 x 10 inches or larger; those are compared against UPS and FedEx quotes because dimensional weight applies. Labels are purchased in bulk from the wallet and print through PrintNode to a thermal printer at the pack bench. By 8:30 the packer is working through a stack of labels that match the pick order.
What about orders that arrive via API instead of CSV?
The same queue accepts shipments created through the public REST label API with one Bearer header. Warehouses that want to skip the export step entirely can have their WMS post shipments directly; the label response comes back with the tracking number and the file to print. CSV remains the fallback for one-off batches, returns and wholesale orders.
There is no monthly fee for any of this; you fund a wallet and pay per label, as described on the pricing page. Setup questions about PrintNode, wallets and supported stores are in the FAQ, and you can sign up and import a test file in a few minutes.
Quick answers
What columns does a shipping CSV need? Recipient name, address, city, state, postal code, country and weight are required; dimensions and an order reference improve accuracy.
What is header aliasing? The importer recognizes common column name variants such as "Ship To Name" and "recipient" and maps them to the right field automatically.
How do labels reach the printer without downloading? Auto-print via PrintNode sends each purchased label to a designated printer; the browser print dialog works for single stations.
Does GoatLabels charge a monthly fee for bulk import? No; it is pay-as-you-go, funded through a prepaid wallet, with rates from USPS, UPS, FedEx and DHL shown side by side.