Receiving is where a purchase order pays off: the stock you ordered becomes stock you can sell. It happens right on the purchase order - enter what arrived and your Shopify inventory updates at the location you choose, in one delivery or as many partial ones as it takes, recording true costs as you go.
When a purchase order can be received
A dark Receive button appears on a purchase order once it's been marked as Ordered, and stays available while it's Partial (some items received, some still outstanding). Click it and the receiving card opens, where you enter or scan what actually arrived - that is the flow below. To take the whole remaining order in one step instead, use the Receive all button in the card's footer; see Receive some lines, the whole order, or several orders at once. Draft POs can't be received yet - mark them as ordered first.
1. Open the Receive stock card
Open the purchase order and click Receive. A Receive stock card opens right on the page:
Receive to location - where this stock is arriving. It defaults to the PO's destination, and you can pick any of your Shopify locations. On an order split across several destinations it starts on Each item's ordered destination instead - see Receive some lines, the whole order, or several orders at once.
A line-by-line table showing Product, Ordered, Receive, Unit cost, and a Status column. Before you count anything, Status shows what earlier deliveries already covered - a green Received badge on a fully received line, "1 of 3 already received" on a partial one - and as you count it tracks this delivery instead.
An Invoice # field for the supplier's invoice number on this delivery, and an optional Note (handy for "Box 2 of 3" or "2 units damaged"). This is where supplier invoice numbers belong: each delivery keeps its own, so one purchase order can carry several. The PO number field on the order itself is a different thing - whatever you type there replaces the number Stockroom generated for the order, on the order and on every document.
A Received date - defaults to today. Entering a delivery that actually arrived earlier? Pick that day, and the receipt, your reports, and your cost history all use it.
Only some lines turned up, the whole order arrived and needs no counting, one shipment covers several orders, or the order ships to more than one destination? Each is covered in Receive some lines, the whole order, or several orders at once.
2. Enter what arrived
Each row shows the product name with its codes underneath: the supplier's code first when you have one on record, then Our SKU, followed by the pack code and how many units that location already holds. When several variants of one product are on the order, those codes are how you tell one row from the next. You can also put the whole order in SKU order - open Sort items on the Items card and choose SKU - and the receive rows follow the same order.
Every line's Receive quantity starts at zero, so you can scan or type what actually turned up without clearing a number first. Scan to count sits at the top of the card. It takes a barcode scanner or a typed code (the phone camera is used by the POS tile - see Use Stockroom on Shopify POS) - each scan adds the line's pack size when it has one, so a case of 12 counts 12, and 1 when it doesn't. The Per scan choice beside the box changes that: Per scan: pack size is the default, Per scan: 1 unit counts 1 whatever the pack size, and Per scan: custom shows a Units per scan box - type the case quantity once, then scan each case. The pack size is the one on the product's stock settings or the supplier's catalog entry, the same number ordering uses. The choice is remembered per device, not per store, and the POS Receive stock tile has the same three options under its barcode box. The line you have just scanned moves to the top of the list, so the row you are about to type into is always the one in front of you. Only scanning reorders the list; typing a quantity leaves everything where it is.
Whole order arrived? Click Max counts and every line fills with the quantity still outstanding - then adjust anything that came up short. For a partial delivery, either enter just the lines that arrived, or click Max counts and lower the ones that fell short. Lines left at zero are skipped, so you can receive them in a later delivery. If more arrived than you ordered, enter what actually turned up - the extra units are recorded and land in stock, and the line is flagged so you can see it. See Receiving more than you ordered.
Zero counts sits next to it and clears every quantity, so you can count a delivery from scratch. When your supplier has told Stockroom what's actually in the shipment the quantities pre-fill on their own, a banner says where they came from, and the two buttons become a Set all menu with a third option, Fill from ship notice, for putting those numbers back after you've changed them.
While you count: bins, lots and barcodes
Bin locations - switch on Bin in the card's Columns picker to record a shelf per line as you put the delivery away. See Bin locations: record where each item is shelved.
Lot numbers and expiry dates (early access) - with lot tracking on and a product marked Track lots, the picker offers Lot and Expiry. See Lot tracking: batch numbers and expiry dates.
Barcodes - Add barcodes at the top of the card lists the items with no barcode on record so you can scan or type each one. See Add barcodes while receiving.
3. Record true costs (optional)
Invoices don't always match the PO. As you receive, you can:
Edit each line's Unit cost to match the supplier invoice. This updates the receipt, not the PO - the PO stays your original agreement. Lines you have already received in full are greyed out here, because this card only records what is arriving now - correct those from the delivery itself, in Fix a delivery: undo a receipt, correct costs, change dates, reopen.
Enter the supplier Invoice # for this delivery.
This is the place to record a price you only learn when the goods turn up, which is how a lot of buying from smaller suppliers works. The Unit cost column is shown by default - if you cannot see it, open the Columns menu on the receive card and tick Unit cost. That choice is remembered per device, so it can be on at your desk and off on a warehouse tablet.
If the PO has shipping or duty charges, a Landed / unit column shows what each unit truly costs once those are spread across the items. See Landed cost: what your stock really costs for the full picture.
Already confirmed the receive with the wrong costs? You can correct them without undoing anything - see Fix a delivery: undo a receipt, correct costs, change dates, reopen.
4. Confirm
Click Receive stock. You'll see "Stock received!", and:
The purchase order's status updates - Partial if items are still outstanding, Received once everything's in.
Your Shopify inventory at the chosen location updates moments later (the update runs in the background, so give it a beat before checking the product page) - received units move from incoming to available.
The receipt is added to the History card on the PO, with the date, units, location, invoice, note, and who received it.
If receiving at these costs would change a product's cost in Shopify (compared to the cent), an Update costs and prices? dialog opens. Update product costs sets your Shopify cost per item to the new weighted average, and Update selling prices lets selling prices move with it - each row pre-fills a New price that holds your current margin at the new cost, rounded the way you choose, and blank fields are left untouched. Tick either, both, or neither - an unticked card reads Not this time, and the confirm button says exactly what it will do. If nothing would change, the stock is received with no dialog at all. (For a PO in another currency, set the Exchange rate on the PO first - without one the dialog is not offered.) Full price-update details: Keep your product costs current when you order.
Ordering only some of a product's sizes or colours, but the new figures apply across the range? Both cards carry Also update the other variants of these products, with the exact count they will touch - one for costs, one for prices - so a range that shares a cost or a price stays aligned without you editing it one variant at a time. Prices spread exactly as you typed them here.
Stock more than one location? If another location is short of what just arrived, the order shows a Suggested transfer card the moment the receipt lands - see Transfers: move stock between locations.
Fixing a delivery, and orders that won't complete
Received the wrong quantities, got an invoice that prices the delivery differently, or closed an order by mistake? Undo, cost corrections, date changes and reopening are in Fix a delivery: undo a receipt, correct costs, change dates, reopen. When the supplier will never ship the rest, or the delivery was taken in as a Shopify transfer, see When the rest of an order isn't coming.
Dropship orders: Mark as delivered
On a purchase order that ships straight to your customer (a Ships to customer badge sits next to its status), the button reads Mark delivered and the card's Receive all button reads Mark all delivered. The card works the same, but there is no location picker and your Shopify inventory never changes - the goods went to your customer. When everything is in, the order reads Delivered. See Dropship purchase orders: ship straight to your customer.
Good to know
Click a product image to see it full size - on the purchase order and in the receiving card, the thumbnail opens the full picture, and a variant with its own image in Shopify shows that image, so on a colour run you see the exact colour you ordered.
Print labels as you receive - from a receipt in the PO's History card, print one label per unit that arrived. See Print barcode and price labels.
After a PO is ordered, its lines are locked - quantities and products stay as ordered so the receiving history stays true. You can still Add items, and cancel a line's unreceived remainder with Cancel remaining.
Supplier didn't ship everything and never will? Receive what arrived, then cancel the rest - see When the rest of an order isn't coming. Cancelled items stop counting toward the order total and no longer show as incoming in Shopify.
Receiving into a location that has never held the item is fine - Stockroom stocks it there as it receives, no Shopify setup needed.
Imported the order from Stocky? Receiving updates your available stock as usual and clears Stocky's leftover incoming entry for the items you receive. Anything Stocky left standing on older orders is found by the incoming check - see Incoming stock Stocky left behind.
Using MyWorks Sync? Receiving is the moment your purchase order becomes a real cost - connect MyWorks to send POs and bills to QuickBooks automatically.


