Purchase Order Template

A free purchase order template (CSV) with PO number, supplier, line items, and status columns, plus when a template stops being enough.

Purchase Order Template

A purchase order log with one row per line item, so a single PO covering several products stays easy to filter and total.

By Tibeau De Grauwe, FounderUpdated September 2026

  • 25 products free
  • No credit card
  • 10-min setup
Download the purchase order template
CSV file, one row per line item.

What's in the template

This purchase order template logs one row per line item: PO number, order date, supplier, SKU, product name, quantity ordered, unit cost, line total, expected delivery, and status.

Because it's one row per line item rather than one row per order, a single PO with five different products becomes five rows sharing the same PO_Number — filter by PO_Number to see the whole order, or by Supplier to see everything owed to one vendor.

Columns explained

PO_NumberUnique per order, shared across every line item in that order.
Order_DateThe date the order was placed.
SupplierWho the order was placed with.
SKUThe item ordered, matching your inventory list SKU.
Product_NameHuman-readable name for quick reference.
Quantity_OrderedUnits ordered on this line.
Unit_CostAgreed cost per unit for this order — may differ from your last purchase.
Line_TotalQuantity_Ordered × Unit_Cost.
Expected_DeliveryDate the supplier committed to deliver.
StatusOrdered, Received, or Partial — the field that tells you what's still outstanding.

Where a purchase order spreadsheet breaks down

A spreadsheet log works as a record of what was ordered. It doesn't connect to what's actually low on stock, so nothing stops you from re-ordering a SKU that's already overstocked, or forgetting one that's about to run out — that judgment call still lives entirely with whoever is reading the inventory list separately.

It also doesn't update quantity on hand when a delivery arrives. Marking a row "Received" here is a note, not a stock movement — someone still has to go update the inventory list by hand, which is the same double-entry gap that shows up in a manual stock count.

Related resources

Trusted by small businesses

What our customers say

Super Kind! Quick replies from their support and very easy fixes, changed the dashboard a bit and customized it. Also gave me 450 items extra on the free plan just for me. Highly recommend and again great service!

Erasable Trading AU

Best customer service! Stockflow's customer support is fast and extremely helpful. They assisted me with customization of the software to improve my experience as a user.

Justin M.

Co-Owner, Consumer Goods

Frequently asked questions

Can one purchase order have multiple products?
Yes — give every line item the same PO_Number. Filtering the sheet by PO_Number shows you every product that belongs to that one order.
What does the Status column mean?
Ordered means the PO was sent but nothing has arrived. Received means the full quantity arrived. Partial means only some of the ordered quantity has come in so far and the rest is still outstanding.
Does this template tell me what to reorder?
No. It's a record of orders already placed. To decide what needs ordering, check quantity on hand against each SKU's reorder point in your inventory list.
How do I turn Received rows into updated stock quantities?
In a spreadsheet, manually: add the received quantity to the matching SKU's Quantity_On_Hand in your inventory list. Inventory software that links receiving to purchase orders updates this automatically instead.