A purchase order (PO) is a commercial document a buyer sends to a supplier to authorize a specific purchase at specific terms. Depending on the terms, supplier response, and applicable law, an accepted PO can become part of the contract record. Done well, the PO is the shared source of truth for the order: what was bought, at what price, on what terms, and when it is expected. Done badly, it is the start of a long email thread.
This guide covers the structure of a modern PO, the fields that matter, the fields that don't, an annotated example, and the automation that makes most of the manual work redundant.
How to write a purchase order
To write a purchase order, give the supplier one unambiguous buying instruction: buyer, supplier, PO number, PO date, ship-to location, line items, quantities, unit prices, delivery window, payment terms, and total. The PO should also state pack size, substitution policy, acceptance deadline, and special receiving instructions when those details matter. A modern purchase order software workflow fills those fields from supplier, inventory, and accounting data so the operator reviews the order instead of typing it from scratch.
The eight core fields
Every useful PO — printed, emailed, sent through WhatsApp, submitted through a portal, or sent by EDI — should include these eight fields. Anything less is closer to a request than an order record.
| Field | Why it matters |
|---|---|
| PO number | Your unique identifier for this order. Every reference (invoice, receipt, dispute) uses it. |
| PO date | When the order was placed. Drives lead-time calculation and payment terms. |
| Buyer details | Legal business name, billing address, contact name and email/phone. |
| Supplier details | Legal business name (or DBA), the email or address you're sending to. |
| Ship-to address | Where the goods go. May differ from billing. |
| Line items | For each: SKU, description, quantity, unit, unit price, line total. |
| Totals | Subtotal, taxes, shipping, discounts, grand total. State the currency explicitly. |
| Payment terms | Net 30, Net 15, COD, prepaid — whatever you've agreed. |
The fields that reduce disputes
These fields are not always required, but they reduce the back-and-forth that follows a typical PO.
- Required delivery date or window. "Asap" means nothing to a supplier with a route schedule. Specify a date or a window.
- Pack size and unit of measure. "1 case" vs "1 each" is the most common source of order errors. Always state the pack and the unit.
- Supplier part number (SKU). Their SKU, not yours. If you order off your internal SKU and they have to map it, you will get sub-quantities, substitutions, or wrong items.
- Substitution policy. "Do not substitute" or "Substitute up to $X" or "Substitute and notify before shipping." Pick one.
- Acceptance trigger. "Please confirm by 5pm Tuesday or this order is void" prevents you from waiting on stale orders.
- Special instructions. Dock hours, lift gate required, call on arrival, signed delivery only. Whatever your receiver needs.
- Reference to terms. "Subject to our standard terms at [URL]" or attached. Saves you in disputes.
An annotated example PO
PURCHASE ORDER
PO #: KEV-2026-0428-001 Date: 28 April 2026
FROM: TO:
Kev's Bar & Grill Charlie's Produce Co
715 E Pine Street 2201 Western Ave
Seattle, WA 98122 Seattle, WA 98121
ar@kevsbar.com wholesale@charliesproduce.com
Contact: Kev L., (206) 555-0142
SHIP TO: PAYMENT TERMS:
715 E Pine Street, Seattle WA 98122 Net 14
Required delivery: Wed 30 Apr, 6-9am Currency: USD
Dock notes: Use side door, ring buzzer
LINE ITEMS:
SKU Description Pack Qty Unit Price Line Total
014-02643 Strawberries, whole 30 lb 2 $76.00 $152.00
013-01044 Avocados, Hass ripe Case 1 $64.15 $64.15
031-02266 Juice, Lemon Perricone 1 gal 3 $23.00 $69.00
Subtotal: $285.15
Shipping: $12.00
Tax (exempt, resale cert on file): $0.00
Grand total: $297.15
SUBSTITUTION POLICY: Notify before substituting. Do not substitute strawberries.
ACCEPTANCE: Please confirm receipt of this PO by 5pm Tuesday 29 Apr.
TERMS: Subject to our standard terms at kevsbar.com/po-terms.
Approved: Kev L. / Owner / 28 Apr 2026
Every field above maps to one of the items in the previous tables. Nothing is decorative.
The eight common mistakes
- No PO number. When the invoice arrives, you can't reconcile. Always assign one before sending.
- Ambiguous quantity-vs-pack. "1 strawberries" means one flat to one supplier and one case to another. Always state the unit.
- Buyer's SKU instead of supplier's SKU. Forces a translation step that often goes wrong.
- No delivery date. The supplier defaults to their preference, which may or may not match yours.
- No payment terms. Defaults to whatever the supplier prefers, which is COD or prepaid for new buyers.
- Currency not stated. Common for cross-border. Costs you 2–5% on the wrong assumption.
- Tax status unclear. If you're tax-exempt, attach the resale certificate; otherwise expect tax on the invoice.
- No acceptance request. Without a deadline, the order can sit unconfirmed for days. Always ask for confirmation.
Channels: email, EDI, portal, WhatsApp
How you transmit the PO matters. Each channel has trade-offs.
- Email (PDF or inline). Common for recurring supplier relationships. Universal, but unstructured — the supplier may type your PO into their system manually, which creates transcription risk. Modern systems can read confirmation replies into a reviewable order update.
- EDI (X12 850). A common B2B standard. Suppliers parse it programmatically. Best for high-volume relationships. Setup is non-trivial, but it reduces manual re-entry compared with freeform email.
- Supplier portal. The supplier's website. Works fine for one supplier. Painful when you have twenty.
- WhatsApp. Increasingly common in B2B supplier communication, especially Latin America and parts of Asia. Modern systems format POs as structured WhatsApp messages.
- Phone or fax. Still alive. Don't use them as your primary channel; you have no audit trail.
What modern automation actually does
If you are writing recurring POs by hand in 2026, you are doing work the system can often do. A modern procurement platform like LineNow:
- Generates the PO from your ordering decision. You add items to a cart from the inventory tab; the PO is built automatically with all eight required fields and the dispute-prevention fields, pre-filled from your saved supplier and buyer details.
- Suggests quantities from real consumption. Statistical replenishment computes order quantity per item based on the last 30 days of POS sales, decay rate, lead time, and target service level. You don't guess.
- Sends through the supplier's preferred channel. Email, WhatsApp, EDI, or platform portal. The system stores the supplier's channel preference and routes accordingly.
- Reads the confirmation. When the supplier replies, AI parses the message: did they confirm? What changed? Any substitutions? New ETA? The PO gets a reviewable update; you review the diff.
- Reconciles the invoice. When the invoice arrives, the system matches it to the PO, flags discrepancies, and hands off the bill to QuickBooks or Xero with configured account mapping.
- Logs the order history. Supplier messages, replies, review decisions, and status changes stay in one timeline per PO. When a dispute appears later, the source history is easier to inspect.
The PO becomes a workflow, not a document. The eight required fields are still there — they have to be — but you're not typing them. You're reviewing them.
The legal status of a PO
This section is practical operating guidance, not legal advice. A PO is commonly treated as an offer to purchase at specific terms. It may become part of the binding contract record when the supplier accepts. Acceptance can be:
- Explicit: a written confirmation, signed acknowledgment, or order number assigned
- Implicit: shipping the goods, sending an invoice
If the supplier's reply changes a material term such as price, quantity, or delivery date, treat it as a change that needs review before goods ship. This is related to the "battle of the forms" problem in commercial law, where different forms can carry different terms. The practical takeaway is simple: keep the final accepted terms visible in the order record.
For teams, the practical implication is: if your supplier replies "confirmed but price up $0.50/lb," that price change should be reviewed before the order is treated as final. Modern systems flag price changes for operator approval before the order moves forward, which protects the margin review process.
The takeaway
A purchase order, properly written, has eight core fields and several dispute-reducing fields. Anything more should earn its place. The act of writing one by hand — and worse, retyping the supplier's confirmation when it comes back — is the work that modern closed-loop procurement systems reduce. The fields stay; the duplicate entry goes away.
LineNow is a closed-loop procurement platform at $50/month flat: it generates POs from real consumption data, sends them through supported supplier channels, parses supplier replies into reviewable living PO updates, receives against the current state, and stages the eventual bill for QuickBooks or Xero with configured accounting detail. 90-day free trial.