E-commerce · Shopify

Shopify orders export (Admin > Orders > Export CSV)

The order-line CSV a merchant downloads from the Orders page. People assume one row equals one order and that summing "Total" gives revenue; it is neither one-row-per-order nor net of refunds.

The shape, how the file is really laid out

One header row, then ONE ROW PER LINE ITEM. An order with three products is

three rows sharing the same "Name" (e.g. "#1001"). The order-level money

columns, Subtotal, Shipping, Taxes, Total, Discount Amount, Refunded Amount, are populated only on the FIRST row of each order and left blank on the

continuation rows; the per-item columns (Lineitem name, Lineitem quantity,

Lineitem price, Lineitem sku, Lineitem fulfillment status) vary row to row.

"Total" is in the shop's currency and already includes shipping and tax.

Timestamps ("Created at", "Paid at", "Fulfilled at", "Cancelled at") carry an

explicit UTC offset for the shop timezone, e.g. "2025-04-02 09:14:55 -0700".

"Financial Status" (paid / pending / refunded / partially_refunded / voided)

and "Fulfillment Status" describe state at export time. There is NO grand-total

row anywhere in the file.

The traps

Blank-continuation trap: summing "Total" is correct ONLY because it is blank on continuation rows, but summing "Lineitem price x quantity" will NOT equal "Total" because it omits shipping, tax, and order discounts, and a reader who "fixes" the blanks by forward-filling Total then sums it and double- or triple-counts every multi-item order.

In the Format LibraryGet the Format Library

Reference: Shopify Help Center, "Export orders" and orders CSV column reference (documentation)