Warehouse operations

Run scan-first warehouse tasks with bin-level balances and one shared movement ledger.

Last updated:

Use Warehouse as the operational home for mobile inventory work.

Entry point

  • Open Warehouse from the app navigation.
  • Warehouse home separates:
    • A full-screen Warehouse mode shell instead of the normal desktop header and sidebar
    • Floor operations for the dedicated Warehouse task shell
    • Inventory management pages for opening the standard desktop Inventory screens when setup or review work is needed
  • Warehouse home prioritises:
    • A compact hero with:
      • Scan now primary action
      • A short helper line
      • Quick action chips underneath
      • The current working location summary in the same top panel
      • A Change location action once a working location has been selected
    • A Warehouse setup checklist card for first-run rollout:
      • Label bins first
      • Relabel existing stock with internal labels
      • Mark Warehouse ready
      • Setup progress is stored per working location, so each warehouse/location can be rolled out independently
      • The setup card shows a three-step progress bar with numbered/current/done markers and consistent 48px action buttons
    • A matching Prepare Warehouse step in Getting started that opens the Warehouse setup checklist from the wider onboarding journey
    • Scan now as the primary action
    • Continue task using the last Warehouse task opened in this browser
    • Current location as the working-site context for new Warehouse tasks
    • Needs attention for low-stock review and issue reporting
  • Warehouse pages use a dedicated bottom nav for:
    • Home
    • Tasks
    • Scan
    • Attention
    • Exit
  • The label print view opens inside the same Warehouse mode shell on screen, but browser print output removes the app chrome
  • Warehouse task areas include lookup, receiving, putaway, moves, counts, adjustments, replenishment, returns, quarantine, labels, and issue reporting.

Permissions and setup state

Warehouse mode is gated separately from general Inventory access:

  • inventory.warehouse.read opens Warehouse home, Lookup, scan resolution, and setup-state reads.
  • inventory.warehouse.operate opens floor actions such as receiving, putaway, moves, replenishment, returns, quarantine, and issue reporting.
  • inventory.warehouse.adjust opens Counts and Adjustments.
  • inventory.warehouse.labels opens label tasks, label print jobs, and label job lookup.
  • inventory.warehouse.setup saves the Warehouse setup checklist.

The Warehouse setup checklist is saved by ChannelWeave, so progress follows the working location rather than one browser tab. Warehouse ready can only be completed once both Label bins first and Relabel existing stock with internal labels are complete.

What Warehouse is for

Warehouse is the task-first operational workspace for:

  • Item, bin, and location lookup
  • Goods receiving into a chosen bin
  • Putaway from staging into storage bins
  • Bin-to-bin stock moves
  • Replenishment from reserve/bulk bins into pick-face bins
  • Cycle counts and spot checks on a specific bin
  • Stock adjustments with explicit reason codes
  • Returns restock into a specific bin
  • Quarantine moves into a physical quarantine bin
  • Relabelling and barcode/bin label print jobs
  • Issue reporting with optional image upload

Balance and movement rules

Warehouse tasks use one shared inventory execution model:

  • On-hand balance is tracked by stock item, location, bin, and optional lot/expiry details.
  • Movement history is append-only for every receipt, putaway, move, replenishment, return, quarantine move, adjustment, and count variance.
  • Stock item quantity is treated as a summary derived from warehouse balances.

This means bin-level putaway, replenishment, counts, quarantine, and returns all follow the same movement rules.

Scan-first expectations

Every task screen is built around scan-first input:

  • Resolve an internal barcode first, then manufacturer barcode, with SKU as manual fallback only
  • Resolve a bin code
  • Confirm quantity
  • Record lot/expiry when needed
  • Submit one inventory-safe transaction
  • Move through a guided step-by-step flow instead of a full desktop form
  • Keep a live progress summary visible while the task is in progress
  • Use a sticky action footer for the current next action
  • Receive strong success and error scan feedback as each scan resolves
  • Use a camera scan button beside scan fields on supported mobile browsers
  • Keep Warehouse as the app mode and Location as the physical site where the user is working

Warehouse web officially supports this scanning order for floor work:

  1. Bluetooth HID scanner as the primary path
  2. iPhone camera scan as the fallback path
  3. Manual typing as the fallback path

Recommended phone setup:

  • Smartphone
  • Paired Bluetooth scanner in Basic/HID keyboard mode
  • Correct keyboard layout on the scanner
  • Enter suffix enabled after each scan
  • Scan fields keep autocorrect, autocapitalisation, and spellcheck disabled so HID scanner input lands cleanly in the focused field

Warehouse location context follows these rules:

  • If a task is launched from assigned work, the task inherits that location
  • Otherwise Warehouse reuses the last selected working location
  • If no location is known yet, the first scanned bin or location can set it
  • For location-sensitive tasks, if the location is still unknown, Warehouse requires the user to return to Warehouse home and choose a working location before the task can continue

Warehouse task pages keep a compact task header and the same bottom nav so the Warehouse area behaves like a dedicated mobile workspace rather than a set of standard Inventory forms.

Task headers show the current working location only. Location changes happen on Warehouse home, not inside individual task screens.

Task forms use a guided cockpit:

  • a visible step counter and progress bar
  • a short step rail that shows completed, current, and locked steps
  • one sticky primary action in the footer for the next task action
  • 48px-or-larger form controls for scanner and gloved-hand use
  • a location gate when a movement task is opened without a working location

For existing stock with only manufacturer EAN/UPC labels, the recommended first Warehouse rollout is:

  1. Print and apply bin labels
  2. Run an initial existing stock relabelling pass
  3. Apply internal stock labels to the physical stock containers
  4. Then use Warehouse mode for day-to-day floor work

Warehouse scan resolution follows this precedence:

  1. Internal barcode
  2. Manufacturer barcode
  3. SKU fallback
  4. Bin code
  5. Location code

Internal barcodes are unique per customer so one scan always resolves to one stock item. Manufacturer barcodes can repeat when multiple stock records refer to the same retail release or supplier code.

Warehouse label tasks print the stock item's internal barcode and bin labels print the bin code. Both label types render as Code 128. Manufacturer barcode fields remain product-level identity data and are not used as the warehouse label identity. The standard stock-item edit form keeps internal barcode read-only after first save so warehouse labels remain trustworthy.

Allocation, dispatch, and valuation

Bin-level on-hand is authoritative in Warehouse, and sales allocation reserves specific sellable balance slices. Allocation chooses sellable balance rows in FEFO order: earliest expiry date first, then oldest balance row.

Dispatch consumes the reserved balance slices rather than decrementing only the stock summary. Each dispatched slice records a dispatch movement, reduces the bin-level on-hand quantity, releases the matching reserved quantity, and records COGS from FIFO cost layers.

Inventory → Stock valuation reports remaining stock value from FIFO cost layers. It also flags quantity mismatches between physical balances and cost layers. Each cost layer carries a currency code inherited from the purchase order currency for receipts or the account inventory valuation currency for opening balances, adjustments, returns, and count variances.

stock.quantity_on_hand and stock.quantity_allocated remain product-level summaries for list, channel, and dashboard queries. They are updated from the warehouse source of truth rather than being the operational ledger themselves.