Receive a Purchase Order in Shopify POS
The Bookkeep Receive Inventory tile in Shopify POS lists the purchase orders waiting on stock for that store, counts items as they're scanned, and submits a receipt straight into Bookkeep.
Receipts created in POS are identical to receipts created in Bookkeep's web app. Inventory moves in Shopify, weighted average cost is recalculated, and the receipt appears in the purchase order's history with the staff member's name on it.
Before you start
- The Receive Inventory tile must be on your POS home screen. If you don't see it, add it from the device by tapping Add tile on the smart grid, or from your Shopify admin under Sales channels > Point of Sale > Edit for the POS app, where Bookkeep appears under Embedded Apps. See Shopify's guides to changing the smart grid and managing your POS apps.
- Your receiving device must be assigned to a location. Bookkeep inherits the location received into from your device's own location.
- Your Bookkeep install needs the
read_userspermission so receipts can be attributed to the staff member submitting them. If it's missing you'll see a message asking you to reinstall the app or contact support, and the receipt won't submit.
Which purchase orders appear
Tapping the tile opens a list of every purchase order in Ordered or Partial status, shown as the PO name and the date it was created:
Drafts don't appear, because nothing has been ordered from the supplier yet. Fully received and cancelled POs don't appear either.
The receive screen is filtered to your store
Select a purchase order and you'll see only the line items destined for the location this device belongs to. A line's destination is its own location if one was set on the line, and otherwise the purchase order's destination location.
This matters for POs that split across stores. If a single PO sends 20 units to Brooklyn and 15 to Manhattan, the Brooklyn register shows only the Brooklyn lines, and staff can't accidentally receive another store's stock. If none of the PO's lines are headed to your location, the screen says "No items to receive at this location."
A purchase order can also be blocked outright, with the reason shown in a banner:
| Banner | What it means |
|---|---|
| PO status is "…" — only ordered or partial POs can be received | The PO moved out of a receivable status, most likely received or cancelled by someone else. |
| Inventory sync is "…" — wait for sync to complete before receiving | Bookkeep is still syncing incoming inventory with Shopify. Wait a moment and reopen the PO. |
Scanning items
The receive screen picks a scanner automatically, preferring a connected hardware scanner over the device camera. Available sources are listed at the top and you can switch between them:
- External scanner — a scanner paired with the device. Preferred when present.
- Embedded scanner — the scanner built into the POS hardware.
- Camera — the device camera. Tap Open Camera to start it; it closes on its own after a successful scan.
With a hardware scanner selected, just point and scan.
Hardware scans are always accepted even while the camera is the selected source, so a scanner on the counter keeps working without switching modes.
If no scanner is detected at all, you'll see a banner saying so. You can still enter every quantity by hand.
Scan feedback
| Message | What happened |
|---|---|
| Barcode "…" not found on this PO | The barcode doesn't match any line on this purchase order at this location. Check whether the item belongs to a different PO or a different store. |
| Item already at max receive quantity | The line is already counted up to everything still outstanding — ordered quantity minus what's been received before. |
Scanning the same barcode twice in quick succession is treated as one scan, which prevents a scanner's double-fire from counting an item twice. Deliberately rescanning the same item a moment later counts normally.
Submitting the receipt
Tap Submit and a confirmation panel appears showing the totals about to be posted:
Enter a Description — this is required, and it becomes the receipt's name in Bookkeep. Use whatever your team will recognize later, most usefully the supplier's invoice or packing slip number, or your initials as the receiving employee.
Only lines with a quantity above zero are included. Everything else on the PO stays outstanding in the case where you're only partially receiving goods.
What POS receiving doesn't do
- Landed costs. Freight, duties, and discounts are allocated on the admin receive screen, not in POS.
- Cost changes. Unit costs come from the purchase order and can't be edited at the register.
- Adding items not on the PO. You can only receive lines that are already on the purchase order.
- Voids and cost corrections. Fixing a receipt that was submitted wrong is done from the admin — see Fix a Receipt: Voids and Cost Corrections.
Frequently asked questions
Can two registers receive the same purchase order?
Yes. For a PO split across locations that's the point — each store receives its own lines. Two devices at the same location can both receive too, but they'll see the same outstanding quantities, so coordinate to avoid double-counts.
A scanned barcode isn't recognized, but the item is definitely on the PO.
The line most likely has no barcode stored, or a different one. Bookkeep refreshes SKU and barcode from the live Shopify variant when the screen loads, so adding the barcode to the variant in Shopify and reopening the PO usually resolves it. In the meantime, type the quantity into the line's QTY field.