Everything you need to understand and show, explained simply, with real examples from the demo database (12 warehouses, 222 products, 36 movement orders, 82 lots — Efferalgan, Doliprane, Coca-Cola, FACOM tool case, movement order P100-2026-00009 and its backorder…).
WMS = Warehouse Management System. It is the module that knows, at any moment, what is in stock, where (warehouse, location), in what quantity, in which lot and until what date, and at what cost — and that traces every receipt, issue, transfer, count and preparation in a journal that is never rewritten. It is the foundation: the procurement module (PMS) brings goods into it, the customer orders module (OMS) hands it movement orders to prepare, the SRM gives it its entry prices.
EDIT_PRODUCTS (product editing), EDIT_RECEIPTS / EDIT_ISSUES (receipts / issues), EDIT_WAREHOUSES (warehouses), EDIT_INVENTORIES (stock counts), EDIT_REPORTS (reports and exports), VIEW_ALL_MOVEMENT_ORDERS / EDIT_ALL_MOVEMENT_ORDERS (all movement orders) or their "my projects only" variants, EDIT_MOVEMENT_ORDER_STATUS, PLAN_MOVEMENT_ORDERS (waves and pickers), PRINT_MOVEMENT_ORDERS, LOT_QUALITY_CONTROL and LOT_REINTEGRATION (lots), WAREHOUSES_RESTRICTED (warehouse scope), RESOLVE_OFFLINE_HOLDS (offline holds). The permissions screen shows the full label of each.
The terms in the order you will meet them, each illustrated with real data from the demo database (collected on 05/09/2026 — the database is shared, another visitor may have changed it).
DLC-<date>-<reference> lot.
82 lots, all released: DLC-2026-11-05-EFFERALGAN-1G (22 units), DLC-2026-04-10-EFFERALGAN-1G (1 unit, expired).BM-YYYY-NNNNN, drawn from an atomic sequence per year; movement orders taken over from the previous version keep their P<project>-YYYY-NNNNN number.
36 movement orders: P110-2026-00011 (to process, Nice), P100-2026-00009 (in progress, Paris), P50-2025-00011 (partially delivered, Lyon), P110-2025-00036 (delivered, Nice).-R1, -R2-R1-R1.
P100-2026-00009 (Kaeser: 25 requested, 10 served) → P100-2026-00009-R1 (15 + 1).From top to bottom: the organisation, its projects, their warehouses, zones and locations, and finally the stock line. The product and the lot are the two threads that run through everything.
In teaching order: the product and its stock, the physical layout, what comes in and goes out, movement orders, counts, lots, then the cross-cutting screens. For each screen: what it is for, how it works, the subtlety to mention, and the demo data to lean on.
What it is for: finding a product (reference, label, barcode or scan), seeing its total stock and its lines, its thresholds, its shortage status, and entering a simple receipt or issue.
How it works:
With the demo data: EFFERALGAN-1G — 23 units at warehouse [MEDICAMENTS] - P8, two lines: 1 unit in Armoire Pharmacie (lot of 10/04/2026, expired) and 22 in Réserve Médicale (lot of 05/11/2026). DOLIPRANE 1G — 81 units, 4 lines across 2 warehouses, 4 expiry dates, 2 different costs.
What it is for: describing the warehouse as it is — warehouses, zones, locations — and knowing which bin is overflowing and which is free.
How it works:
With the demo data: 61 locations, no quota set. Set one live on Réserve Froide ([ALIMENTATION] - P2) for the Coca-Cola (quota 20, stock 12 → 60%): the gauge appears immediately. Cross-Dock exists in several warehouses.
What it is for: receiving a purchase order, and reviewing everything that came in or went out, with who, when, why.
How it works:
With the demo data: 861 movements, all receipts from the takeover of 19/08/2026. Issue 2 FACOM tool cases from the record, then correct it: both lines appear in the journal, linked.
What it is for: moving stock from one warehouse to another, or from one location to another within the same warehouse, without going through an issue and a receipt.
With the demo data: no transfer in the database; transfer 5 Doliprane from PRINCIPAL's Cross-Dock to Allée A, then show the Transfer list.
A project (site) carries a number, a project manager, a count frequency, and its warehouses (one warehouse = one project). It opens, closes, duplicates; it cannot be deleted while a warehouse is attached to it. Demo database: 7 open projects, P20 to P110.
Three tabs. Info: project (required — it is what allows issues to be valued per site), warehouse, customer / partner, type of work, delivery address, collection date. Products: per line "Stock / Reserved / Available", alert if the available quantity does not cover the request. Summary. The movement order is born as a draft ("To process"), then gets confirmed.
In the complete logistics flow, the movement order is not always entered by hand: the validation of a customer order from the portal (OMS module) generates one automatically, in the same transaction as the validation. Its naming is that of every movement order — a BM-YYYY-NNNNN number drawn from the same sequence —, with the customer's record, the catalogue's project and warehouse, the address and requested date taken over from the order, and an OMS CMD-YYYY-NNNNN note recalling the originating order; the "OMS" column of Movement order management shows that order number. It is prepared, delivered and closed exactly like an entered movement order (see the OMS guide).
Confirmation reserves the stock actually present and never blocks on a shortage; the movement order moves to "To process", the subscribers to the "movement order to process" alert and the planned picker are notified.
Schedule a date and assign a picker, in bulk; "unscheduled" and "no picker" counters. Scheduling is not claiming: the claim happens when the movement order is opened.
From F1: Mark as delivered opens "Collected by" (mandatory) → Delivered / Partially delivered, without writing stock. Then Close.
Movement order management: the full table (number, OMS, issuer, town, date, "Claimed by", status), filters by project, status, period; duplicate; Record return from site on a delivered order; deletion refused for a backorder or an order that produced one. Shipments: group prepared orders into a shipment EXP-YYYY-NNNNN (Draft → Ready → Departed); on departure, a box unticked by default offers to move the attached orders to Delivered, "Collected by" = shipment number; printable labels. Documents (print permission): Preparation sheet, Shipping sheet, Pallet document.
With the demo data: 36 movement orders. To process: P110-2026-00011 (Nice, Samsung S9 × 12, Huawei Watch × 5). In progress: P100-2026-00009 (Paris, Kaeser 25 requested / 10 served, Sigma block 15/15, Excellence 5/4) and its backorder P100-2026-00009-R1; P20-2025-00005 (Pessac, fully served: to deliver then close). Partially delivered: P50-2025-00011 (Lyon, collected by M. Pierre MORVAN - DSI Rhône on 10/10/2025). Delivered: P110-2025-00036 (Nice, Mme Lucia FERRARI, 13/09/2025). No grouped shipment yet.
What it is for: counting without shutting the warehouse for two days: a campaign per warehouse or per zone, variances computed by the server, a traced adjustment.
With the demo data: T1 - 2026 ([ALIMENTATION], closed, 42 lines counted, variances visible in analysis) and T2 - 2026 ([LOCATION] - P7, open, nothing counted: scan two products to show the variance appear).
What it is for: knowing where each lot came from, where it is, in what state, and where it went — the traceability an auditor or a recall demands.
With the demo data: 82 lots, all released (dated stock taken over was given a DLC-<date>-<reference> lot). Move DLC-2026-04-10-EFFERALGAN-1G (1 unit, expired) to "Rejected" and show that it is no longer offered for issue.
Three statuses: Expired, Approaching (organisation threshold, 30 days in the demo), Fine; filters by status and warehouse, sorts, an Issue button that opens the withdrawal, Excel export. Every morning, between 7 and 8 a.m. in the organisation's time zone, subscribers receive a single digest of approaching or expired lots (one line per product and expiry date); in-app notifications remain per lot, hence clickable. Demo database: 33 expired lots, 7 approaching — the menu badge is red.
"Stock data export": the stock snapshot (filters by quality status and shortage status, expired products included or not, columns of your choice), the receipts and issues over a period. CSV or XLSX, generated in the application from the data served by the server. Permission EDIT_REPORTS.
The principle: take online (exclusive claim and download), execute offline, confirm online. In the field, every entry — receipt, issue, transfer, count line, creation of a lot, a location, a product or a partner — is put in a queue on the device, isolated per account, with a local projected stock ("stock known as of…", "last local entry at…"). The FEFO issue is computed offline; a receipt or a movement order claimed before leaving is executed offline and confirmed on return.
The screen: four tabs — To send (the device's queue), For the team (the entries the server could not apply: insufficient stock, product archived in the meantime… they are held and visible to the whole team, never lost, never forced), Conflicts, History. Settling a hold (apply, convert to a count, abandon with a reason) requires the "Resolve offline holds" permission. Nothing is invisible to the team.
What stays online: confirming a movement order, validating a customer order, anything that commits a third party. The old "offline mode" in the settings becomes "Local stock, no account": a browsing cache, not deferred entry.
The WMS's core mechanism is the path of a movement order down to the stock lines. Four actions, three worked examples drawn from the demo database.
Outbound order of project P100, warehouse [STOCK PIÈCES] - P10, delivery to Paris. Three lines: KAESER-REFROIDISSEUR-AIR 25 requested, KAESER-BLOC-COMMANDE-SIGMA-2 15, EXCELLENCE 5.
-R2, never -R1-R1.Figures to give: "3 lines, 1 preparation session, 3 movements, 1 backorder, 0 manual calculation".
At PRINCIPAL, the Doliprane has two lines: lot of 30/09/2026, 10 units at Cross-Dock; lot of 07/12/2026, 43 units in Allée A. Issue of 15 units:
Order of project P20, warehouse [ALIMENTATION] - P2, delivery to Pessac: Saint-Émilion 8/8, Badoit 12/12, burger buns 3/3 — fully served, still "In progress".
Nearest expiry date first then, at equal expiry or without one, largest quantity first
"Usable" scope: lines without a lot, or whose lot is Released. To check and Rejected are excluded from issues, never from transfers. A lot specified by the user restricts the plan to that lot. What is not covered is refused, never truncated.
The same computation serves availability (confirming a movement order) and allocation (preparation): same scope, same answer.
| Situation | Candidate lines | Order retained | Result |
|---|---|---|---|
| Doliprane, PRINCIPAL, issue of 15 | 30/09/2026 × 10 · 07/12/2026 × 43 | ascending expiry date | 10 + 5 |
| Doliprane, PRINCIPAL, 30/09 lot "To check", issue of 15 | 07/12/2026 × 43 only | blocked lot excluded | 15 from the 07/12 |
| FACOM tool case (no lot), issue of 20 | Rack Accessoires 2 × 87 · Rack Accessoires 1 × 52 · Cross-Dock × 2 | largest quantity | 20 from Rack Accessoires 2 |
| Efferalgan, 05/11 lot explicitly requested, issue of 30 | 05/11 lot × 22 | imposed lot | refusal: 22 < 30, no top-up from another lot |
| Transfer of the Efferalgan 10/04 lot (rejected) to a "Scrap" location | — | transfer allowed | the status travels with the lot |
| Movement order: 20 requested, 8 available | — | partial preparation | 8 served, Partially prepared, backorder 12 |
The WMS is the foundation: the other modules write to it through movements or read it — never the other way round. The procurement module never writes stock itself; the customer orders module creates movement orders, it does not prepare.
| Step | Module | What the WMS does | Demo example |
|---|---|---|---|
| Receipt of a purchase order | PMS → WMS | One receipt per line and per lot, at the line price → weighted average cost; shortage status recomputed. | CF-2026-001 (1664, Thé Vert) to receive |
| Thresholds and shortages | WMS → PMS | Holds the product × warehouse thresholds and serves the shortage board to the procurement module. | Efferalgan: limits 12 / 15 |
| Validated customer order | OMS → WMS | An outbound movement order is created in the same transaction as the validation, on the catalogue's project and warehouse; "OMS" column in Movement order management. | "alimentation" catalogue (OMS guide) |
| Negotiated price | SRM → WMS | The net price of the purchase order line becomes the entry cost; the invoice never revalues stock. | Doliprane: two costs, two purchasing histories |
| Quality control | Quality ↔ WMS | Lot required on receipt of a controlled product; inspection = quarantine; the verdict releases or rejects. | Efferalgan 10/04 lot moved to Rejected |
| Alerts | WMS → Notifications | Shortages (within minutes), expiries (daily digest), movement orders to process, offline holds; deduplicated by episode. | Red badge of Expiry monitoring |
| Traceability | WMS → Audit | Every write and every refusal logged, AI assistant included. | Audit log after the demo |
| Training (schools) | Training → WMS | One exercise warehouse per session, deletable in bulk — outside the scope of this guide. | — |
From setup to daily operation. A small customer in a hurry only does steps 1, 4, 5 and 7.
Menu WMS → Product list, search for Efferalgan. Show the two lines: 1 unit in Armoire Pharmacie (lot of 10/04/2026, expired) and 22 in Réserve Médicale (lot of 05/11/2026); the total 23 is nothing but the sum. Show the padlocked "perishable" and "quality control" boxes. Then Doliprane 1 g: 4 lines, 2 warehouses, 2 costs.
Menu WMS → Warehouses → Locations, warehouse [ALIMENTATION] - P2. Search for the Coca-Cola: it is in Zone Alimentaire and Réserve Froide. On Réserve Froide, Assign a product → Coca-Cola, quota 20: the gauge goes to 60%. Sort "fullest first".
Menu WMS → Projects and movement orders → Process a movement order. In F1, show the availability indicator and the holder's name when an order is held. Open P110-2026-00011 (Nice): claim. F3: the products grouped by location. F5: on SAMSUNG-S9-64, prepare 8 out of 12; complete the other lines. F6: confirm → Partially prepared and the backorder P110-2026-00011-R1 appears in the list.
From F1, Mark as delivered on P20-2025-00005 (Pessac, fully served): the "Collected by" dialog is mandatory. Then Movement order management: the "Claimed by" column, the OMS column, and Record return from site on this order: 2 packs of Badoit → the order goes back to "Partially delivered", a receipt appears in the journal.
Menu WMS → Stock counts → List counts. Open T2 - 2026 ([LOCATION] - P7, open): scan or enter two products with a quantity different from the system, then "Count analysis": system quantity, actual, variance, "variances first" sort. Show Adjust to actual on one line (a movement is created) and the full-validation warning; open the closed T1 - 2026 for the history; finish with "Cycle counting".
The red badge in the menu: Expiry monitoring, "Expired" filter, Issue button on the Efferalgan 10/04 lot. Then Lots → Lot tracking: indicators and tied-up value. Finally, ADMIN section, Audit log: the preparation from step 3 is there, with your name, the time and the channel.
No, never: the database itself refuses it. An entry made offline that the server cannot apply is neither forced nor lost: it is held, visible to the whole team, and settled by someone who has the permission.
Because preparing and delivering are two distinct actions. Preparation writes the stock and computes Prepared or Partially prepared; delivery is a manual action that requires "Collected by" and writes no stock. That gives a named proof of handover for every order.
The second sees the first one's name and must explicitly choose to take over the order; the takeover is traced. There is no automatic expiry of the claim: it is a human choice, never a timer that decides.
Yes, by an offsetting movement: the original stays in the journal, the correction is linked to it, the stock is right. A movement is never edited or deleted.
On the lot, exclusively. A perishable product requires a lot on receipt; dated stock taken over from the previous version was given a DLC-<date>-<reference> lot so that the rule holds everywhere.
No: the lot number is unique within the organisation, and a lot belongs to a single product. That is what makes a lot recall unambiguous.
It cannot be issued (except as an "issue for control", under a dedicated permission), but it can be received and transferred: you can move it to a scrap or control zone without releasing it. Its status travels with it.
No. The quota is a storage guide, not a lock: the overflow shows on the gauge, the receipt is not blocked. The gauge is an average of per-product rates, not a sum of units.
No: the shipment writes no movement. On departure, on explicit request (box unticked by default), it can move the prepared orders to Delivered, with "Collected by" = shipment number. The stock, for its part, was written at preparation.
Yes (see §4.10): a per-account queue on the device, local projected stock, FEFO issue offline, claimed receipt and movement order executed offline, and above all a server-side hold of any inapplicable entry, visible to the whole team — nothing is lost, nothing is forced. Anything that commits a third party (confirming a movement order, validating a customer order) stays online.