# How to receive a purchase order in Shopify

> A step by step method for booking in a delivery against a purchase order in Shopify, why counts drift, and how to handle short and over deliveries.

- Source: https://storestandards.com/blog/receive-a-purchase-order-in-shopify/
- Published: 2026-07-22
- Updated: 2026-08-06
- Author: Priya Raghunathan, Founder, engineer, Store Standards
- Topics: Receiving, Purchase orders, Stock accuracy

## Key points

- Count the delivery against the purchase order, not against the delivery note. The note is what the supplier says they sent.
- Book stock in on the day it lands. A delivery that sits unbooked for two days is the most common cause of overselling.
- Record short and over lines while the boxes are still open, so you can claim before the supplier's window closes.

---

A [purchase order](https://storestandards.com/glossary/purchase-order/) is a promise. You asked a
supplier for sixty jackets, they said yes, and one Tuesday a van turns up.
Receiving is the moment you check that promise against what is actually in the
boxes, and then tell Shopify about it.

Get it right and your stock numbers hold. Get it wrong and you find out three
weeks later, when a customer orders a jacket you do not have.

## What receiving means in Shopify now

Purchase orders live in the Shopify admin. You raise one against a supplier,
and when the van turns up you receive against it, in full or in part, and the
stock moves at the location you received into.

That is newer than it sounds. Until 2026 the purchase order was Stocky's job,
or an app's, or a spreadsheet's. Stocky stops on 31 August 2026, and if you
are moving off it, start with
[the Stocky shutdown checklist](https://storestandards.com/blog/stocky-shutdown-checklist/).

What the admin gives you is the paperwork and the stock movement. What it does
not give you is a label for every unit that just arrived, which is
[a gap Shopify documents itself](https://storestandards.com/blog/stocky-gaps-shopify-admin/).

So receiving a purchase order means three things happening together:

1. You check what arrived against what you ordered.
2. You raise anything that is missing, damaged or extra.
3. You add the correct quantity to the correct location.

Most stores do the first step well, skip the second, and do the third late.

## The three ways stores do it now

### On paper

Someone prints the order, ticks the lines with a pen, and hands the sheet to
whoever does the admin. It works until the sheet gets wet, or until the person
with the pen is not the person with the laptop.

Paper has one real advantage: it never runs out of battery. It also has one
fatal habit, which is being keyed in later, by someone who was not there.

### In a spreadsheet

Better, because the numbers can be pasted into Shopify in a bulk edit. Worse,
because a spreadsheet has no idea which location it is talking about, and it
will happily let you type 600 where you meant 60.

### Against the order in the admin

The most accurate, and now the default. You open the purchase order, enter
what arrived per line, and the stock moves when you accept it. A part delivery
stays open until the rest turns up.

The catch is the screen. The admin was not built for a phone held in one hand
in a cold stockroom, so most people do it at a desk afterwards, from notes.
That gap between the van and the keyboard is where the numbers go wrong, and
the method below is mostly about closing it.

## Why the count drifts

Every store we visit has the same four leaks.

**The delivery note is trusted.** The note says what the supplier meant to
send. It is a packing list, not evidence. Count against your own purchase
order.

**Stock is booked in the next morning.** Between the van arriving and the
numbers going in, the store keeps selling. If two of those jackets sell before
you book in sixty, your maths is now wrong in a way that is hard to unpick.

**Part deliveries are closed off.** A supplier sends forty of sixty and the
order gets marked complete because the paperwork is tidier that way. The
remaining twenty arrive on Friday and go in as a mystery.

**Nobody records the shortage.** The two missing jackets are noticed,
mentioned, and forgotten. Most suppliers have a claim window of seven to
fourteen days. After that you have paid for stock you never had.

## A method that holds up

This works whether you use paper, a spreadsheet or an app.

1. **Open the order first, then the boxes.** Have the expected quantities in
   front of you before you see the delivery note.
2. **Count into the order, one line at a time.** Do not batch. A running count
   per line is what makes a shortage obvious.
3. **Say what happened to every line.** Matched, short, over, or damaged. A
   line with no result is a line nobody checked.
4. **Book in on the day.** Even a part delivery. Especially a part delivery.
5. **Leave the order open until the last box.** A purchase order should close
   because it is finished, not because it is Friday.
6. **Photograph anything damaged before it moves.** A photo taken next to the
   pallet is worth more than a description written on Monday.

## Doing it with a barcode scanner

A scanner turns steps two and three into one action. You scan an item, the
line goes up by one, and the count is on screen. There is no searching and no
typing, which removes the two places where a keyed number goes wrong.

You do not need special hardware to start. A phone camera reads a retail
barcode well enough for a small delivery. Past roughly fifty items in one go, a cheap Bluetooth scanner pays for itself
in a week. It fires in about a tenth of a second and does not need a steady
hand.

The thing to check before you buy any scanner is what your products actually
carry. If half your range has no barcode in Shopify at all, scanning will
stall on the first box. Our guide to
[barcode types for Shopify stores](https://storestandards.com/blog/barcode-types-for-shopify-stores/)
covers what to put in the barcode field and what to print yourself.

## Short, over and damaged

**Short.** Receive what came. Leave the rest of the line open. Record the
shortage against the order the same day and send it to the supplier with the
order number.

**Over.** Receive the full amount that arrived, not the amount you ordered.
Stock you have but have not counted is the worst kind of stock, because
Shopify will not sell it and you have still paid for it. Flag the overage and
agree what happens to it afterwards.

**Damaged.** Receive it, then adjust it out with a reason. That leaves a
trail: sixty arrived, two were damaged, fifty-eight are sellable. Adjusting
the receipt down to fifty-eight hides the damage from anyone who checks later.

## Once the order is closed

Check three things before you walk away:

- The location is right. Stock received into the warehouse when it went to the
  shop floor is a problem that takes a stocktake to find.
- The order shows a result on every line.
- The variance list has gone to whoever talks to the supplier.

Stock accuracy is not one big job. It is this job, done the same way every
time. If your numbers still drift after tightening receiving up, the next
place to look is everything that happens after the boxes are empty, which we
went through in
[why your Shopify stock count drifts](https://storestandards.com/blog/why-shopify-stock-counts-drift/).

## Doing this with StandardLabel

Receiving the stock is the easy half. The labels are the half that eats a
morning, and that is what we built
[StandardLabel](https://storestandards.com/products/standardlabel/) for. It reads the delivery you have
just received, fills in a label count per line from what was accepted, and
prints.

It also subtracts what it printed last time. If a delivery lands in two parts,
the second run gives you labels for the second part, not for the whole order
again.

It takes about four minutes to set up, and there is a free plan for stores
that only take the odd delivery.

If you would rather do this on paper first, print the
[goods in checklist](https://storestandards.com/tools/goods-in-checklist/) and work down it on the next
delivery. There is a
[purchase order template](https://storestandards.com/tools/purchase-order-template/) to check it
against, if you do not already have one.