JWillum products

Free guide · JWillum products

How to fill the blank rows in a Shopify orders CSV export (for pick and pack lists)

Why a Shopify orders CSV has blank rows for multi-item orders and how to fill them for pick lists, pack slips and 3PL files.

Published · Updated

Export your orders from Shopify Admin and open the CSV, and something looks off. An order with three items takes up three rows, but only the first row has the customer email, shipping address, payment status and shipping method. Rows two and three hold just the line item. That layout is fine for Shopify, but it breaks pick lists, pack slips, pivot tables and anything you send to a warehouse or 3PL, because every row needs to stand on its own.

Here's how to fill those rows in safely by hand, and the mistakes that quietly mix one customer's address into another order.

Why "fill down" in Excel is risky

The obvious fix is Excel's Go To Special → Blanks, then =cell above. It fills every blank with the value above it, but it has two problems:

  • It fills line-item columns too. A blank Lineitem cell can be intentional (a discount field, a missing SKU). Filling it copies the previous product's data onto the wrong item.
  • It bleeds across orders. If order #1002 has a blank shipping phone, fill-down copies #1001's phone into it. Now a stranger's details sit on the wrong packing slip.

The safe rule: fill order-level columns only, and only within the same order.

Step 1: Export and back up

In Shopify Admin go to Orders → Export and pick your date range or the current filter. Save a copy of the untouched file before you edit anything. Don't sort the sheet yet: the fill depends on rows staying in their original order.

Step 2: Sort your columns into two groups

Look at the header row and split the columns into:

  • Order-level: Name (the order number), Email, Financial Status, Fulfillment Status, Shipping Method, every Shipping … address field, Notes, Currency, Created at, and so on.
  • Line-level: everything starting with Lineitem (name, SKU, quantity, fulfillment status…). Never fill these.

Step 3: Make sure the order number is on every row

In many exports the Name column (like #1001) repeats on each line item. If yours is blank on continuation rows, fill that first. Every blank Name row belongs to the order above it. Put a helper column next to it with =IF(A2="",B1,A2) (where A is Name and B is the helper), copy it down, then paste the helper as values.

Step 4: Fill order-level columns within each order

For each order-level column, use a helper column that only copies from the row above if it's the same order. Say column A is the filled order number, column C is Email, and D is an empty helper column. In D2 enter:

=IF(AND(C2="",$A2=$A1),D1,C2)

In plain English: if this cell is blank and the order number matches the row above, take the value from above. Otherwise keep what's there. Copy it down, paste as values, and repeat for each order-level column. It's slow, but it can't leak into the next order.

Step 5: Trim to the columns your job needs

A full export has dozens of columns. Keep only what each job needs:

  • Pick list: order number, SKU, item name, quantity, vendor, fulfillment status
  • Pack list: order number, shipping name and address fields, item name, quantity, SKU, notes, shipping method
  • 3PL handoff: order number, order ID, shipping fields, SKU, quantity, item name, email, currency, created date

Step 6: Save and use it downstream only

Save as CSV UTF-8. If Excel shows garbled characters, re-import through Excel's UTF-8 CSV import. Don't re-import this file into Shopify. It's for picking, packing and analysis.

Doing it faster: Shopify CSV Densifier

Shopify CSV Densifier is a single offline HTML file that applies exactly these rules. Drop in a native Shopify Admin Orders export and it:

  • fills blank order-level cells only
  • never fills Lineitem* columns
  • resets whenever the order Name changes, so nothing bleeds between orders

Then pick a preset: Pick, Pack, 3PL, All, or Custom if your 3PL renamed headers. A Before | After preview highlights every filled cell, there's an optional Excel UTF-8 BOM, and you download the trimmed CSV. It also has a Products mode for analysis, with a clear banner saying not to re-import the result.

It doesn't upload to Shopify, print packing slips, or replace export apps like Matrixify. It post-processes the native Admin CSV, offline, and your order data stays on your computer.

→ Shopify CSV Densifier

Related tools

  • Need a mailing list rather than a pack list? Shopify Customers MailMerge turns a Customers export into US/UK/CA/AU mail-merge address columns.
  • Tidying a messy Etsy listings export too? Etsy Listing CSV Fixer checks titles, tags, prices and images offline.
Shopify CSV Densifier$8 one-time · runs offline in your browser · no account
Get it on Gumroad — $8

Official documentation

The tool for this job

This guide is also published on Gumroad.