Receiving & box-scan

Receiving is where your warehouse takes physical custody of every unit. EMS tracks it box-by-box with granular damaged and missing counts per line, multi-skid building in parallel, and a strict two-phase gate so a manager confirms physical arrival before the floor team can start scanning.

The two-phase gate

EMS separates "the truck arrived at our dock" from "we're starting the receiving flow". This matters because:

So a shipment in Ready for Receiving status shows up under "Arrived — Confirm Receipt" with an action button. Until you click Confirm Received at Warehouse, you cannot start the box-scan flow.

How the two-phase gate works

Ready for Receiving (not yet confirmed) → click Confirm Received at Warehouse → Ready for Receiving (confirmed) → click Start Receiving → Received (scanning in progress) → click Finish Receiving (once every box is on a completed skid) → Inventoried


The box-scan flow

Once the shipment is confirmed and you click Start Receiving, you land in the receiving workspace. The page is split:

For each box:

  1. Scan the QR / barcode, or type the box number, then click Lookup.
  2. The confirm card shows every product line in the box per the packing list. Each line gets:
    • The product name + flavour + mL + nicotine
    • An editable Damaged input
    • An editable Missing input
    • An auto-calculated Good units display (= quantity − damaged − missing)
  3. Adjust as needed for what the box actually contains.
  4. Click Accept to Skid. The box appears in Current Skid below.

Damaged + missing — what gets stored

When you Accept a box with damage, EMS stores the following information for each product line in that box:

This data is the contract between Receiving and every downstream module:

Damage tagged at pickup

If the driver flagged a box at pickup (see Shipping → Damage), the receiving page shows a red banner naming the flagged box numbers, and asks you to verify those boxes first before accepting anything else to a skid.

Editing a box already on a skid

Made a typo or found new damage after scanning? Click the Edit pencil on the box's row in Current Skid. The edit form mirrors the scan UI exactly:

When you click Save Changes, the box stays on the same skid but its contents update everywhere — the skid product summary, the box's history, and downstream availability calculations.

The skid card shows damage state at a glance

If any line on a box has damage or missing units, the box's row in Current Skid switches from sage-green to alert-red, with a chip showing how many good units out of the total. Per-line chips show the flavour name alongside the good-versus-total count for affected lines, and warning badges sum up the total damaged and missing units.


Multi-skid building in parallel

Some shipments arrive on multiple skids and you'll receive them in parallel rather than one-after-the-other. The Skid Builder supports this:


Zone & slot assignment

Before completing a skid, pick where it goes:

The Skid Builder shows live next-available info: "Next available in Zone A: A1-2 — confirm or override above". The slot suggestion respects your warehouse's racking layout (rows × columns × shelves) which is configured per zone.

If a slot is in use, EMS won't let you double-book — pick a different slot or a different zone.


Completing a skid

When every box for the skid is in Current Skid:

  1. Confirm the zone + slot.
  2. Click Complete Skid (N boxes).
  3. The skid moves to the Completed Skids list with a generated SKD-NNNN-NN identifier.
  4. You can Print Label for the skid (4×6 thermal-printer-friendly PDF) or remove it back to Current Skid if you made a mistake.

SKD identifiers are unique per shipment — even if you delete a completed skid and rebuild, the new skid gets the next number, never a reused one.


Damage photos

For any box with damage / missing flagged, you can attach photos as forensic evidence. From the box edit form:

  1. Click Add Photo in the Damage Photos section.
  2. On mobile this opens the camera; on desktop it opens the file picker.
  3. The photo is stored in IndexedDB-backed BlobStore (so it doesn't bloat localStorage), with a metadata reference on the box record.
  4. Photos can be removed individually if you re-shoot a better angle.

Photos surface in:


Finishing receiving

The Finish Receiving button at the bottom of the workspace stays disabled until every box in the shipment is on a completed skid. The disabled state shows you exactly what's blocking -- for example, how many boxes still need scanning and how many are sitting on the current skid waiting to be completed.

Once you click Finish Receiving:


Flagged-at-pickup boxes

If the driver tagged any boxes during pickup, the receiving page shows a prominent red banner at the top listing the flagged box numbers and asking you to re-open and inspect each one before accepting it to a skid.

Example banner

Damage flagged at pickup -- verify 3 boxes (for example, boxes #042, #043, and #050). Re-open and inspect each flagged box before accepting to skid.

Each flagged box number is a chip you can click to jump straight to that box. EMS reminds you to verify them but doesn't force you — your operator can decide whether driver-tagged damage was actual or just over-cautious.


Best practices