Shipping & Pickup

The Shipping module owns the entire inbound side of the warehouse pipeline — from creating a shipment as soon as you have a bill of lading, through customs clearance, NOA upload, pickup scheduling, and the hand-off to Receiving.

New to EMS?

Start with the Quickstart for a 10-minute walkthrough that covers shipping in context. This page goes deeper.

Status lifecycle

Every shipment moves through this sequence. Statuses are deterministic — EMS won't let you skip stages, so the audit trail stays clean.

How a shipment moves through the system

Documents Processing (shipment just created) → Awaiting Customs (broker notified) → In Transit (flight departed) → Arrived (landed at airport) → Customs Cleared (released by CBSA) → Ready for Pickup (NOA uploaded; visible on pickup calendar) → Picked Up (driver collected at airport or depot) → Ready for Receiving (arrived at warehouse, awaiting confirmation) → Received (warehouse confirmed; box-scan can begin) → Inventoried (all boxes scanned to skids; available to Production)

Each transition is logged in the shipment's history with operator and timestamp. The Reports module exposes this as a chain-of-custody report.


Creating a shipment

From Shipments → + New Shipment. The wizard is six steps:

  1. Source — supplier, AWB number, flight date, estimated arrival.
  2. Consignee — pick from the consignee list (or create one inline).
  3. Documents — drag-drop PDFs / Excel files (commercial invoice, packing list).
  4. Items — line items by product + quantity. Auto-extracted if a packing list was uploaded; otherwise manual.
  5. Pre-schedule — optional: pre-book the pickup date if known.
  6. Review & create — confirms; shipment created in Documents Processing status.

Wizard PDF / Excel upload

EMS parses common packing-list templates and pre-populates the Items grid. Supported:

If the parser can't fully map a template, you'll see a column-mapping screen. Confirm once and EMS remembers the mapping for future shipments from the same supplier.

Dual-batch shipments

If a single AWB carries two distinct production batches (different flavour mix or stamp regions), EMS detects the duplicate box-number ranges and prompts you to confirm which batch a scan belongs to during Receiving. The two batches stay tagged through the rest of the pipeline.

Manual items entry

If you don't have a parseable packing list:

The total line count is shown at the bottom of the wizard; quantities feed into the production-availability calculation later.


Uploading the Notice of Arrival (NOA)

The NOA is the document from your customs broker indicating the shipment has been released. It's the gate between Customs Cleared and Ready for Pickup.

  1. Open the shipment, click Upload NOA.
  2. Drag the NOA PDF (or other file) into the dropzone — stored in IndexedDB-backed BlobStore, not localStorage, so it doesn't bloat your browser quota.
  3. Enter the Skid count from the NOA. This may differ from the packing list (e.g. NOA says 17 skids, packing list says 15) — EMS uses the NOA value for pickup planning.
  4. Set the Arrival date (defaults to today).
  5. The Schedule Pickup Date auto-fills as Arrival + 1 day. Override it manually if you have a specific pickup window booked. Tick Schedule later if you don't know yet.
  6. Click Save NOA. The shipment moves to Ready for Pickup and appears on the pickup calendar.
Skid count rules

If the NOA skid count exceeds the truck capacity (currently 12 skids), the shipment must be picked up over multiple trips. EMS handles this automatically — it tracks how many skids are still remaining across the trip history.


The pickup schedule calendar

The Shipping module's Ready-for-Pickup tab shows a month/week calendar of every shipment with a scheduled pickup. You can:

The calendar tiles themselves are read-only after v2.5 — clicking a tile filters the list rather than navigating away.

Truck capacity (12 skids per trip)

Each pickup trip is capped at 12 skids. The dispatcher can select multiple shipments for one trip; if the cumulative skid count exceeds 12, you'll see a red over-capacity warning at the bottom of the schedule:

Over-capacity example

If you select 3 shipments totalling 14 skids, EMS will warn you that you are 2 skids over the truck capacity of 12.

You can either reduce the selection or proceed (with a confirmation) and EMS will leave the overflow skids for a follow-up trip.


Damage at pickup

If the driver finds visible damage at airport pickup, they can report it before the shipment ever reaches the warehouse:

  1. From the ready-for-pickup card, click Report damage.
  2. Three independent actions are available (since v2.4):
    • Tag Box — flag a specific box # as damaged with an optional reason (e.g. "3, crushed corner"). No photo required.
    • Photo — opens the camera (mobile) or file picker, captures images linked to the shipment.
    • Upload — upload existing photos from the device.
  3. Tagged boxes appear in a confirmable list above the photo gallery, with [Untag] and Confirm-all buttons.
  4. Click Save report. The shipment carries a damage flag through the rest of the pipeline; receiving will see a yellow banner asking the receiver to verify the flagged boxes first.
Photos are stored on this device

Damage photos are stored in IndexedDB on the device that captured them, with metadata syncing to localStorage. For multi-device deployments and Pro/Enterprise tiers, EMS uploads them to backend blob storage automatically.


Filtering & search

The Shipments list supports:


The shipment detail page

Click any shipment in the list to open its detail view, with these tabs:


Best practices