Shopify how-to

How to map Shopify export columns for shipping

You will have a Shopify export mapped to the fields a label needs, with the billing columns left out and one parcel per order.

Time
10 min
Difficulty
medium
Steps
7

Checked against Shopify: exporting orders on September 13, 2026.

Before you start

  • A Shopify orders CSV, exported with Selected orders or Orders by date
  • A spreadsheet app that can hide and reorder columns
  • Your saved package weights, or a scale at the bench

Steps

  1. Open the file and freeze the header row

    In your spreadsheet app, open the CSV and freeze row 1 so the column names stay visible while you scroll.

    You should see around 70 headers, in Shopify's order, with Name and Email at the left.

  2. Mark the order reference

    In the header row, find Name and treat it as the order reference that goes on the label and the packing bench. Id is Shopify's internal number and is the safer key when you join files later.

    You should see Name holding values such as #1001 and Id holding long numbers.

  3. Mark the shipping block, not the billing block

    In the header row, find Shipping Name, Shipping Company, Shipping Street, Shipping Address1, Shipping Address2, Shipping City, Shipping Zip, Shipping Province, Shipping Country and Shipping Phone. Every one of those starts with the word Shipping.

    You should see 10 columns that all begin with Shipping, sitting near an identical set that begins with Billing.

  4. Hide the billing columns

    In the spreadsheet, hide or delete the Billing columns before anyone maps the file.

    You should see one address block left in the sheet, so there is nothing to pick wrongly.

  5. Collapse the line item rows

    Sort by Name and check where a single order runs over several rows, because Shopify writes additional line items on separate rows with the order header repeated.

    You should see one address row per order, with Lineitem quantity, Lineitem name and Lineitem SKU repeating underneath.

  6. Decide where weight comes from

    The orders export carries the money and the address, not the packed weight of your box. Plan for weight to come from your saved product presets or from what you type once at the bench.

    You should see no weight column in the header row, and a plan that does not depend on one.

  7. Save a mapped copy

    In your spreadsheet app, save the trimmed sheet as a new CSV and keep the original untouched.

    You should see two files: Shopify's export and the one you hand to a label run.

If it goes wrong

The parcel went to whoever paid

Billing Name, Billing Street and Billing Zip read exactly like their Shipping counterparts and sit a few columns away. Gift orders and company card orders are where that mistake shows up, and it shows up after the label is bought. Hiding the Billing block before mapping costs less than a reship.

Duplicate recipients in the batch

Line item rows repeat the recipient, so a naive import turns a 3 item order into 3 parcels. Sort by Name and count rows per order before the batch opens. The Workbench surfaces duplicate recipient warnings ahead of a batch for the same reason.

Blank shipping columns on some rows

Digital goods and other lines that do not ship leave the shipping block thin or empty. Filter on Lineitem requires shipping first, which is covered in the guide on lines that need no shipping.

Province arrives as a code

Shipping Province can hold a two letter code where your importer expects a state name, and Shipping Country the same. Check one row against the address in the Shopify admin before mapping 200.

What happens next

A mapped file holds 1 address row per order, 10 shipping columns, 0 billing columns and no weight. Our importer recognises headers for name or recipient, company, phone, email, address line 1 and 2, city, state or province, postal code, country, weight in oz or lb, order reference, SKU and quantity, so a trimmed Shopify export usually matches without a rename. Anything it cannot match goes through a mapping step instead of failing.

With I'd Ship That

Map once, then batch the day

Upload the CSV or XLSX to The Workbench, which is part of Pro, and recognised headers are matched for you. Files whose headers differ go through a mapping step, and short lists can be pasted instead of uploaded. Then rate USPS and UPS across the batch and print one merged PDF. Pick lists and packing slips stay on store sourced orders, so a file based batch prints labels only.

Open The Workbench

They overlap, so map one of them and not both. Shipping Address1 and Shipping Address2 are the two address lines as the buyer entered them, which is what a label wants. Check a single order in the Shopify admin against its row before you trust either column across a whole batch.

Fulfillment Status on the order rows, and Lineitem requires shipping on the line item rows. Use both: the first keeps already fulfilled orders out of the batch, the second keeps digital lines from turning into parcels. Our guide on fulfillment orders versus orders explains why Shopify tracks fulfilment at the line level.

Not for buying labels. Subtotal, Shipping, Taxes, Total and Discount Amount matter when you are reconciling what buyers paid against what postage cost, which is a separate pass on a separate file. Leave them in the original export and out of the mapped copy.

Yes, as long as you export with the same options each time. Shopify writes the same header set for the same export type, so a mapping built on Monday still fits Friday's file. It breaks when someone switches to transaction histories, which is a different file with different columns.