Purchase orders for Shopify brands: an end-to-end guide
How to run purchase orders properly, from working out what to buy to drafting, sending, receiving partial deliveries, checking invoices and learning real lead times.
Stokrio Team · · 6 min read
A purchase order is a small document doing a big job. It's your commitment to a supplier, the record of what you expect to arrive, the thing you check the invoice against, and, once it's received, the evidence of how long that supplier really takes. Brands that treat POs as paperwork end up with stock they didn't expect, invoices they can't reconcile and lead times they're guessing at.
This guide covers the whole cycle for a Shopify brand buying finished goods from suppliers.
Key takeaways
- Every PO should start from a calculated need, not a gut feel: target stock minus what you have and what's already coming.
- Apply minimums and case packs after working out the need, and record why a line was rounded.
- A PO isn't "on order" until the supplier has it. Drafts shouldn't count as incoming stock.
- Receive what actually arrived, line by line. Partial deliveries are normal, so decide deliberately whether to wait for the rest or close the order short.
- Check the invoice against what you received, not what you ordered.
- Record sent and received dates on every PO. That's how you learn real lead times.
The purchase order lifecycle
Most tools use some version of these states:
- Draft: being prepared; not yet a commitment.
- Sent: the supplier has it. From here the stock counts as on order.
- Partially received: some goods have arrived; the rest is still on order.
- Received: everything arrived, or the remainder was cancelled and the order closed short.
Keep it simple. Extra states such as "acknowledged" or "shipped" are useful only if somebody updates them reliably. A state nobody maintains is worse than no state, because people will trust it.
Step 1: decide what to buy
Start from need. For each product:
target stock = (lead time days + safety buffer days) × daily velocity
suggested quantity = target stock − (on hand + on order)Then apply the supplier's constraints. Here's a two-line example for one supplier with a 30-day lead time and a 10-day safety buffer.
Line 1, a candle: sells 6 a day, 90 on hand, nothing on order, sold in cases of 24, costs $8.40.
- Target: (30 + 10) × 6 = 240
- Need: 240 − (90 + 0) = 150
- Cases: 150 ÷ 24 = 6.25, rounded up to 7 cases = 168 units
- Cost: 168 × $8.40 = $1,411.20
Line 2, a diffuser: sells 2 a day, 50 on hand, nothing on order, minimum order 48, cases of 12, costs $12.50.
- Target: (30 + 10) × 2 = 80
- Need: 80 − 50 = 30
- Raised to the minimum: 48, which is exactly 4 cases of 12
- Cost: 48 × $12.50 = $600.00
PO total: $1,411.20 + $600.00 = $2,011.20.
Our guide to MOQs, case packs and rounding goes deeper on when to round up and when not to.
Step 2: draft one PO per supplier
Group the lines by supplier and create one purchase order each. A good PO includes:
| Field | Why it matters |
|---|---|
| PO number | Unique and sequential, so you and the supplier can refer to it |
| Supplier and contact | Who it's going to and who replies |
| Your SKU and the supplier's code | Suppliers rarely use your SKUs, and mismatches cause wrong shipments |
| Quantity and unit cost | The commitment, in the supplier's currency |
| Requested delivery date | What you're planning around |
| Ship-to location | Which warehouse or 3PL should receive it |
| Payment and shipping terms | Deposit, balance, who pays freight |
Before sending, sanity-check the order in days of cover: after this order arrives, how many days of stock will each line have? A line that comes out at 200 days of cover when everything else is around 40 is usually a typo or a minimum you should push back on.
Step 3: send it and get confirmation
Send the PO in writing and ask the supplier to confirm quantities, prices and the ship date. If they change anything, update the PO so it matches what they'll actually send. The confirmed ship date becomes your expected date; chase if you haven't heard by then.
Mark the PO as sent on the day it goes. That date is the start of the lead-time clock.
Step 4: track what's inbound
Once sent, the PO's quantities should count as stock on order in every reorder calculation. Without this, your next buying cycle will suggest the same goods again.
Keep a simple view of what's due in the next few weeks, sorted by expected date. Overdue POs deserve attention first, especially when they're holding up products that are already out of stock.
Step 5: receive what actually arrived
When goods arrive, count them and receive them against the PO line by line. Record what turned up, not what was ordered.
Say the candles arrive as 6 cases instead of 7: 6 × 24 = 144 received, and 168 − 144 = 24 outstanding. The PO is now partially received. You have two choices:
- Wait for the balance if the supplier confirms it's coming. The 24 units stay on order.
- Close the PO short if it isn't. The 24 units disappear from on order, and your next reorder calculation will pick up the gap.
Don't leave the balance open "just in case". Phantom stock on order is one of the most common reasons reorder suggestions come out too low.
If you sell anything with a shelf life, receiving is also when to record lot numbers and expiry dates. Our FEFO guide covers what to capture.
Step 6: match the invoice
Check three things against each other: the PO (what you agreed), the receipt (what arrived) and the invoice (what you're asked to pay). If the supplier invoices all 168 candles but you received 144, query the difference: 24 × $8.40 = $201.60.
This is also the moment to capture landed cost. If freight for the candles was $180, spread over the 144 units received, that's $180 ÷ 144 = $1.25 a unit, so the landed cost is $8.40 + $1.25 = $9.65. Margin calculations based on $8.40 would overstate profit on every candle you sell.
Step 7: close it out and learn
When the order is fully received or closed short, the PO becomes data. The gap between sent date and received date is a real lead time for that supplier. Across several orders, those gaps tell you both the average and how much it varies, which matters more than most buyers expect. See supplier lead-time variability.
Doing this in Stokrio
In Stokrio, selected lines on the replenishment table become draft purchase orders, one per supplier, already rounded to minimums and case packs. Purchase orders can be emailed to the supplier with every line, quantity, cost and requested date plus a CSV attachment, with replies going to the buyer who sent it. Receiving works in full or in parts with lot, expiry, carrier and tracking, short shipments can be closed, and a 12-week calendar shows deliveries due and orders to place. Sent and received dates feed each supplier's measured lead time.
Mistakes that break the numbers
- Counting drafts as on order. Suggestions drop for stock that hasn't been ordered.
- Never closing short. The missing units sit on order forever.
- Receiving the ordered quantity instead of the counted one. Your on-hand is wrong from the moment the box is opened.
- Editing a sent PO without telling the supplier. The two of you are now expecting different deliveries.
- Leaving expected dates blank. Nothing can be flagged as late, and lead times can't be measured against a promise.
A routine that works
Whatever tool you use, a weekly rhythm keeps purchasing under control: review suggestions and send POs on one fixed day, chase anything overdue, receive deliveries the day they arrive, and close POs as soon as you know the balance isn't coming. Accurate POs are what make every other inventory number trustworthy.