Skip to content

Purchase orders CSV

One row per order line. Rows with the same PO number make one purchase order, so an order of three products has three rows. PO number, Supplier and Quantity ordered are required. Every other column can be left out of the file, or left blank.

Download the purchase orders template, or press Download template in Shelfcast with Purchase orders chosen. Its made-up example is one order of two lines.

Imported orders don’t change stock in Shopify. Wait for Shelfcast’s first sync to finish before you import purchase orders, so your products and locations are there to match, and import your suppliers first.

The order’s details come from its first row. On the order’s other rows, these columns are ignored, so you can repeat the details or leave them blank.

Column What to write Also accepted
PO number (required) The order’s number. Every line of an order has the same one. Example: EXAMPLE-PO-1 Purchase order number, Purchase order, PO, Order number, Number, PO ID
Supplier (required) The supplier’s name, on the order’s first row. A name Shelfcast doesn’t know yet adds a new supplier. Example: Example Supplies Co. Supplier name, Vendor
Status Where the order is. See statuses below. Blank means Draft. Example: Ordered State
Location The name of the Shopify location it’s delivered to, in any capitals. Blank, or a name that doesn’t match, means your first active location. Example: Main warehouse Destination, Ship to, Warehouse, Receiving location
Ordered at The date the order was placed. Blank means the day you import it. Example: 2026-01-15 Order date, Ordered on, Date ordered, Created at, Created, Date
Expected on The date it’s due. Example: 2026-01-29 Expected date, Expected, Due date, ETA, Expected at
Supplier reference The supplier’s invoice or order number. Example: INV-1001 Supplier invoice, Invoice number, Invoice, Reference
Notes Any text. Note

These columns are read from every row, one order line each:

Column What to write Also accepted
SKU The product’s SKU in Shopify, in any capitals. Example: EXAMPLE-MUG-BLUE Variant SKU, Product SKU
Barcode Any of the product’s barcodes in Shopify, exactly, leading zeros included. UPC, EAN, GTIN
Product The product’s name. Used only when Shelfcast can’t find the product. Example: Example mug Product title, Title, Item, Product name, Description
Variant The variant’s name. Used only when Shelfcast can’t find the product. Example: Blue Variant title, Option
Supplier SKU The supplier’s own code for the product. Example: ES-1001 Supplier code, Vendor SKU, MPN
Quantity ordered (required) A whole number of 0 or more. Blank means 0. Example: 24 Qty ordered, Ordered, Quantity, Qty, Order quantity
Quantity received A whole number of 0 or more. Blank means 0. Example: 0 Qty received, Received
Unit cost What one unit cost: a number of 0 or more, in the supplier’s currency. Blank means 0. Example: 4.50 Cost, Cost price, Price

Shelfcast reads the status by what it contains, in any capitals:

The status contains Imported as
nothing (blank), “draft” or “pending” Draft
“partial” Partially received
“cancel”, “archiv” or “void” Cancelled
“receiv”, “closed” or “complete” Received
anything else, such as “ordered”, “open” or “sent” Ordered

They’re checked from the top, so “Partially received” is Partially received, but “Not received” is Received. Change statuses like that to Ordered before you import. A file with no Status column imports every order as a draft.

→ Purchase order statuses

  • A PO number that’s already in Shelfcast is left alone, so importing the same file twice doesn’t duplicate anything.
  • Products are found by SKU, whatever the capital letters, then by barcode. Lines for products Shelfcast can’t find are still imported, with the product, variant and SKU from the file, but they aren’t linked to a product.
  • Suppliers are found by name, whatever the capital letters. A name that doesn’t match a supplier in Shelfcast exactly adds a new supplier, so spell each name the way it is in Shelfcast or your suppliers file: Acme Co and Acme Co. become two suppliers. The order’s currency is the supplier’s, or your store’s if the supplier has none.
  • Received quantities and costs are kept. Additional costs, such as freight, can’t be imported. The order’s Details say it was “Imported”.
  • Forecasts refresh when the import finishes.

Open imported orders (Ordered or Partially received) count as incoming in suggestions. When the rest arrives, receive it in Shelfcast and it’s added to what’s available in Shopify.

An order is imported whole or not at all. If any of its rows has a problem, none of its lines are imported. The row with the problem says what to fix, and the order’s other rows say “Purchase order … was left out because row … can’t be imported. Fix that row and import the file again.” Once it’s fixed, import the whole file again: orders that came in the first time are skipped, and the fixed order comes in whole. Or press Download skipped rows for a file of just those rows, every row of each left-out order included, with the reason in an Error column. Fix them and import that file. → When rows are skipped

Message What to do
“PO number is blank. Give every line of an order the same PO number.” Fill in the PO number.
“Supplier is blank on the first row of purchase order …, which is where the order’s details are read from.” Fill in the supplier on the order’s first row.
“Ordered at must be a date, written like 2026-01-15.” Write the date as year-month-day, or leave it blank. See how dates are read.
“Expected on must be a date, written like 2026-01-29.” Write the date as year-month-day, or leave it blank.
“Quantity ordered must be a whole number of 0 or more, like 24.” Write a whole number, without a minus sign.
“Quantity received must be a whole number of 0 or more, like 24.” Write a whole number, or leave it blank for none.
“Unit cost must be a number of 0 or more, like 4.50.” Write the cost as a number, or leave it blank.
“Purchase order … is already in Shelfcast, so its lines were left out rather than imported twice.” Nothing, if it’s the same order. If it’s a different one, give it another PO number.
“Shelfcast hasn’t read your locations from Shopify yet. In Settings, press Sync now next to Products and stock, then import the file again.” Do that. The first sync usually reads them within a few minutes of installing.

→ Import a CSV explains how numbers and dates are read, and how to save a CSV from your spreadsheet.