Storage & Zones

Storage is where your warehouse takes shape inside EMS. After receiving builds skids and assigns them to slots, the Storage module keeps track of where everything lives. It manages a six-zone warehouse layout, monitors capacity in real time, handles location moves, and powers the inventory check workflow that keeps your physical counts in sync with the system.

Every skid that comes out of receiving gets a zone and a slot assignment. From that point on, Storage is the single source of truth for "where is this skid right now?" It answers that question for production (which skids are available for a PO run), for outbound (which skids need to ship), and for the customer portal (how much inventory does this consignee have on the floor).


Zone layout

EMS ships with a six-zone warehouse model. Each zone serves a different operational purpose, and they work together to give you both structured racking and flexible floor space:

Every slot in the system has an address that follows a consistent format: Zone-Row-Column-Level. For racked zones, all four components are present. For floor storage, the level is omitted.

Address examples
  • Racked slot — A-03-B-2 means Zone A, Row 03, Column B, Level 2
  • Floor slot — F-02-D means Zone F, Row 02, Column D (no level needed)
  • Holding slot — H-01-A means Zone H, Row 01, Position A

This addressing scheme means that every location in your warehouse maps to exactly one identifier in EMS, and every identifier maps back to exactly one physical location. When an operator reads "A-03-B-2" on a label or a screen, they know exactly which shelf to walk to.

Zone names are configurable

The default names (A through D, F, H) are starting points. You can rename zones to match your warehouse's existing signage in Settings. If your team already calls their zones "Dry 1", "Dry 2", "Cold", and "Staging", you can use those labels and EMS will display them everywhere.


Capacity tracking

Each zone has a configurable maximum skid capacity. EMS tracks how many skids are currently stored in each zone and shows fill rates across the storage dashboard using a simple colour system:

The storage dashboard provides a per-zone fill-rate rollup. Each zone gets a progress bar showing current skid count versus max capacity, coloured according to the thresholds above. This gives warehouse managers an at-a-glance picture of where space is tight and where there is room to absorb new shipments.

90% capacity warnings are toast notifications

When a zone crosses the 90% threshold, EMS fires a toast notification visible to all logged-in users. The toast names the zone, shows the current count versus max, and suggests rerouting new skids. It does not block put-away — you can still assign skids to a zone at 95% if you need to — but the warning ensures the decision is conscious.


QR location labels

Every rack slot in your warehouse should have a printed QR code label. EMS generates these labels from your zone configuration, and you print them on a standard label printer (4x6 or 2x4 thermal labels work well). Each QR encodes the slot's full address — for example, A-03-B-2.

QR labels power a two-scan verification process during put-away:

  1. Scan the skid QR. This is the label printed when the skid was completed during receiving (the SKD-NNNN-NN identifier). It tells EMS which skid you are placing.
  2. Scan the location QR. This is the label on the rack slot. It tells EMS where you are placing the skid.

When both scans match — the skid exists in the system and the slot is a valid, unoccupied location — EMS confirms the put-away with a green check and an audible chime. If the slot is already occupied, EMS warns you and asks you to pick a different location.

Print spares

Labels peel, get dirty, or fade under warehouse lighting. Print two copies of every location label during setup — stick one on the rack and keep the spare in a binder organised by zone. When a label becomes unreadable, you can replace it in seconds instead of reprinting from the system.


The Storage page is your interactive warehouse map. Here is how to find what you are looking for:

  1. Zone cards. The top of the page shows one card per zone with its name, fill-rate bar, and skid count. Click a zone card to expand it.
  2. Row list. Inside a zone, you see a list of rows. Each row shows how many of its slots are occupied. Click a row to expand it into its columns and levels.
  3. Slot grid. The expanded row shows a grid where each cell is a slot. Occupied slots show a coloured chip with the skid identifier. Empty slots show a dashed outline.
  4. Slot detail. Click an occupied slot to open its detail panel. You see the skid identifier, the shipment it came from, the consignee, the date it was placed, and a summary of its contents (product names, quantities, good units).
  5. Box-level drill-down. From the skid detail, click View Boxes to see every box on the skid with per-line product breakdowns, damaged counts, and missing counts — the same data that was recorded during receiving.

The search bar at the top of the storage view lets you jump directly to a skid by its SKD identifier, or to a slot by its address. Type A-03 and EMS filters to Zone A, Row 03. Type SKD-0042 and EMS highlights the slot containing that skid.


Moving a skid

Skids don't always stay where they were originally placed. You might need to consolidate zones, make room for a large incoming shipment, or stage skids near the production line. EMS tracks every move with a full audit trail.

To move a skid:

  1. Open the skid's detail panel (click the slot in the storage view, or search by SKD identifier).
  2. Click Move.
  3. Select the destination zone from the dropdown. EMS shows only zones with available capacity.
  4. Select the destination slot. EMS suggests the next available slot in the chosen zone, but you can pick any empty slot.
  5. Click Confirm Move.

The move is logged immediately with:

The skid's history tab shows its full location timeline — every zone and slot it has occupied since receiving, in chronological order. This is useful during audits and when tracking down misplaced inventory.

Moves are instant

When you confirm a move, the origin slot is freed and the destination slot is occupied in the same operation. There is no in-transit state for internal moves. If you need to stage skids temporarily before deciding their final home, move them to Zone H (holding) first.


Remainder skids

During production, a PO run may consume only some of the boxes from a skid. For example, a skid of 20 boxes might have 14 pulled for a production order, leaving 6 behind. EMS tracks this as a remainder skid.

A remainder skid keeps its original SKD identifier but its contents are updated to reflect only what is left. The production module handles the split automatically — when boxes are allocated to a PO, EMS subtracts them from the skid's box list and recalculates the product totals.

The remainder skid stays in its current storage location unless you manually move it. On the storage view, remainder skids display a small badge showing "R" and the remaining box count (for example, "R 6/20") so you can tell at a glance that this skid has been partially consumed.

Consolidate remainder skids regularly

If you have multiple remainder skids from the same consignee in the same zone, consider consolidating them onto fewer skids. This frees up slots and makes inventory checks faster. Move the boxes to one skid during your next inventory check cycle, then move the empty skid's slot back to available.


Inventory check workflow

Inventory checks verify that your physical warehouse matches what EMS believes is there. They catch misplaced skids, unreported moves, and counting errors before they cascade into downstream problems like incorrect production availability or inaccurate customer portal data.

To run an inventory check:

  1. Navigate to the Storage page and select a zone or a specific slot. You can check an entire zone at once or focus on a single row.
  2. Click Inventory Check. EMS enters check mode for the selected area.
  3. Walk the zone physically. For each slot, scan the skid QR (or manually confirm the skid identifier visible on the label).
  4. EMS compares your scans against its records and flags discrepancies in real time:
    • Extra skid — a skid is physically present but EMS does not expect it in this slot. It may have been moved without being logged.
    • Missing skid — EMS expects a skid in this slot but you did not scan one. The slot may be empty or the skid may have been moved elsewhere.
    • Wrong location — the skid is in the system but EMS thinks it belongs in a different slot. The physical location and the system location disagree.
  5. For each discrepancy, you can Resolve (update EMS to match reality) or Flag for review (leave it unresolved for a supervisor to investigate).
  6. Click Complete Check when finished. EMS records the check with a timestamp, operator, zone, slot range, and discrepancy count.
Resolving discrepancies changes system state

When you click Resolve on a discrepancy, EMS updates slot assignments to match what you scanned. This means the previous location record is overwritten. If you are unsure about a discrepancy, use Flag for review instead — it preserves the current state while alerting a supervisor.


Consignee roll-ups

The storage dashboard includes a per-consignee aggregate view. This is especially useful for distributors who warehouse product for multiple brand-owners and need to report on — or bill for — space usage.

The roll-up shows, for each consignee:

This data powers space billing if you charge consignees per-skid or per-unit for warehousing. It also gives your customers a clear answer when they call and ask "how much of my product do you have on the floor right now?"


Configuring zones

Zone configuration lives in Settings → Storage. From here you can set up each zone to match your physical warehouse layout.

For each zone, you configure:

Configuration changes apply immediately

When you save a zone configuration change, it takes effect right away across the entire system. However, changes do not move existing skids. If you reduce the number of rows in a zone and there are skids stored in the removed rows, those skids will show a "location not found" warning. Always check that a zone is empty before shrinking its dimensions.

During initial setup, walk your warehouse with a tape measure and a notepad. Count the rows, columns, and levels for each racking section, and map them to EMS zones. Getting this right on day one means the slot auto-suggest during receiving will point operators to real, reachable locations from the start.


Best practices