Blog · 17 October 2026 · 7 min read

Show on-order units as incoming in Shopify: the projection setting

What Restock Ops writes to Shopify's incoming quantity when a PO is marked ordered, how it unwinds on receipts, undo and cancel, and when to turn it on.

Shopify has a quantity state called incoming. It is the number you see on a product page under the inventory card when a transfer is in transit, and it is the state Stocky used to fill when a purchase order was placed. Out of the box, a Restock Ops purchase order does not touch it. The on-order figure lives on the PO and in the reorder report, and Shopify's incoming stays whatever your transfers make it.

There is one setting that changes this. In Settings it is a single checkbox labelled Show ordered units as "incoming" in Shopify, marked Experimental. This post is the long version of that label: exactly what is written when you tick it, what happens on every later step of the PO's life, how to read the log of those writes, and why it ships off by default.

What the setting changes on Mark ordered

The Mark ordered dialog on a purchase order tells you which world you are in. With the setting off, the last sentence reads: nothing is written to Shopify inventory until you receive. With it on, the sentence becomes: the ordered quantities are added to Shopify's incoming quantity at the destination location; available stock is not changed until you receive.

When you confirm with projection on, the app does one inventory adjustment per line:

  • Which quantity. Only incoming. Available and on hand are not touched; a projected PO does not make anything sellable.
  • How much. The outstanding units on the line, meaning ordered minus already received, never below zero. On a fresh PO that is simply the ordered quantity.
  • Where. The PO's destination location. If you change the destination before marking ordered, the projection follows it.
  • Which items. Lines whose variant is tracked by Shopify and already has an inventory level at that location. An untracked variant, or one not stocked at the destination, is left out rather than guessed at. Not tracked versus not stocked explains the difference.
  • With what reason. Shopify requires a reason on every adjustment. Projection uses movement_created, the same reason a transfer uses when it is created, and attaches a reference URI that points at the Restock Ops purchase order. Open the inventory history on the product and the row names the PO.

The PO itself remembers that it was projected. That flag is what every later step checks, so switching the setting off afterwards does not strand units in incoming: a PO that projected will still unwind itself, and a PO created after you switched off simply never projects.

What happens as the PO moves

Projection is only useful if it goes back down as goods arrive. Each stage of the PO's life has a matching write, and each one is previewed before it runs.

Writes to Shopify at each step of a projected purchase order
StepavailableincomingReason shown in Shopify
Mark orderedno change+ outstanding units per linemovement_created
Record a receipt+ received units- the same received unitsreceived, then the matching decrease on incoming
Undo the latest receipt- those units+ those unitsthe reverse of the receipt
Cancel or close with units outstandingno change- whatever is still outstandingmovement_canceled
Back to draftno changeno changelines are editable again; nothing is written

Two of those rows deserve a sentence each. A partial receipt moves exactly what arrived from incoming to available, so the product page shows 60 available and 40 still incoming after a 60 of 100 delivery, which is what a shop floor expects to see. And closing a short-delivered PO clears the 40 that will never come, because the alternative is incoming that stays forever, which is precisely the problem described in incoming inventory stuck after Stocky.

Receipts are written in a fixed order: available first, then the incoming decrease, then unit costs. If the incoming step fails after the available step succeeded, the receipt is still complete from a stock point of view, and the failure is recorded so you can see it rather than discover a mismatch in a report later.

Where to see every write

Settings has a Shopify writes section listing each inventory call the app made: the kind of write, whether it succeeded, a one-line summary such as PO-1042: project on-order units as incoming at Warehouse, any error Shopify returned, and a link back to the receipt or PO it belongs to. The same entries exist for the clear and the receipt steps. If something on a product page does not add up, this list is the first place to look, because it answers the question the product page cannot: did the app actually send that change, and did Shopify accept it?

The writes are deltas, not absolute values. The app says plus 40 on incoming, not set incoming to 40. That is why a retry after a timeout cannot double a quantity, and why a count someone made in Shopify between your preview and your confirm is not overwritten.

What projection does to the reorder report

This is the part that surprises people. The reorder report's On order column is read from Shopify: it is the incoming quantity at the location you are viewing, the same figure Shopify shows on the product page. The report then treats on hand plus on order as your stock position when deciding whether an item is at its reorder point or running out.

With projection off, your own open purchase orders are not part of that figure, so the day after you place a big order the report can still show the same items as needing a reorder. With projection on, marking the PO ordered pushes those units into incoming, the On order column picks them up on the next load, and the items drop off the report until the units are received and the position is recalculated. If you use the report to create draft purchase orders every week, projection is what stops you ordering the same thing twice.

Why it is off by default, and how to try it

Incoming is a real Shopify state and other things write to it: transfers, other apps, and the inventory history that your staff read. Writing into it from a purchase-order app is useful but has consequences for every report that reads it, which is why the setting is opt-in and labelled experimental until it has been watched on more live stores.

  1. Pick one supplier and one upcoming order. Do not switch the setting on for a shop with twenty open POs; those are not projected retroactively anyway.
  2. Turn on Show ordered units as "incoming" in Shopify under Settings and save.
  3. Create the PO, mark it ordered, and read the dialog: it should now mention the incoming quantity at the destination.
  4. Open one of the products in Shopify and check the inventory card and its history at the destination location. You should see the ordered units as incoming with a reference to the PO.
  5. Record the first receipt when the goods arrive, including a partial one, and watch incoming fall by exactly what you received while available rises by the same amount.
  6. Check Settings, Shopify writes, for the three entries (project, receipt, incoming decrease) and confirm none is marked failed.
  7. Only then decide whether to leave it on for the shop.

Known limits

  • The app can only clear incoming it created. Units left in incoming by Stocky, a transfer or another app are not its to remove.
  • Lines for variants that are not tracked, or not stocked at the destination, are skipped silently in the projection. Stock them at the location first if you want them to appear.
  • Changing a line quantity is only possible in draft, so an already projected PO cannot have its projection edited; cancel it (which clears the projection) and recreate it, or receive the difference as a short delivery and close.
  • Shopify's incoming is per location. A PO whose destination is one location projects only there; it does not appear as incoming on a product's other locations.

FAQ

Does turning on incoming projection change my available or on-hand stock?

No. Projection writes only to Shopify's incoming quantity. Available and on hand change when you record a receipt, exactly as they do with the setting off.

I turned the setting on after marking several POs ordered. Are they projected now?

No. Projection happens at the moment a PO is marked ordered, and only for POs ordered while the setting is on. Earlier POs keep working as before and simply never touch incoming.

If I switch the setting off, will a projected PO leave units in incoming?

No. Each PO remembers whether it was projected, and that flag, not the setting, drives the later writes. A projected PO still reduces incoming as you receive and clears the remainder when you close or cancel it.

Why does my reorder report show more on order after I turned projection on?

Because the On order column reads Shopify's incoming quantity at the location, and projection now puts your open purchase orders into that number. That is intended: it stops the report from suggesting an order you have already placed.

Try it on your store. Restock Ops adds purchase orders with partial receiving, supplier notes, cost history, barcode labels, scanner stocktakes and a reorder report on top of Shopify inventory. From $19/month, 14-day free trial.

Install on Shopify Watch the demo

Sources