Home Methodology Sign in Admin Login ↗

Methodology & Workflow

How the platform handles warehouse operations end-to-end.

1. Goods Receiving

All inbound goods are received against an open Purchase Order (PO). The process is handled through the Warehouse PWA — an offline-capable web app installed on warehouse devices.

  1. Operator selects the PO from the dropdown (auto-populated from the ERP) or scans the PO barcode.
  2. Scan the supplier's pallet label (External LP) — if it is GS1-128 encoded, batch number, expiry date, and quantity auto-fill.
  3. For each line item, confirm or enter the received quantity, batch/lot number, and expiry date.
  4. Confirm the receiving location (defaults to the configured staging area for this warehouse).
  5. The app generates an Internal LP and prints a pallet label.
  6. The transaction is queued and synced to the ERP — creating a Purchase Receipt with full batch traceability.

Transactions recorded offline are held in the device's local queue and automatically synced when connectivity is restored.

2. Pallet License Plates

Every physical pallet in the warehouse carries two identifiers:

External LP

Assigned by the supplier. Printed on the shipper's pallet label. May carry GS1-128 Application Identifiers encoding batch, expiry, and quantity. Recorded at receiving but not managed by this system.

Internal LP

Generated by the system at the point of receiving. Format: WH-YYYYMMDD-XXXX. Printed as a Code 39 barcode on the Gran Logistica pallet label. Used for all internal movements and transfers.

Batch and lot numbers are linked to the Internal LP at receiving and tracked through the ERP's Batch record. FEFO (First Expired, First Out) picking is enforced: the system always picks the batch with the earliest expiry date first.

3. Label Printing

Labels are printed at the point of receiving and can be reprinted from the transaction history. The label includes the Internal LP barcode, supplier, item, batch, expiry, and quantity.

Barcode Format

Internal LP labels use Code 39 by default. Code 39 encodes uppercase letters, digits, and a small set of symbols using alternating wide and narrow bars. It requires no check digit and is decodable by virtually every barcode scanner — including low-cost fixed-mount units. Code 128 is more compact (useful when LP codes are long) but requires a higher-quality scanner to resolve narrower bars at distance.

Scanner Distance & Label Stock Recommendations

Use case Scan distance Recommended label Min. bar module width
Handheld at receiving dock 6–24 in (15–60 cm) 4″×2″ thermal label 0.25 mm
Forklift-mounted scanner 3–6 ft (1–2 m) 4″×6″ thermal label 0.75 mm
Fixed-mount / portal scanner 6–10 ft (2–3 m) 4″×6″ or 6″×4″ thermal label 2.0 mm+
For 10 ft scanning: standard office paper (8.5″×11″) cannot produce bar modules wide enough for reliable long-range reading regardless of barcode format. Use a thermal label printer (Zebra ZD420 or equivalent) with 4″×6″ label stock at 203 DPI minimum. Code 39 is preferred over Code 128 at distance — fewer, wider bars for the same LP code length.

Recommended Hardware

  • Thermal label printer: Zebra ZD420, ZD621, or ZT230 — direct thermal, 203 DPI, 4″ print width
  • Label stock: 4″×6″ direct thermal labels (Zebra 10010059 or equivalent)
  • Handheld scanner: Zebra DS2208 or Honeywell Voyager 1202g (1D/2D, Bluetooth)
  • Long-range fixed-mount: Zebra DS9308 or Datalogic PowerScan 9500 (reads to 10 ft)
The External LP Generator tool generates test labels for scanner calibration and training. For production use, labels are printed automatically by the warehouse PWA at the point of receiving.

4. ERP Synchronisation

The warehouse PWA operates offline-first. Every transaction is saved to the device's local queue immediately — no network is required to record a receipt, transfer, or count.

When connectivity is restored, pending transactions are synced to the ERP automatically (or manually via the Sync button). The sync layer runs as a background job queue on the middleware server, with automatic retry on failure:

  • Retries at 1 min → 5 min → 10 min → 30 min → 60 min before marking as failed.
  • Failed transactions appear in the Admin Panel for manual review and retry.
  • Each receiving transaction creates a Purchase Receipt in the ERP with line items, batch numbers, expiry dates, and LP references.

Batch records are created automatically in the ERP if they do not already exist. If a batch number is shared across multiple items (common with date-based lot codes), the system appends the item code to ensure uniqueness and prevent validation errors.

5. Stock Transfers

Once goods are received and labelled, pallets are moved through the warehouse using LP-based stock transfers. All movements are recorded against the Internal LP and pushed to the ERP as Stock Entries.

Transfer Types

Staging → Storage

Move a pallet from the receiving staging area to its putaway location. Initiated directly after receiving is complete.

Housekeeping Move

Relocate a pallet within the warehouse — racking consolidation, aisle clearance, or physical inventory correction. No outbound document required.

Order Picking

Pick pallets against a Delivery Note. A DN must be open in the ERP before a pick transfer can be recorded — this is enforced by the system.

LP Move vs. Stock Transfer

Not all movements need a stock entry in the ERP. The distinction:

Operation ERP entry? When to use
LP Move (location update only) No Physical relocation within the same warehouse bin — the ERP location is already correct or the move is purely for physical organization.
Stock Transfer (Stock Entry) Yes Any move that changes the ERP warehouse or bin location — staging to storage, cross-zone moves, or picking against a DN.
Picking rule: A Delivery Note must exist and be in Draft or Submitted status in the ERP before an order-picking transfer can be submitted. The system validates this before sending the Stock Entry — it will not create a pick against a non-existent or cancelled DN.

6. Batch & FEFO Traceability

Every pallet received through this platform is linked to a batch/lot number and an expiry date. These are recorded in the ERP's Batch record and flow through all downstream documents — Purchase Receipts, Stock Entries, and Delivery Notes.

FEFO — First Expired, First Out

FEFO is the picking strategy for all batch-tracked items. When a pick is initiated, the ERP selects the batch with the earliest expiry date first, regardless of receipt order. This ensures that stock closest to its use-by date is consumed before newer stock and minimizes waste.

  • Batch tracking is enforced at the item level in the ERP — items that require batches cannot be received or transferred without one.
  • Expiry dates are mandatory when a batch is first created. The system rejects receipts with missing expiry data for batch-tracked items.
  • GS1-128 encoded supplier labels auto-fill the batch number and expiry date during receiving — reducing manual entry errors.

PICK FIRST — PWA Picking Recommendation

When an operator opens the Picking tab and selects a warehouse location, the PWA displays all pallets at that location ranked by a two-key FEFO sort. The top-ranked pallet is flagged PICK FIRST in red — this is the system's recommendation for which pallet to pick next.

Priority Sort key Rule
1st Earliest batch expiry on the pallet FEFO — soonest-to-expire pallet sorts to the top. Pallets with no expiry date sort last (treated as expiry 9999-12-31).
2nd Receipt date (oldest first) FIFO tiebreaker — if two pallets share the same earliest expiry date, the one received first is recommended first.

For pallets carrying multiple items, the sort key uses the minimum expiry date across all items on that pallet. If one item expires in June and another in January of the following year, the pallet ranks as if it expires in June — ensuring the pallet is picked before any item on it becomes the oldest stock.

# Example — three pallets at Staging A, sorted by PICK FIRST algorithm
RankInternal LPEarliest ExpiryReceived
1 ← PICK FIRSTWH-20260610-A3F22026-08-152026-06-10
2WH-20260701-B9C12026-09-302026-07-01
3WH-20260628-D4E7(none)2026-06-28

Ad-hoc Picking (No DN)

If a Delivery Note has not yet been created in the ERP — for example, when a driver arrives before the paperwork is issued — operators can check NO DN YET — ALERT OFFICE in the Picking tab. This records the pick immediately without blocking the physical movement.

  • The pick is saved locally with status pending_dn and does not sync to ERP until a DN is linked.
  • The system automatically notifies warehouse managers (email/notification) that a pick is awaiting a DN reference.
  • Once a manager links the DN from the admin panel, the stock entry syncs to the ERP and the status clears.
Note: Ad-hoc picks should be the exception, not the rule. Every ad-hoc pick creates a reconciliation task for the office team. The preferred workflow is to have the DN open in the ERP before the pick begins.

Batch Naming & Collision Handling

Suppliers commonly use date-based lot codes (e.g. 20260630) that are shared across multiple item types. The ERP requires batch names to be unique per item. When a batch collision is detected, the system automatically appends the item code to the batch name:

# Supplier lot code (same for two items)
20260630
# Stored in the ERP as
20260630-ITEM-001
20260630-ITEM-002

The original supplier lot code is preserved in the batch record's Batch Reference field and on the printed pallet label — so physical traceability is not affected.