WMS Agile

Guida Funzionale Completa — Release S3 · Marzo 2026

Enterprise 4PL 11 Microservizi AI Claude + RAG 16 Lingue 17 Container 212+ API REST

Indice

Architettura del sistema §1
auth-ms
:3081 → wms_auth_db
Utenti, ruoli, JWT HS256, sessioni, tenant multi-tenancy
inventory-ms
:3082 → wms_inventory_db
Prodotti, SKU, stock levels, lotti, movimenti, UOM packaging GS1, tracking colli
warehouse-ms
:3083 → wms_warehouse_db
Zone, corsie, bin, missioni, equipment, operatori, alert, NCR, MissionPlanner
inbound-ms
:3084 → wms_inbound_db
Ordini ingresso, ricevimento, quality check, putaway tasks, webhook e-commerce
outbound-ms
:3085 → wms_outbound_db
Ordini uscita, wave planning, pick tasks, packing, spedizione carrier
report-ms
:3086 → wms_report_db
Dashboard KPI, analytics, export CSV/PDF, storico operativo
ai-ms
:3087 → —
Claude Sonnet via SSE, 20+ tool (warehouse, stock, alert), snapshot Vision, audit trail
calendar-ms
:3088 → wms_calendar_db
Calendari entità, festività 12 paesi, token API esterni, disponibilità operatori
gateway (Nginx)
:3080 → SPA frontend
Reverse proxy, routing /api/, serve SPA vanilla JS, SSE buffering off
TecnologiaComponenteVersioneUso
PHPSlim 4 + Composer8.4+Tutti i microservizi
MySQLInnoDB, utf8mb48.07 database separati
RedisCache7.xSessioni, rate limiting (predisposto)
RabbitMQEventBus3.xMessaging asincrono (predisposto)
FrontendVanilla JS / SPANo framework — API.js + DataLoader pattern
AuthJWT HS256Access token 8h, multi-tenant isolation
AIClaude Sonnet 4.6Chat SSE, function calling, Vision
Docker1 container/servizio10 container, network wms-network
Flusso ordini → missioni §2
Nota architetturale. Il sistema usa due strati paralleli: i task operativi (pick_tasks, putaway_tasks — dentro outbound-ms/inbound-ms) e le missioni warehouse (warehouse-ms). I task operativi tracciano le righe fisiche da prelevare/stoccare; le missioni tracciano l'assegnazione operatore/equipment e il routing ottimizzato.

Flusso Outbound: da ordine cliente a spedizione


Ordine clientedraft
e-commerce / EDI / manuale
Conferma
ordineconfirmed
POST /confirm
Wave
Planningallocated
WaveService — raggruppa N ordini
Pick Tasks
creatipending
1 task per riga ordine
Missione
Pickingwarehouse-ms
MissionPlanner — routing S-Shape
Pick
completatopicked
operatore scansiona + conferma
Packing
& pesaturapacking
collo + peso + dim

Speditoshipped + TRK
carrier + tracking

Flusso Inbound: da ordine fornitore a stock


Ordine fornitoredraft
manuale / webhook e-commerce
Ricevimento
fisicoreceiving
quantità + lotto + danno
Quality
Checkopzionale
pass / fail / quarantena
Putaway
Taskspending
1 task per riga ricevuta
Missione
Putawaywarehouse-ms
MissionPlanner — assegna bin
Putaway
eseguitocompleted
operatore scansiona bin

Stock
aggiornatoinventory-ms
FEFO lot, bin_code

Il bridge: Task operativi → Missioni warehouse

I pick_tasks (outbound-ms) e i putaway_tasks (inbound-ms) sono i task fisici da completare. Le missioni warehouse-ms sono l'assegnazione operatore + il routing ottimizzato. Il collegamento si crea via MissionPlanner:

1. plan-wave
Legge ordini confermati dal DB, li raggruppa per priorità SLA, crea una wave con le missioni assegnate agli operatori disponibili.
2. plan-route
Dato un set di pick lines, calcola la sequenza ottimale di bin da visitare (S-Shape, Largest Gap, ecc.) minimizzando la distanza percorsa.
3. assign-operators
Assegna automaticamente le missioni pendenti agli operatori bilanciando il carico di lavoro (workload score = missioni attive × stima minuti).

Stati degli ordini

OUTBOUND ORDER

draft
confirmed
allocated
picking
packing
shipped

MISSIONE WAREHOUSE

queued
assigned
in_progress
completed
Inbound & Ricezione §3

Ordini Inbound (ASN)

Creazione ordini di acquisto con fornitore, data attesa, righe prodotto (SKU + qty). Supporta import da EDI, CSV e webhook e-commerce.

Ricevimento fisico

Ricezione riga per riga con scansione barcode, quantità ricevuta, quantità danneggiata, numero lotto, data scadenza. Traccia chi ha ricevuto.

receiveOrder() — modale completa di ricevimento con QC per-riga: ogni riga ordine mostra quantità attesa, quantità ricevuta, esito QC (pass/fail) e note danno. Il supervisore conferma o rifiuta ogni riga singolarmente prima del putaway.

Quality Check

Ispezione opzionale con esito pass / fail / conditional. In caso di fail → ordine in quarantena. Genera automaticamente NCR (Non Conformità). Il QC per-riga integrato nella modale receiveOrder() permette di accettare parte della merce e rifiutare il resto in un'unica operazione.

Putaway Tasks

Dopo ricezione, vengono generati task di stoccaggio per ogni riga. L'operatore riceve il bin di destinazione suggerito dal sistema (FEFO-aware).

Webhook E-commerce

Endpoint pubblico compatibile con WooCommerce, Shopify, Magento. Autenticazione HMAC SHA-256. Crea automaticamente ordini inbound da nuovi ordini.

  • POST /api/inbound/webhook/ecommerce
  • Query: ?tenant_id=X&secret=Y&source=woocommerce

Resi (Returns)

Gestione resi clienti come inbound speciale. Tipo ordine "return" con motivo reso, condizione merce e destinazione (stock / quarantena / scarto).

Outbound & Spedizione §4

Ordini Outbound

Ordini di vendita con cliente, data consegna richiesta, linee (SKU + qty). Numerazione automatica OUT-YYYYMMDD-XXXX. Priorità SLA configurabile.

Wave Planning

Raggruppamento di N ordini confermati in un'unica ondata di picking. Crea automaticamente i pick_tasks per ogni riga degli ordini inclusi nella wave.

newWave() — modale di creazione wave con selezione ordini (checkbox multi-select tra gli ordini confirmed), scelta strategia di picking (zone, cluster, single) e conferma. Il sistema genera automaticamente i task e li assegna via MissionPlanner.

Picking

Completamento task di prelievo con bin sorgente, quantità prelevata, operatore. Trigger automatico: quando tutti i task della wave sono completati → ordine in "picking".

Packing

Imballaggio fisico con registrazione colli, peso lordo, dimensioni (L×W×H). Integrazione con sistema UOM packaging per calcolo automatico colli per ordine.

Spedizione

Assegnazione carrier (BRT, NCR, DHL, ecc.), generazione numero tracking TRK-XXXXXX, conferma spedizione. Notifica automatica al cliente.

SLA Monitoring

Monitoraggio deadline per ogni ordine. Alert proattivo SSE quando un ordine rischia di sforare la data di consegna. Pannello SLA nella dashboard.

Missioni & Operatori §5

Tipi di missione

TipoTriggerDescrizioneTask tipici
picking Wave outbound Prelievo prodotti da bin per ordine cliente pick (bin → staging area)
putaway Ricezione inbound Stoccaggio prodotti ricevuti nel bin corretto put (banchina → bin storage)
transfer Manuale / ripristino Spostamento prodotti tra zone/bin interni pick + put
counting Inventario periodico Conteggio fisico prodotti in un'area count (bin per bin)
replenishment Stock sotto soglia Rifornimento corsie di picking da bulk pick bulk + put picking lane
return Reso cliente Gestione resi — ispezione, stoccaggio o scarto inspect + put / scrap

Ciclo di vita di una missione

queuedassigned (operatore/equipment assegnato) → in_progress (1° task iniziato) → completed (tutti i task ✓)
Alternativo: cancelled (annullata prima del completamento)
Task: pendingin_progresscompleted (scanned_qty confermata)

Realtime SSE — Stream eventi

/api/realtime/stream

SSE (Server-Sent Events) continuo. Aggiornamento ogni 4 secondi con: missioni attive, conteggio alert per severità, stato equipment. Max 30 tick (120s), poi riconnessione automatica.

Proactive Alerts

Emessi solo quando cambiano: batteria equipment <20%, missioni in ritardo (>150% tempo stimato), stock sotto soglia riordino. Trigger email automatica (max 1 per sessione SSE).

PWA Operatori

App mobile /operator.html — 3 tab: Ricezione, Picking, Spedizione. Step-by-step task, scansione barcode, auto-refresh 30s. Dark theme ottimizzato per palmari e tablet.

Mission Planner — Algoritmi accademici §6
Implementazione basata su letteratura accademica di riferimento per il warehouse picking routing. Tutti gli algoritmi sono esposti via REST API.

Algoritmi di routing picking

S-Shape (Serpentine)

Percorre le corsie che contengono almeno un pick a serpentina. Corsia con pick = traversata completa; corsia senza pick = saltata. Ottimale per alta densità pick.

de Koster, Le & Roodbergen (2007) — European Journal of OR
Largest Gap

Per ogni corsia calcola il "gap" più ampio tra due pick consecutivi e decide se è più conveniente entrare da un'estremità o dall'altra (o attraversare). Riduce backtracking.

Roodbergen & Vis (1999) — Int. Journal of Production Research
Combined

Ibrido S-Shape + Largest Gap. Usa S-Shape per corsie centrali e Largest Gap per le corsie alle estremità del magazzino. Bilanciamento dinamico.

Gu, Goetschalckx & McGinnis (2007) — European Journal of OR
Optimal (TSP NN)

Algoritmo del Nearest Neighbor (approssimazione TSP). Per magazzini piccoli o picking molto sparsi. Complessità O(n²) — adatto fino a ~50 pick per missione.

Christofides (1976) — TSP approximation

Algoritmi di batch picking

Seed + Saving

Seleziona un ordine "seme" e aggiunge iterativamente ordini con massima sovrapposizione di bin (saving = riduzione distanza totale rispetto a prelevare separatamente).

Gibson & Sharp (1992) — Order batching procedures
Cluster Geo

Raggruppa ordini in base alla distanza geografica tra le loro pick locations. Usa centroide del cluster come punto di riferimento. Efficace per ordini multi-zona.

Clustering k-means adattato a bin coordinates
Time Window

Raggruppa ordini con deadline di consegna simile (finestra temporale). Garantisce che tutti gli ordini del batch rispettino il SLA più stringente del gruppo.

SLA-aware batching — gestione priorità urgenti

API endpoints MissionPlanner

EndpointInputOutput
POST /api/missions/plan-route lines[], algorithm, options route ottimizzata, distanza_m, estimated_min
POST /api/missions/batch-orders orders[], batch_size, method batches[], batches_count, algorithm
POST /api/missions/plan-wave warehouse_id, options{max_operators, sla_horizon_min} wave{operator_queues, stats}
POST /api/missions/assign-operators warehouse_id assignments[], applied (DB update), stats
Anagrafica Prodotti §7a

Catalogo SKU

Anagrafica prodotti con codice SKU univoco, nome, categoria, unità misura, temperatura richiesta, classe ABC, punti di riordino. Supporta attributi custom (certificazioni, allergeni, hazmat, impilabilità).

Ricerca con Debounce

searchProducts() — Campo ricerca con debounce 300ms. Filtra su SKU, nome e categoria in tempo reale aggiornando la tabella senza ricaricare la pagina.

Import CSV

Importazione prodotti in blocco da file CSV. Formato: SKU, Nome, Categoria, UdM, Punto Riordino, Classe ABC. Template scaricabile dal tab Import.

Export CSV

Esportazione completa del catalogo prodotti in CSV per elaborazioni offline con Excel o sistemi BI. Include tutti i campi e la classe ABC calcolata.

Giacenze & Stock §7b
4 tab operative: Giacenze | Lotti | Movimenti | Inventario Ciclico. Analisi ABC e Forecast ROP spostati in Report & Analisi.

Giacenze per Bin

Stock_levels tracciato per (product_id, bin_code, lot). Quantità disponibile = quantità - riservata (campo GENERATED). Evidenziazione automatica prodotti sotto ROP.

Lotti & Scadenze FEFO

Tracking completo lot number + data scadenza. FEFO: il lotto con scadenza più vicina viene selezionato automaticamente nel picking. Conformità food/pharma.

Movimenti — recordMovement()

Audit trail completo. recordMovement(): form con tipo (ingresso/uscita/trasferimento/rettifica), SKU, bin origine/destinazione, quantità, lotto, motivo. POST a /api/stock/movement.

Inventario Ciclico

Conteggio fisico delle merci. Tipi: Totale, Parziale (per zona), Spot (singolo bin). Frequenza basata su classe ABC: A=settimanale, B=mensile, C=trimestrale. Gestione varianze con causale.

Rettifiche Stock

Aggiustamenti manuali con workflow: creazione → approvazione supervisore → applicazione. Traccia motivo, operatore e chi ha approvato.

Replenishment Automatico

Rifornimento automatico zone PICK da zone BULK quando le giacenze scendono sotto soglia. Genera missioni di tipo replenishment per operatori o AGV.

Packaging UOM — Gerarchia imballo GS1 §8
Standard GS1 General Specifications v23 (2023). Supporta EAN-13, GTIN-14 (ITF-14), SSCC pallet.
📦
EA
unità base
🗃
INNER
inner box
📫
CASE
cartone
📊
LAYER
piano pallet
🎿
PALLET
EUR-1

Dimensioni & Pesi

Per ogni livello UOM: peso lordo, peso netto, lunghezza × larghezza × altezza (cm). Volume calcolato automaticamente. Usato per pianificazione spedizioni e carrier selection.

Barcode GS1

EAN-13 per unità EA, GTIN-14 (ITF-14) per case/pallet, prefisso SSCC per pallet serializzati. Lookup per barcode via GET /api/packaging/barcode/{code}.

Conversione UOM

Calcola automaticamente il fattore cumulativo da EA: es. 1 CASE = 24 INNER × 6 EA = 144 EA. Endpoint dedicato per conversioni con resto in EA.

Calcolo Pallettizzazione

Dati 1000 EA → calcola N pallet necessari, fill rate %, peso totale. Considera sia il vincolo volumetrico (120×80×144 cm) che il vincolo di peso (1000 kg pallet EUR-1).

APIDescrizione
GET /api/packaging/product/{id}Albero UOM completo con fattori di conversione cumulativi da EA
POST /api/packagingUpsert livello UOM (crea o aggiorna per tenant+product+uom_code)
GET /api/packaging/barcode/{code}Lookup prodotto da EAN-13 o GTIN-14
POST /api/packaging/convertConversione quantità tra due UOM dello stesso prodotto
POST /api/packaging/palletizeCalcolo pallet, fill rate e peso totale per qty EA
TMS — Transport Management System §9

Carrier & Autisti

Anagrafica carrier (BRT, NCR, DHL, FedEx, GLS, Bartolini). Gestione autisti con patente, telefono, disponibilità. Associazione autista ↔ carrier.

Giri di Consegna

Pianificazione giri con data, autista, carrier, note. Aggiunta colli al giro con numero tracking. Aggiornamento stato collo (consegnato, fallito, reso).

Tracking pubblico

Portale pubblico /tracking/?n=TRK-.... Ricerca per numero tracking senza login. Timeline eventi con stato, timestamp, luogo. QR code su etichetta collo.

Manifest di giro

Visualizzazione e stampa del manifest completo: tutti i colli del giro con stato, peso, destinazione. Stampa via @media print nativa.

Tracking Colli §9b

Tracciamento spedizioni end-to-end con portale pubblico e timeline eventi in tempo reale.

Portale pubblico

Pagina /tracking/?n=TRK-... accessibile senza login. Il destinatario riceve il link via email/SMS e consulta lo stato della spedizione con timeline visuale degli eventi.

Timeline eventi

Ogni collo ha una sequenza di eventi: creato, in transito, in consegna, consegnato, fallito, reso. Timestamp e luogo per ogni step. Aggiornamento automatico da webhook carrier.

QR Code & Etichette

Generazione QR code con URL tracking diretto stampato sull'etichetta del collo. Scansione rapida per verifica stato in qualsiasi punto della filiera.

Risorse & Operatori §9c

Gestione delle risorse umane e degli equipment operativi del magazzino.

Operatori

Anagrafica operatori: codice, nome, badge, ruolo, turno, device_id, telefono. Associazione a utente sistema (opzionale). Statistiche individuali: missioni completate, tempo medio, errori.

Equipment & AGV

Flotta equipment: carrelli elevatori, transpallet, AGV. Stato batteria, zona corrente, OEE. Alert automatici per manutenzione preventiva e batteria bassa.

Turni & Disponibilità

Pianificazione turni operatori integrata con calendario. Il MissionPlanner usa la disponibilità per bilanciare il carico di lavoro e assegnare missioni solo agli operatori in turno.

Performance KPI

KPI per operatore: pick rate (righe/ora), accuratezza, tempo medio missione. Classifica team con gamification opzionale. I dati alimentano il pannello Risorse nella dashboard.

Report & Analisi §9d

Dashboard KPI, analytics avanzati, export e strumenti di analisi strategica. Include Analisi ABC e Forecast ROP (precedentemente nella sezione inventario).

Dashboard KPI

KPI operativi in tempo reale: throughput giornaliero, SLA compliance %, fill rate, ordini aperti, missioni attive. Chart.js 4.4.7 con aggiornamento live via SSE. Vista manager con drill-down per zona, turno, operatore.

Analisi ABC

Classificazione prodotti secondo la curva di Pareto: A (top 20% = 80% valore), B (30% = 15% valore), C (50% = 5% valore). Calcolo automatico su base movimenti o valore. Determina le frequenze di inventario ciclico e la strategia di slotting.

Forecast ROP

Previsione del punto di riordino (Reorder Point) basata su consumo medio, lead time fornitore e safety stock. Formula: ROP = (domanda media giornaliera x lead time) + safety stock. Alert automatico quando lo stock scende sotto ROP.

Export CSV / PDF

Esportazione report in CSV per elaborazione con Excel o sistemi BI, e in PDF per documentazione. Report schedulabili con invio automatico via email a destinatari configurabili.

Analytics Storico

Storico operativo consultabile per periodo: movimenti, throughput, errori, SLA. Confronto tra periodi (mese corrente vs precedente). Grafici trend con baseline e anomalie evidenziate.

Report per Tenant

Report dedicati per ogni tenant 4PL: movimenti, SLA compliance, throughput, costi. Vista aggregata manager + drill-down per singolo cliente. Base per la fatturazione 4PL.

4PL Billing & Multi-tenant §10
Il sistema è progettato come Enterprise 4PL: un operatore logistico principale (4PL) può gestire più clienti (3PL/tenant) nello stesso magazzino fisico. Ogni tenant vede solo i propri dati.

Multi-tenancy

Ogni tabella ha tenant_id. Tutte le query filtrano per tenant. Un utente appartiene a un tenant. Nessuna cross-contaminazione dati tra tenant diversi.

Billing 4PL

Accumulo costi per tenant: handling fee, storage, spedizioni. Ciclo di fatturazione mensile. Pannello 4PL con breakdown per azienda cliente e categoria servizio.

Zone Assignment

Zone del magazzino assegnabili a più operatori logistici con percentuale di utilizzo dedicata. Un'area può essere condivisa tra più clienti (es. zona fredda condivisa).

Export & Report

Export CSV per fatturazione. Report per tenant: movimenti, SLA compliance, throughput. Pannello manager con vista aggregata + vista drill-down per singolo cliente.

Anagrafica Clienti §10b
Gestione completa dei destinatari ordini outbound con tipo cliente, SLA, priorita, corriere di default e dati di contatto. I dati cliente alimentano la logica di wave planning e spedizione.

Scheda Cliente

Codice univoco, nome, tipo (GDO, HORECA, E-commerce, Retail, Pharma, Ospedale, Distributore, Marketplace, Export), priorita, SLA ore, corriere default, P.IVA, contatto email/telefono, indirizzo spedizione.

SLA & Priorita

Lo SLA definisce le ore massime dalla conferma ordine alla spedizione. La priorita (urgente/alta/normale/bassa) influenza l'ordine di processing nelle wave di picking. Alert automatici per SLA in scadenza.

Corriere Default

Ogni cliente ha un corriere preferito. Alla creazione ordine outbound il sistema suggerisce il corriere associato. Mapping tipici: GDO→BRT, Hospital→DHL GDP, E-commerce→TNT Express.

Integrazione Ordini

Nel form ordine outbound il campo "Cliente" usa autocomplete dall'anagrafica. SLA e corriere vengono pre-compilati dal profilo cliente. Il tipo cliente determina le regole di imballaggio e documenti di trasporto.

Anagrafica Fornitori §10c
Gestione fornitori con lead time, affidabilita, associazione SKU e integrazione con ordini inbound e forecast.

Scheda Fornitore

Codice, nome, categoria merceologica (Food, Pharma, Tech, Cosmetics), lead time medio (giorni), affidabilita (0-100%), probabilita ritardo, paese di origine, contatti, P.IVA.

Lead Time & Forecast

Il lead time alimenta il calcolo del punto di riordino automatico (ROP) e le previsioni di disponibilita. Formula: ROP = domanda_media x lead_time + safety_stock.

Affidabilita

Score 0.00-1.00 basato su percentuale consegne puntuali. Usato dal simulatore per generare eventi supplier_delay. Fornitore con 0.95 = 5% probabilita ritardo su ogni ordine.

Associazione SKU

Tabella supplier_products: associa prodotti specifici a ogni fornitore con lead time personalizzato, costo unitario, quantita minima d'ordine e flag "fornitore primario".

Anagrafica Corrieri & Tariffe §10d
Gestione vettori di trasporto con tariffe, SLA, certificazioni GDP/Cold Chain e integrazione tracking.

Tariffe

Costo calcolato: Base + (Peso x €/kg). Esempio BRT Standard: €15 + €0.30/kg → 20kg = €21. Tariffe configurabili per tenant in modalita 4PL.

Certificazioni

GDP Certificato per trasporti farmaceutici (Good Distribution Practice). Cold Capable per mezzi refrigerati. Solo corrieri certificati proposti per prodotti a temperatura controllata.

Tracking & API

URL tracking con template {tracking_number} per link automatico al cliente. Endpoint API per integrazioni (booking, label printing, proof of delivery).

Mapping Clienti

Ogni cliente ha un corriere default. Il sistema propone automaticamente il corriere compatibile con tipo merce (cold chain, hazmat) e tipo servizio richiesto dal cliente.

Vincoli Stoccaggio & Cold Chain §10e
Sistema di vincoli a tre livelli (prodotto → zona → bin) per gestire restrizioni di temperatura, categorie prodotto, materiali pericolosi e regole FIFO/FEFO.

Vincoli Prodotto

Tipo stoccaggio (ambient/cool/refrigerated/frozen/deep_frozen/hazmat), range temperatura accettabile, flag hazmat con classe UN, FEFO/FIFO obbligatorio, handling (guanti, mascherina, doppio operatore).

Vincoli Zona

Ambiente (8 tipi), range temperatura monitorato da sensori IoT, hazmat abilitata, tipo operatore (dedicata/condivisa/mista). Le zone a temperatura controllata mostrano gauge in tempo reale.

Vincoli Bin (Locazione)

SKU Dedicato: assegna un bin esclusivamente a un prodotto (es. "solo cioccolatini Ferrero in A1"). Mix lotti on/off, FIFO/FEFO enforced, tipo accesso (forklift, AGV, manuale), dimensioni fisiche e portata max.

Regole Putaway

Regole automatiche: criteri di match (categoria, prefisso SKU, richiede freddo, classe ABC, azienda 3PL) → destinazione (zona preferita, strategia: nearest_empty, same_sku, zone_affinity, abc_velocity).

Cold Chain Compliance

Validazione automatica durante putaway: prodotto refrigerato non accettato in zona ambient. Sensori IoT monitorano temperatura e generano alert/NCR per deviazioni. Tracciabilita GDP completa.

AI Chat & Strumenti §11
Claude Sonnet 4.6 integrato via SSE streaming. L'AI ha accesso diretto al sistema tramite function calling: può interrogare stock, missioni, alert e rispondere in linguaggio naturale.

Chat SSE

Chat conversazionale con streaming in tempo reale. L'AI risponde token per token. Contesto multi-turn: ricorda la conversazione precedente nella stessa sessione.

20+ Tool

Strumenti: cerca_prodotto, verifica_stock, lista_missioni, stato_alert, piano_wave, previsione_stock, FEFO_check, lista_equipment, analisi_KPI, genera_report...

Vision & Snapshot

Screenshot automatici del cockpit simulator su eventi critici. L'AI analizza le immagini in chat (Claude Vision). Fino a 200 snapshot per sessione con audit trail.

16 Lingue

L'interfaccia supporta: IT, EN, DE, ES, PT, FR, ZH, RU, JA, KO, AR (RTL), NL, PL, TR, UK, SV. Cambio lingua in tempo reale con data-i18n attribute system.

Simulatore WMS — Release S2 §12
Scenario "Logitech 4PL Group": 5 facility, 60 SKU, 20 clienti, 15 fornitori, 4 carrier, 3 tenant 4PL. Velocità 1×–50×. Web Worker: gira in background indipendente dalla tab Chrome.

Engine velocità variabile

Da 1× (real time) a 50× (1 giorno simulato in ~30 minuti). Gira in Web Worker → nessun throttling Chrome in background tab.

Audit Trail (REC)

SimRecorder event-driven: 1 frame per ogni evento engine. Slider replay per navigare nella storia. Sparklines KPI, istogramma frequenza eventi, log clickabile.

10 Tipi evento S2

Resi, guasti equipment, flash sale, blocchi doganali, quality hold, pickup carrier, verifica SLA, ciclo billing, inventario, ritardo fornitore. Layer di complessità su S1.

KPI Dashboard S2

SLA compliance %, OEE equipment %, billing 4PL €, guasti attivi, resi, carrier. Gauge temperatura PHARM-A (15-25°C) e PHARM-C (2-8°C GDP). 5 tab facility.

AI Summary

Invia al Claude la timeline campionata + istogramma eventi. L'AI produce un'analisi narrativa della sessione di simulazione. Attivabile dal pannello Replay.

Planimetria SVG

Mappa interattiva del magazzino: zone colorate per tipo, bin con stato stock in tempo reale, equipment in movimento, missioni attive evidenziate.

Ruoli & Permessi §13
Funzionalità 👑 Admin 🔵 Supervisor 🟢 Operator 👁 Viewer
Dashboard & KPI
Missioni (visualizza)
Missioni (crea/assegna)
Inbound & Ricezione
Outbound & Spedizione
Inventario & Stock
Packaging UOMread
Magazzino (zone/bin)
NCR Conformitàcrea
TMS & Carrier
4PL Billing
Calendario
Report & Analytics
Gestione Utenti
Notifiche & Config
AI Chat
Simulatore
PWA Mobile Operatore
Mission Planner API
accesso completo  ·  read/crea accesso parziale  ·  nessun accesso
RAG Knowledge Base §14

Il sistema RAG (Retrieval-Augmented Generation) arricchisce l'AI con conoscenza specifica del tuo magazzino. Usa Voyage AI per generare embeddings vettoriali (512 dimensioni) e Qdrant come vector store per la ricerca semantica.

Auto-Learn Operativo

Ogni notte alle 03:00 UTC un cron job genera automaticamente 5 snapshot dai dati live del database e li indicizza in Qdrant:

wms-live-stock

Top 15 prodotti per quantità + prodotti sotto punto di riordino con dettaglio SKU, nome, quantità e soglia.

wms-live-alerts

Alert attivi per severity (emergency/critical/warning/info) + alert risolti nelle ultime 48h per contesto storico.

wms-live-warehouse

Struttura magazzino: zone con conteggio bin e movimenti, operatori attivi per turno, missioni in corso.

wms-live-billing

Stato fatturazione 4PL: fatture per status (draft/issued/paid/cancelled) con totali in EUR.

wms-live-ncr

Non conformità aperte: tipo, severity, zona, data segnalazione e stato workflow.

Indicizzazione Manuale

Dall'interfaccia AI / RAG (admin) puoi indicizzare documenti personalizzati: SOP, procedure interne, manuali equipment. Il sistema chunka i testi in blocchi di ~250 parole con overlap di 40 e genera embeddings per ogni chunk. I documenti vengono upsertati (idempotenti): reindicizzando lo stesso doc_id si sovrascrive la versione precedente.

WmsDocsSeeder

Un click su "Indicizza Documentazione WMS" lancia il seeder che indicizza 15 moduli predefiniti del sistema (dashboard, inbound, outbound, AI, simulatore, etc.). Richiede ~30 secondi per il rate limiting Voyage AI (3 RPM free tier, 22s tra batch).

Architettura: Voyage AI (voyage-3-lite, 512D) → Qdrant (cosine similarity, threshold 0.35) → Claude system prompt injection. Ogni tenant ha la propria collection isolata: wms_kb_{tenant_id}.
NCR & Conformità §15

Il modulo NCR (Non-Conformity Report) gestisce le segnalazioni di qualità con un workflow strutturato dalla creazione alla risoluzione.

Severity

4 livelli: info (nota), warning (attenzione), critical (blocca bin), blocking (blocca zona intera). La severity determina la priorità di gestione e gli alert automatici.

Workflow

openinvestigatingresolved / escalated. Ogni cambio stato viene registrato con timestamp e operatore. Le NCR blocking impediscono il prelievo dalla zona fino a risoluzione.

Rettifiche Stock

Alla chiusura di una NCR con danno/perdita, il sistema propone automaticamente una rettifica stock (stock adjustment) con la causale collegata alla NCR. La rettifica aggiorna i livelli di stock e genera un movimento di inventario tracciato.

Integrazione QC

Le NCR possono essere generate automaticamente durante il quality check in fase di ricevimento (inbound). Se un prodotto non supera il controllo, viene creata una NCR e il prodotto va in zona quarantena.

Inventario Ciclico §16

L'inventario ciclico permette di verificare lo stock in modo continuativo senza fermare le operazioni, garantendo l'accuratezza dei dati senza un inventario fisico completo.

Modalità di Conteggio

Conteggio Totale

Conta tutti i bin di tutte le zone del magazzino. Genera un piano di conteggio che assegna automaticamente i bin agli operatori disponibili. Tipicamente programmato una volta al mese o al trimestre.

Per Zona / Area

Conta solo i bin di una zona specifica (es. solo zona picking, solo zona farmaceutica GDP). Utile per zone ad alta rotazione che richiedono verifiche più frequenti.

Conteggio Rapido

Conteggio singolo bin o SKU specifico. L'operatore scansiona il bin, conta i pezzi e il sistema registra immediatamente la variazione. Ideale per verifiche spot post-picking.

Calendario & Periodicità

Il calendario mostra la copertura degli inventari: quali zone sono state contate e quando. Frequenze configurabili per zona:

Registrazione Variazioni

Ogni conteggio genera un record con: operatore, data/ora, quantità attesa (sistema) vs quantità rilevata (conteggio). Le discrepanze vengono codificate automaticamente e generano:

Calendario & Disponibilità §17

Il microservizio calendar-ms gestisce festività multi-country, pianificazione eventi e calcolo giorni lavorativi.

Festività Multi-Country

Database festività per Italia, Germania, Francia, Spagna, UK e altri 10+ paesi. Calcolo automatico dei giorni lavorativi per le date di consegna previste, tenendo conto del paese del destinatario.

Vista Calendario

Vista giornaliera, settimanale e mensile degli eventi operativi: ricevimenti programmati, spedizioni, inventari ciclici, manutenzioni equipment, turni operatori.

Pianificazione Capacità

Il calendario si incrocia con gli ordini inbound previsti per mostrare la capacità di ricezione disponibile per ogni giorno. Utile per bilanciare il carico di lavoro tra i turni.

Notifiche & Alert SSE §18

Il sistema di notifiche usa Server-Sent Events (SSE) per push real-time verso il browser. Ogni alert ha una severity e genera notifiche su più canali.

SSE Real-time

Connessione persistente dal browser verso /api/realtime. Gli eventi arrivano istantaneamente: stock basso, ordine in ritardo, equipment guasto, temperatura fuori range. La topbar mostra il badge con il conteggio notifiche non lette.

Severity

4 livelli: info, warning, critical, emergency. Gli alert critical/emergency generano toast automatici anche se l'utente è in un'altra sezione.

Canali

In-app (sempre attivo) + Email (configurabile per severity) + SMS/Webhook (per emergency, via NotificationService). Ogni canale è configurabile per utente e per severity.

Gestione

Dalla sezione Magazzino → Alert Sistema: filtra per severity, risolvi alert, ignora. Gli alert risolti restano nello storico per audit. Le statistiche alert alimentano i KPI del dashboard.

Planimetria SVG Interattiva §19

La mappa SVG del magazzino offre una visualizzazione real-time della struttura fisica con zone colorate, occupazione bin e movimenti AGV.

Zone Colorate

Ogni zona è rappresentata con un colore specifico per tipo: receiving (verde), storage (blu), picking (arancione), packing (viola), shipping (rosso), quarantine (giallo). Click sulla zona per il dettaglio bin.

Heatmap Occupazione

Visualizzazione gradiente dell'occupazione: i bin pieni sono rossi, quelli vuoti verdi. La heatmap si aggiorna in tempo reale con ogni movimento di stock e aiuta a identificare colli di bottiglia.

Tracking AGV

I robot AGV appaiono sulla mappa con posizione e stato in tempo reale (via MQTT Mosquitto). Le linee tratteggiate mostrano il percorso della missione assegnata.

Export

La planimetria può essere esportata in PDF o PNG per documentazione, audit o analisi offline. Include la legenda delle zone e le statistiche di occupazione correnti.

WCS & Robotics MQTT §20

Il bridge WCS (Warehouse Control System) collega WMS Agile ai sistemi automatici tramite il protocollo MQTT (Mosquitto). Il microservizio wcs-ms traduce le missioni WMS in comandi robot e viceversa.

AGV Management

Gestione flotta robot: stato batteria, zona corrente, missione assegnata, OEE (Overall Equipment Effectiveness). Il sistema seleziona automaticamente il robot più vicino con batteria sufficiente per ogni nuova missione.

MQTT Topics

Comunicazione publish/subscribe: wms/agv/{id}/status (stato robot), wms/agv/{id}/mission (assegnazione missione), wms/agv/{id}/position (posizione per mappa SVG). QoS 1 garantisce la consegna.

Automazioni

Sorter automatici, nastri trasportatori, sistemi pick-to-light: il WCS bridge invia comandi e riceve conferme. Supporta protocolli custom via adapter configurabili per ogni tipo di equipment.

OEE & Manutenzione

KPI per ogni equipment: disponibilità, performance, qualità. Il sistema segnala automaticamente quando la batteria scende sotto soglia o quando è necessaria manutenzione preventiva basata sulle ore di funzionamento.

PWA Mobile Operatore §21

L'app mobile operatore è una Progressive Web App (PWA) installabile su qualsiasi smartphone o tablet, ottimizzata per l'uso in magazzino con una mano.

operator.html

Portale completo con 5 tab: Picking (lista missioni assegnate), Ricezione (conferma pezzi ricevuti), Scan (scanner barcode con riconoscimento automatico bin vs SKU), Stock (verifica giacenze), Missioni (storico completato). KPI personali in header.

mobile.html

Interfaccia ultraleggera (118 righe) per terminali RF da magazzino (Zebra, Honeywell): 4 tab essenziali (Tasks, Scan, Mission, Stock). Ottimizzata per schermi piccoli e connessioni lente. Simulazione livello batteria.

Service Worker

Cache-first strategy per la shell dell'app: funziona anche offline per le schermate principali. Le chiamate API usano network-only e sincronizzano quando la connessione torna disponibile.

Installazione

Su Android: Chrome → menù → "Aggiungi a Home". Su iOS: Safari → Condividi → "Aggiungi a Home". L'app si comporta come un'app nativa con icona, splash screen e navigazione fullscreen.

WMS Agile — Guida Funzionale · Release S3 · Marzo 2026 · ← Torna all'app · Simulatore → · Landing →