Skip to content

Receiving Stock

This guide walks you through the full inbound order process — from creating the order to confirming receipt and putting stock away.

  • You need the create:inbound-order and update:inbound-order permissions (or a role that includes them). There is no separate line-level permission — lines are managed through the order, and update:inbound-order covers start-receiving, recording receipts, and completing the order.
  • The items you are receiving must already be enrolled in the warehouse as warehouse items
  • For LOT-tracked items, decide the lot number before you start receiving
  • Decide which bin each line’s stock should land in — a destination bin is required when you record the receipt (see Step 4)

  1. In the sidebar, open Inbound → Inbound Order and click ADD NEW INBOUND ORDER
  2. Select the warehouse the stock is arriving at
  3. Add a reference number or notes if needed
  4. Click Save — the order is created in DRAFT status

For each item you are receiving:

  1. Click Add Line
  2. Select the warehouse item
  3. Enter the requested quantity — the expected quantity from the supplier
  4. For LOT-tracked items: select or create a lot. You can set expiration and manufacturing dates on the lot
  5. Optionally specify a destination bin — where this line’s stock should go once received
  6. Click Save

Repeat for every item on the shipment. You can add or edit lines while the order is in DRAFT.


When the physical goods arrive:

  1. On the order’s row (or detail), click Start Receiving
  2. In the dialog, select the receiving bin — typically your warehouse’s RECEIVING_DOCK bin. This is recorded on the order; note that the actual stock lands in the destination bin you pick per line in Step 4
  3. Confirm — the order moves to IN_PROGRESS

This is the step that actually creates inventory. When you record a receipt for a line, the system immediately puts the stock on hand — you do not wait until the order is completed.

Click Receive on the order to open the Receive Inbound Order dialog, which lists every line. For each line, choose a Put-away bin (the destination — required when the received quantity is above 0) and record what was physically received, then click Confirm Receipt:

Each line appears as a row in the dialog. What you enter per row depends on the item’s tracking type:

  • Choose the Put-away bin
  • Enter the received quantity
  • The lot is already fixed by the line (it was chosen when the line was created — the receive dialog has no lot picker)
  • Choose the Put-away bin
  • Enter the received quantity
  • Choose the Put-away bin
  • Enter or scan each serial number (one per line or comma-separated) — you must provide exactly as many serials as the received quantity
  • Choose the Put-away bin
  • Scan all RFID tags into the field — one tag per received unit, and the count must match the received quantity

Leave the received quantity at 0 for any line you are not receiving now. When you click Confirm Receipt, then for each line with a quantity above 0 the system:

  • Creates or adds to a quant at the chosen destination bin
  • For SERIAL/RFID items: creates one serialized unit record per scanned code, linked to the quant
  • Records a goods_receipt inventory transaction
  • Increases the line’s fulfilledQuantity

The stock lands in the destination bin you choose here, not in the receiving-dock bin. If you want a dock-then-putaway flow, receive into your dock bin and then move stock to its final bin with a transfer order.


Once all lines have been received:

  1. Click Complete on the order
  2. Confirm

The order moves to COMPLETED. Completing is purely a status change that closes the order — the inventory, serialized units, and goods_receipt transactions were already created when you recorded each receipt in Step 4. You cannot complete an order that has not started receiving.


If you receive fewer units than requested, record only what actually arrived. The fulfilledQuantity will be less than requestedQuantity. You can complete the order in this state — the shortfall is simply not received. Create a new inbound order if the remainder arrives later.