Quando conviene un gestionale di magazzino su misura e quanto costa?

Il problema lo riconosci dal martedì mattina. Il cliente telefona per un ordine urgente, il gestionale dice che a magazzino ci sono 14 pezzi, il magazziniere ne trova 9 e il resto è "da qualche parte nel corridoio C". Alla fine si spedisce a metà e si perde mezza giornata a capire dove sono finiti gli altri cinque.
Questa guida ti dice quando un gestionale di magazzino su misura conviene davvero, cosa deve fare per non diventare l'ennesimo programma che nessuno usa, quanto costa e in quanti mesi si ripaga. Un gestionale di magazzino su misura conviene quando il tuo modo di muovere la merce (ubicazioni, lotti, kit, conto lavoro) è la parte che ti distingue dai concorrenti e i pacchetti ti obbligano a lavorarci intorno: per una PMI costa di solito tra 25.000 e 90.000 euro a seconda del perimetro, si costruisce in 90 giorni a pezzi utilizzabili e si ripaga in 12-24 mesi se parte da un problema misurato.
Troverai i criteri di scelta, i numeri, il modello dati che regge un magazzino vero (con codice), le trappole dell'inventario e dei lettori di codici a barre, e il piano per partire senza fermare le spedizioni.
Quando serve un gestionale di magazzino su misura e quando basta un pacchetto?
Un pacchetto basta quando il tuo magazzino lavora come quello di tutti: carico, scarico, inventario annuale, una o due ubicazioni. Il su misura serve quando una regola tua, che il pacchetto non sa esprimere, decide quanto guadagni o quanto perdi.
Non è una questione di orgoglio e non è una questione di moda. È una questione di dove va il lavoro. Con un pacchetto adatti l'azienda al programma. Con il su misura adatti il programma all'azienda. Il primo costa meno all'inizio, il secondo costa meno quando le persone lo usano ogni giorno per otto ore.
Ecco la tabella con cui comincio la prima conversazione con un imprenditore:
| Situazione | Pacchetto | Su misura |
|---|---|---|
| Un deposito, articoli semplici, pochi movimenti | Quasi sempre sufficiente | Eccessivo |
| Lotti con scadenza e rintracciabilità obbligatoria | Esistono moduli, costano e si piegano male | Conviene se il flusso è particolare |
| Kit e distinte base che cambiano per cliente | Rigido: ogni variante è una customizzazione | Conviene |
| Merce in conto lavoro presso terzisti | Spesso gestita con trucchi (depositi finti) | Conviene |
| Ubicazioni miste: scaffali, bancali, vetrine, furgoni | Dipende dal prodotto | Conviene se le regole di prelievo sono tue |
| Più canali di vendita con una sola giacenza | Connettori generici, ritardi di ore | Conviene con coda e prenotazioni |
| Magazzino che è la tua offerta (logistica per conto terzi) | Hai gli stessi strumenti dei concorrenti | Quasi obbligato |
Se ti riconosci nelle prime due righe, chiudi questa pagina e compra un pacchetto. Lo dico sul serio: un lavoro su misura speso dove non serve è il modo più comune di buttare 40.000 euro. Se invece ti riconosci in tre o più righe della seconda metà, continua a leggere.
Per un confronto più largo, non solo di magazzino, c'è la guida su gestionale pacchettizzato o su misura e quella sui costi di un gestionale su misura in generale. Qui scendiamo nel dettaglio del magazzino.
Quali sono i segnali che il magazzino ti sta costando più di quanto pensi?
Il segnale più affidabile è la distanza tra la giacenza a sistema e quella trovata contando: se supera il 3-5% sul valore, stai pagando errori in spedizioni mancate, scorte di sicurezza gonfiate e ore di ricerca. Gli altri segnali si vedono in ufficio prima che in magazzino.
Questi sono i sei che controllo nella prima settimana:
- Il file Excel parallelo. Se il magazziniere tiene un foglio "vero" accanto al gestionale, il gestionale non è la fonte di verità.
- Gli inventari che non tornano. A fine anno la differenza viene "sistemata" con una rettifica. Nessuno sa a cosa fosse dovuta.
- Le spedizioni parziali per errore di giacenza. Il sistema prometteva merce che non c'era.
- Il tempo per trovare un articolo. Se per ritrovare un pezzo serve chiedere a una persona precisa, quella persona è il tuo vero gestionale e va in ferie ad agosto.
- Le scorte morte. Articoli fermi da più di dodici mesi che nessuno ha mai deciso di smaltire.
- I resi gestiti a voce. La merce rientra, nessuno la registra, il cliente è rimborsato e il pezzo sparisce.
Un conto veloce, per dare un ordine di grandezza. Un magazzino con 1,5 milioni di euro di scorte e il 4% di errore di giacenza ha 60.000 euro di valore "sbagliato" a sistema. Il costo vero non è quel valore, che in parte rientra. È il capitale fermo in scorte di sicurezza messe per difendersi dall'incertezza: di solito un 10-15% di scorte in più del necessario, cioè 150.000-225.000 euro che potrebbero lavorare altrove. A un costo del denaro del 6% sono 9.000-13.500 euro l'anno solo di interessi, senza contare spazio e obsolescenza.
Se questi conti ti suonano familiari, la strada è la stessa che descrivo in sostituire Excel con un gestionale, con in più la parte fisica: i movimenti della merce.
Cosa deve saper fare un gestionale di magazzino fatto bene?
Un gestionale di magazzino fatto bene sa dire, in qualsiasi momento, quanta merce c'è, dove sta, a chi è promessa e quando arriva altra merce: quattro risposte, da una sola fonte. Tutto il resto, i report, i grafici, le app, sta sopra queste quattro risposte.
Le funzioni minime sono poche, e conviene scriverle prima di parlare di tecnologia:
- Anagrafica articoli con codice interno, codici dei fornitori e dei clienti, unità di misura e fattori di conversione (pezzi, confezioni, bancali).
- Ubicazioni gerarchiche: deposito, zona, corridoio, scaffale, ripiano, posizione.
- Movimenti di carico, prelievo, trasferimento, reso, rettifica, ciascuno con autore, ora e motivo.
- Lotti e scadenze, dove servono, con la regola di prelievo (il più vecchio prima, il più vicino alla scadenza prima).
- Prenotazioni: la merce promessa a un ordine, che non si può promettere due volte.
- Inventario continuo, non solo quello di fine anno.
- Integrazioni con contabilità, e-commerce e corrieri.
- Tracciabilità: chi ha mosso cosa, quando, e perché.
Sono otto voci. Non c'è l'intelligenza artificiale, non c'è la realtà aumentata, non c'è il robot. Quando un fornitore ti presenta un elenco da quaranta funzioni per un magazzino da quattro persone, sta vendendo il catalogo e non la soluzione.
Il tema della tracciabilità merita una nota. Per alimentare, farmaceutico, cosmetico e componentistica sicura, sapere in pochi minuti a quali clienti è andato un lotto è un obbligo di legge o di contratto. Se la risposta oggi richiede due giorni di telefonate, il problema non è informatico: è un rischio da quantificare. Un richiamo di prodotto gestito male costa più di tutto il software.
Come si modella un magazzino perché i numeri tornino sempre?
La giacenza non si scrive: si calcola. Ogni cosa che succede alla merce diventa un movimento registrato e mai modificato, e la giacenza di un articolo in un'ubicazione è la somma dei suoi movimenti.
È la differenza più importante tra un magazzino che regge e uno che si sporca. Nella maggior parte dei programmi fatti male c'è una colonna "quantità" che viene aggiornata: qualcuno la modifica, il valore vecchio sparisce e quando i conti non tornano non c'è modo di capire chi ha fatto cosa. Se invece la tabella dei movimenti si può solo aggiungere, ogni numero ha una storia leggibile.
Si chiama registro dei movimenti, e nel mondo dello sviluppo software è un'applicazione semplice dell'idea di event sourcing. Non serve adottare l'intera architettura: per un magazzino basta questa regola, applicata con disciplina.

Ecco il nucleo in C#. Un movimento è un record immutabile; la quantità è positiva se la merce entra in quella ubicazione, negativa se esce:
public enum MovementType
{
Receipt, Pick, TransferIn, TransferOut, Return, Adjustment
}
public sealed record StockMovement(
Guid Id,
DateTimeOffset At,
string Sku,
string Location,
string? Lot,
decimal Quantity,
MovementType Type,
string Reference,
string Author);
public static class Stock
{
public static decimal OnHand(
IEnumerable<StockMovement> movements, string sku, string location) =>
movements
.Where(m => m.Sku == sku && m.Location == location)
.Sum(m => m.Quantity);
}Un trasferimento tra due ubicazioni genera due movimenti nella stessa transazione: uno negativo da dove parte, uno positivo dove arriva. Non esiste "spostare" come operazione unica, perché se il sistema si ferma a metà non puoi ritrovarti con la merce che non è né di qua né di là.
Quando i movimenti diventano milioni, ricalcolare ogni volta sommando tutto è lento. La soluzione è tenere una tabella di saldi aggiornata nella stessa transazione del movimento e usare i movimenti come prova e per i ricalcoli. Se il saldo e la somma dei movimenti divergono, un controllo notturno lo segnala: è il tuo allarme precoce, molto prima dell'inventario.
Le regole che il codice deve far rispettare
Il registro è solo metà del lavoro. L'altra metà sono le regole, scritte in un punto solo e provate con test:
- un prelievo non può portare una giacenza sotto zero, salvo un permesso esplicito e registrato;
- una rettifica richiede un motivo scelto da un elenco, non un testo libero;
- un movimento non si cancella: si registra il movimento contrario, con il riferimento al primo;
- ogni movimento ha un autore, che può essere una persona, un lettore, o un'integrazione con nome.
Ecco il servizio di prelievo. Controllare la giacenza e scrivere il movimento devono avvenire nella stessa transazione, bloccando la coppia articolo-ubicazione; altrimenti due persone che prelevano insieme l'ultimo pezzo passano entrambe il controllo.
public interface IStockStore
{
// Apre una transazione e blocca la coppia sku/ubicazione fino al commit.
Task<IStockTransaction> BeginAsync(string sku, string location, CancellationToken ct);
}
public interface IStockTransaction : IAsyncDisposable
{
Task<decimal> OnHandAsync(CancellationToken ct);
Task AppendAsync(StockMovement movement, CancellationToken ct);
Task CommitAsync(CancellationToken ct);
}
public sealed class PickService(IStockStore store)
{
public async Task PickAsync(
string sku, string location, decimal quantity,
string orderReference, string user, CancellationToken ct)
{
if (quantity <= 0)
throw new ArgumentOutOfRangeException(nameof(quantity));
await using var tx = await store.BeginAsync(sku, location, ct);
var onHand = await tx.OnHandAsync(ct);
if (onHand < quantity)
throw new InvalidOperationException(
$"Giacenza insufficiente per {sku} in {location}: " +
$"{onHand} presenti, {quantity} richiesti.");
await tx.AppendAsync(new StockMovement(
Guid.NewGuid(), DateTimeOffset.UtcNow, sku, location, null,
-quantity, MovementType.Pick, orderReference, user), ct);
await tx.CommitAsync(ct);
}
}Su SQL Server il blocco si ottiene con un blocco applicativo sulla chiave oppure con una riga di saldo e un controllo di versione. In tutti e due i casi la regola è la stessa: leggere, decidere e scrivere sono un'unica operazione indivisibile. Se ti interessa la parte di architettura da cui nasce questa separazione tra scritture e letture, la trovi in CQRS per far evolvere l'architettura.
Giacenza fisica, impegnata e disponibile: perché sono tre numeri diversi?
La giacenza fisica è ciò che sta sugli scaffali, quella impegnata è ciò che hai già promesso a un ordine, quella disponibile è la differenza più quello che sta per arrivare e puoi davvero contare. Vendere sulla fisica invece che sulla disponibile è la prima causa di spedizioni mancate.
Un esempio con numeri piccoli. A magazzino hai 40 pezzi di un articolo. Due ordini già confermati ne impegnano 30. Un fornitore consegna altri 50 pezzi giovedì. Un terzo cliente ne chiede 25 per domani.
| Voce | Pezzi | Significato |
|---|---|---|
| Giacenza fisica | 40 | Contati sugli scaffali oggi |
| Impegnata | 30 | Promessa a due ordini già confermati |
| Disponibile oggi | 10 | Fisica meno impegnata |
| In arrivo giovedì | 50 | Dall'ordine al fornitore |
| Disponibile da giovedì | 60 | 10 più 50 in arrivo |
Il terzo cliente vuole 25 pezzi per domani: oggi ne hai disponibili 10. Un sistema che guarda la giacenza fisica risponde "sì, ne ho 40" e promette quello che è già di altri. Un sistema che distingue i tre numeri risponde "domani ne posso dare 10, giovedì i restanti", e il commerciale decide con i dati in mano.
Le prenotazioni sono righe a sé: articolo, quantità, ordine, scadenza della prenotazione. Una prenotazione che nessuno conferma entro un tempo (un carrello online abbandonato, un preventivo mai accettato) decade da sola e libera la merce. È un dettaglio che un pacchetto generico gestisce male e che nei negozi online pesa molto: la differenza tra rimanere senza merce per un carrello fantasma e venderla a un cliente vero.
public static class Availability
{
public static decimal Available(decimal onHand, decimal reserved, decimal incoming) =>
onHand - reserved + incoming;
public static bool CanPromise(decimal quantity, decimal onHand, decimal reserved) =>
quantity <= onHand - reserved;
}Due righe, ma sono le due righe che decidono cosa dici ai clienti. Per questo vanno scritte una volta sola, provate con un test, e usate da tutti: ufficio vendite, negozio online, app del magazziniere. Se ognuno ha la sua formula, avrai tre risposte diverse alla stessa domanda.
Ubicazioni, lotti, kit e conto lavoro: dove il su misura fa la differenza
I quattro casi dove il su misura si ripaga più in fretta sono le ubicazioni con regole di prelievo proprie, i lotti con scadenza, i kit che cambiano per cliente e la merce in conto lavoro presso terzisti. Sono anche i quattro casi dove i pacchetti ti chiedono più compromessi.
Ubicazioni e regole di prelievo
Un magazzino di ricambi con 4.200 articoli e 600 ubicazioni ha tre zone: la scaffalatura per i piccoli pezzi, i bancali per il voluminoso, un'area "ultimo miglio" vicino alle baie di carico per ciò che esce ogni giorno. La regola vera dice: i pezzi veloci si prelevano dall'area vicina alle baie, e quando finiscono il sistema genera un rifornimento dal bancale. Nessun pacchetto lo fa con la tua logica. Lo ottieni con parametri generici o con una personalizzazione, e ogni aggiornamento del pacchetto rischia di romperla.
Nel su misura quella regola è una classe di venti righe, con i suoi test, che puoi cambiare quando cambia il tuo modo di lavorare.
Lotti e scadenze
Dove c'è un lotto, ogni movimento porta il lotto con sé. Il prelievo sceglie in automatico il lotto secondo la regola: il più vecchio prima (FIFO), oppure quello con scadenza più vicina (FEFO). Il magazziniere non decide, conferma. La rintracciabilità si ottiene gratis: la domanda "a chi è andato il lotto 24-117?" diventa una ricerca sui movimenti, e la risposta arriva in pochi secondi.
Kit e distinte base
Il kit è un articolo composto: una scatola per un cliente che contiene cinque componenti, e la composizione cambia con il cliente. Se il kit è un articolo "finto" con giacenza propria, i numeri divergono. Se è una distinta base che al momento dell'ordine impegna i componenti e al momento del confezionamento li scarica, i numeri restano veri. È il tipo di dettaglio che si decide una volta, bene, all'inizio.
Conto lavoro
Quando mandi merce a un terzista per una lavorazione (verniciatura, taglio, assemblaggio), la merce non è più nel tuo magazzino ma è ancora tua. Nei pacchetti si crea un "deposito finto" per tenerla, e dopo un anno nessuno si ricorda cosa c'è dal verniciatore. Nel registro dei movimenti il terzista è semplicemente un'ubicazione, con un tempo atteso di rientro e un avviso quando il ritardo supera la soglia.
Chi lavora con linee di produzione trova la stessa logica, estesa ai reparti, in gestionale di produzione su misura: il magazzino è il primo pezzo che conviene fare, e quel registro dei movimenti poi serve anche al reparto.
Codici a barre, lettori e palmari: quanto hardware serve davvero?
Per la maggior parte delle PMI bastano palmari Android con lettore integrato o smartphone rinforzati: costano 400-900 euro l'uno, sostituiscono i vecchi terminali da 2.000 euro e fanno girare un'app web installabile.
Dove si sbaglia più spesso è sull'ordine delle decisioni. Prima si decide l'hardware e poi si scopre che il programma non lo supporta. Conviene invertire: prima il flusso di lavoro, poi il lettore.
- Etichette. Stampante termica da 300-700 euro per etichette di ubicazione e di articolo. Un codice a barre chiaro per ogni ubicazione fa più della miglior app.
- Codici. Il codice del fornitore, quello del cliente e il tuo sono tre mondi. Il sistema deve riconoscerli tutti e portarli al codice interno. Dove serve la rintracciabilità si usano gli standard GS1, che portano nel codice anche lotto e scadenza.
- Lettori. Il palmare è la scelta normale. Un lettore da tavolo serve al banco spedizioni e al ricevimento. I guanti e il freddo del magazzino frigorifero si scoprono in prova, non in catalogo.
- Connessione. Il punto debole è il Wi-Fi in fondo al magazzino. L'app deve lavorare anche senza rete per qualche minuto e sincronizzare dopo, con gli stessi controlli, senza duplicare movimenti.
L'ultimo punto è tecnico e decisivo. Ogni movimento nato sul palmare porta un identificatore generato in locale: se la rete cade e il palmare riprova a inviare, il server riconosce l'identificatore e non registra due volte. Si chiama idempotenza ed è la differenza tra un sistema che regge il magazzino reale e uno che regge la demo.
Per la ricerca di un articolo con descrizioni scritte in modo disordinato ("vite m6 zincata 20", "VITE ZINC. M6x20") esistono tecniche di ricerca per significato che migliorano molto il tempo di ritrovamento: ne parlo in come funziona la ricerca semantica e, sotto il cofano, in vector indexing con Qdrant. Non serve al primo giorno, ma è il tipo di miglioria che il su misura permette e un pacchetto raramente offre.
Come si fa l'inventario senza fermare il magazzino?
Si fa l'inventario ciclico: ogni giorno si conta un piccolo gruppo di articoli scelto dal sistema, e a fine anno l'inventario generale diventa una verifica e non più una settimana di blocco.
Il metodo è semplice. Gli articoli si dividono per importanza: quelli che valgono di più o si muovono di più si contano più spesso. Un esempio di regola che vedo funzionare:
| Classe | Peso sul valore | Frequenza di conteggio |
|---|---|---|
| A | circa 70% del valore, 10% degli articoli | Ogni mese |
| B | circa 20% del valore, 30% degli articoli | Ogni trimestre |
| C | circa 10% del valore, 60% degli articoli | Ogni anno |
Ogni mattina il palmare propone al magazziniere venti conteggi. Lui conta, inserisce il numero senza vedere quello atteso (il conteggio "alla cieca" evita il vizio di confermare quello che c'è scritto), e il sistema confronta. Se la differenza è sotto la soglia, registra una rettifica con il motivo. Se è sopra, chiede un secondo conteggio da un'altra persona.
Il vantaggio non è solo il tempo risparmiato. È la causa degli errori. Se ogni giorno si scopre che gli ammanchi del corridoio C vengono sempre dal ricevimento dei bancali del martedì, il problema si risolve in una settimana invece di restare nascosto per un anno dentro una rettifica di fine esercizio.
Anche qui il registro dei movimenti dà il valore: una rettifica è un movimento con autore, ora e motivo, e si può analizzare. Dopo tre mesi hai una classifica delle cause di errore e sai dove intervenire.
Come si collega il magazzino a contabilità, e-commerce e corrieri?
Si collega con integrazioni che parlano per messaggi e non per file ricopiati: il magazzino pubblica fatti (merce caricata, ordine evaso), gli altri sistemi li leggono, e se uno è spento i messaggi restano in coda e partono dopo.
È il punto dove i progetti falliscono più spesso, perché è il meno visibile nella demo. Le integrazioni che servono quasi sempre sono tre.
Contabilità e gestionale amministrativo
Il magazzino non deve rifare la contabilità. Deve passare al sistema amministrativo i fatti che contano: carichi con il costo, spedizioni con i documenti di trasporto, rettifiche con il valore. Se il tuo programma amministrativo ha un'interfaccia esposta, si usa quella; se non ce l'ha, si passa da un file strutturato scambiato in una cartella controllata, con ricevuta di avvenuta lettura. Un caso che incontro: l'azienda tiene un gestionale vecchio di quindici anni che non si può toccare. Si lascia dov'è e gli si costruisce intorno il nuovo magazzino, con lo schema del strangler fig: il nuovo sistema prende i processi uno alla volta, e il vecchio si spegne quando è vuoto.
E-commerce e marketplace
Qui il rischio è la vendita doppia: lo stesso ultimo pezzo venduto su due canali nello stesso minuto. Si risolve con una sola giacenza disponibile pubblicata a tutti i canali e con una prenotazione immediata alla creazione dell'ordine. Il magazzino è il proprietario del numero; i canali ne ricevono una copia aggiornata. Chi gestisce cataloghi complessi può partire da un CMS headless, che separa i contenuti del catalogo dalla vetrina e rende più facile aggiornare più canali.
Corrieri e spedizioni
Etichette, tracking e ritiri passano da servizi dei corrieri che espongono interfacce documentate. Il magazzino chiede l'etichetta al momento del confezionamento e salva il tracking sull'ordine. Un controllo a fine giornata verifica che ogni ordine evaso abbia un tracking, perché è il genere di dimenticanza che il cliente scopre prima di te.
La regola che tiene insieme tutto
Ogni integrazione ha un nome e un autore nei movimenti, ogni messaggio ha un identificatore univoco per non essere elaborato due volte, e ogni errore finisce in una coda di "da rivedere" visibile a una persona, non in un file di log che nessuno apre. Se un'integrazione fallisce alle tre di notte, la mattina qualcuno deve vedere un numero rosso su una schermata, non scoprirlo da un cliente.
Per l'impianto più largo, con una pianificazione di cosa prende cosa, serve ragionare sull'insieme: è il genere di mappa che costruisco nella prima fase di un progetto di sviluppo software su misura.
Quanto costa un gestionale di magazzino su misura?
Un gestionale di magazzino su misura per una PMI costa di solito tra 25.000 e 90.000 euro per la prima versione in produzione, più 8-15% l'anno per manutenzione e evoluzioni; il primo blocco utilizzabile, con carichi, prelievi e giacenze affidabili, esce spesso sotto i 30.000 euro.
I numeri qui sotto sono ordini di grandezza che uso per le prime conversazioni, non un preventivo. Il prezzo vero esce solo dopo una diagnosi di una-due settimane, ed è giusto che sia così.
| Perimetro | Cosa comprende | Costo indicativo | Tempo |
|---|---|---|---|
| Base | Anagrafica, ubicazioni, carichi, prelievi, trasferimenti, giacenze, un deposito, app per palmare | 25.000-40.000 euro | 8-10 settimane |
| Intermedio | Base più lotti e scadenze, prenotazioni, inventario ciclico, integrazione con la contabilità | 45.000-65.000 euro | 12-16 settimane |
| Completo | Intermedio più kit, conto lavoro, e-commerce e corrieri, più depositi, cruscotti | 70.000-90.000 euro | 16-24 settimane |

Voci che di solito restano fuori dal preventivo e che conviene mettere in conto:
- Hardware. Palmari, stampanti, etichette: 3.000-10.000 euro per un magazzino da 3-6 operatori.
- Migrazione dei dati. Pulire anagrafiche e ubicazioni costa tempo tuo e nostro: 2.000-6.000 euro, ed è lì che nascono le sorprese.
- Formazione. Mezza giornata per operatore, più una persona che diventa il riferimento interno.
- Esercizio. Hosting e servizi: 50-300 euro al mese su un cloud ben dimensionato. La parte cloud si tiene bassa con le scelte descritte in Azure per le PMI italiane.
- Evoluzioni. Un magazzino che funziona genera richieste nuove. Mettere da parte un 8-15% del costo iniziale ogni anno è realistico.
Il confronto su cinque anni
Confrontare il prezzo di acquisto è il modo più sicuro per sbagliare. Un pacchetto da 6.000 euro l'anno di licenze e canoni, con una customizzazione iniziale da 15.000 euro, costa in cinque anni circa 45.000 euro e ti lascia con un prodotto che non è tuo. Un su misura da 50.000 euro, con 6.000 euro l'anno di manutenzione, ne costa 80.000 in cinque anni e ti lascia con un software di tua proprietà, adattato a come lavori.
Il su misura costa di più, e non nascondo questo numero. Si ripaga se il guadagno annuo è sopra la differenza. Il conto è breve: se le tue spedizioni sbagliate, le ore di ricerca e le scorte di sicurezza in eccesso valgono 25.000 euro l'anno e il nuovo sistema ne recupera la metà, in meno di tre anni hai coperto anche la differenza di costo; nel quarto e nel quinto anno è guadagno.
Per il quadro generale dei costi e delle trappole del software fatto fuori misura, leggi anche il costo reale del software legacy: è lo stesso ragionamento applicato a chi si trascina un vecchio programma.
Come si costruisce in 90 giorni senza fermare le spedizioni?
Si costruisce a pezzi utilizzabili: dopo quattro settimane il magazzino registra già carichi e prelievi reali, dopo otto ha le giacenze affidabili, dopo dodici sostituisce il vecchio sistema reparto per reparto. Nessuna partenza "tutto in una notte".

Settimane 1-2: diagnosi
Passo due giorni in magazzino con gli operatori, non in sala riunioni. Misuro quattro cose: quanto tempo serve per un carico, per un prelievo, per un inventario, e quanti errori si scoprono a fine mese. Disegno con loro il percorso della merce e scrivo le regole, una per una, in frasi semplici. Alla fine ricevi un documento di pochi fogli: perimetro, rischi, costo, piano.
Settimane 3-6: il registro dei movimenti e il primo flusso
Costruisco il nucleo descritto sopra, con test automatici sulle regole. Il primo flusso che va in produzione è il più semplice: il carico merce al ricevimento, con etichetta e ubicazione. In questa fase il vecchio sistema continua a funzionare, e il nuovo gira in parallelo su una zona. È il momento di scoprire i problemi quando costano poco.
Settimane 7-10: palmari, prelievi, inventario ciclico
Entrano i palmari e i prelievi per ordine. Si accende l'inventario ciclico, che già dalla prima settimana produce numeri sulla qualità dei dati. Qui capisci se la migrazione delle anagrafiche è stata fatta bene: gli errori di conteggio si concentrano dove i dati di partenza erano sporchi.
Settimane 11-12: avvio completo e spegnimento
Si sposta una zona alla volta. Quando il nuovo sistema ha lavorato da solo per due settimane con le differenze entro soglia, il vecchio passa in sola lettura per tre mesi e poi si archivia. Non si cancella mai di colpo: serve per rispondere a una domanda su un ordine di due anni fa.
Cosa tenere sotto controllo ogni settimana
Tre numeri: la differenza media dei conteggi ciclici, il tempo medio di un prelievo, e il numero di movimenti rifiutati dalle regole (un numero alto all'inizio è normale, e dice dove le persone lavoravano con abitudini che il vecchio sistema non controllava). Se il primo scende e il secondo non sale, il progetto sta andando bene.
Come si porta il vecchio magazzino dentro il nuovo sistema?
Si migrano solo i dati che servono a lavorare domani: articoli attivi, ubicazioni, giacenze contate di recente e ordini aperti. Lo storico resta consultabile nel vecchio sistema, non si trascina dentro quello nuovo.
L'errore classico è voler portare tutto. Quindici anni di articoli, di cui metà non movimentati da cinque. Si importano e si riempie il nuovo sistema di sporcizia che gli operatori dovranno scorrere ogni giorno. Meglio una regola: un articolo senza movimenti da più di 24 mesi e senza giacenza resta nell'archivio.
La sequenza che uso:
- Pulizia delle anagrafiche. Doppioni, codici scritti in modi diversi, unità di misura incoerenti. Si fa nel vecchio sistema o in un foglio di lavoro, con un responsabile interno che decide.
- Mappa delle ubicazioni. Si assegna un codice a ogni posizione fisica e si attacca l'etichetta. Questo lavoro manuale, due-tre giorni con due persone, vale più di qualunque software.
- Conteggio di partenza. Si conta fisicamente e si carica come movimento iniziale di "apertura". Da quel momento il registro è la verità, e le differenze si misurano da lì.
- Ordini aperti. Gli ordini non ancora evasi si ricaricano con le loro prenotazioni, per non promettere due volte la stessa merce.
- Prova a vuoto. Un giorno intero con il nuovo sistema in parallelo su dati reali, senza spedire dal nuovo.
Se oggi il magazzino vive su un database Access o su fogli di calcolo, la strada è descritta in sostituire Access con un gestionale. Se vive su un vecchio database aziendale che vuoi portare in cloud, i costi e i passi stanno in migrazione da SQL Server ad Azure SQL.
Quali errori vedo ripetersi nei progetti di magazzino?
Gli errori più costosi non sono tecnici: sono partire senza regole scritte, non coinvolgere i magazzinieri e lasciare il sistema senza un responsabile interno. Questi sono i sette che incontro più spesso.
1. Partire dal programma e non dal flusso
Si sceglie lo strumento, poi si scopre che non si sa dire come entra e come esce la merce. Il flusso va scritto prima, con gli operatori, anche a mano su un foglio.
2. Progettare la schermata del direttore e non quella del magazziniere
Il cruscotto bello serve al titolare. Il palmare con tre tocchi per un prelievo serve a chi lavora otto ore. Un'app per il magazzino si prova con i guanti, in piedi, con una mano sola.
3. Tenere la giacenza come numero modificabile
Ne ho parlato sopra. Se una colonna si può sovrascrivere, un giorno qualcuno la sovrascrive, e non sapremo mai perché. Registro dei movimenti, sempre.
4. Dimenticare i resi e le rettifiche
Il flusso "normale" è dieci per cento del lavoro che crea il novanta per cento dei guai. Resi, merce danneggiata, differenze di consegna: ognuno ha una procedura, un motivo e una schermata.
5. Integrazioni senza coda e senza allarme
Funzionano in prova e si rompono alle tre di notte, e nessuno lo sa fino alle nove. Servono messaggi in coda, tentativi ripetuti con attesa crescente e un numero rosso visibile.
6. Nessun responsabile interno
Il software resta vivo se in azienda c'è una persona che ne è responsabile: decide le regole, approva le modifiche, conosce i dati. Mezza giornata al mese, con un nome. Senza di lei, dopo un anno il sistema è un altro programma che si lavora intorno.
7. Pensare che il lavoro finisca con la consegna
Un magazzino cambia: arriva un cliente nuovo, un canale nuovo, un prodotto con le scadenze. Il budget di evoluzione e un contratto che dica chi interviene e in quanto tempo fanno parte del progetto, non sono un extra.
Cosa deve restare in azienda alla fine del progetto?
Devono restare codice sorgente, documentazione delle regole, test automatici, accessi intestati all'azienda e una persona interna che sa dove mettere le mani. Se manca una di queste cinque cose, sei in ostaggio del fornitore.
| Cosa | Perché serve | Come lo verifichi |
|---|---|---|
| Codice sorgente | Per cambiare fornitore senza ricominciare | È in un repository intestato a te e si compila da zero |
| Regole scritte | Sono il valore dell'azienda dentro il programma | Una pagina per regola, in italiano |
| Test automatici | Per modificare senza rompere | Un comando li lancia e dice quanti passano |
| Accessi e fatture cloud | Per non dipendere da chi ha costruito | Account e abbonamenti intestati alla tua azienda |
| Un responsabile interno | Per decidere senza chiamare nessuno | Ha un nome e tempo dedicato |
Aggiungo una cosa: la proprietà del software va scritta nel contratto prima di cominciare, non alla fine. Se paghi un lavoro su misura e non ne possiedi il codice, hai affittato un pacchetto molto caro.
Chi ha già un sistema datato e si chiede se rifarlo o sistemarlo troverà il metodo in riscrivere o rifattorizzare il software legacy. Per il lato più strategico, quello di quando conviene affidarsi a un'azienda esterna invece di assumere, c'è il confronto in costo di un team di sviluppo .NET nel 2026.
Un esempio completo, con i numeri
Un caso composito, costruito su situazioni che ho visto più volte: non è un cliente con nome e cognome, serve a mostrarti la forma dei conti. Un distributore di ricambi, 14 dipendenti, 4.200 articoli attivi, 600 ubicazioni, 70 spedizioni al giorno, un vecchio gestionale con un modulo di magazzino che non gestisce le ubicazioni.
| Voce | Prima | Dopo 6 mesi |
|---|---|---|
| Differenza giacenza a sistema e contata (sul valore) | 5,2% | 1,1% |
| Spedizioni parziali per errore di giacenza | 38 al mese | 6 al mese |
| Tempo medio per evadere un ordine di 6 righe | 14 minuti | 8 minuti |
| Inventario di fine anno | 3 giorni di blocco | Mezza giornata di verifica |
| Scorte di sicurezza | Basate sull'incertezza | Ridotte del 9% |
Il conto economico. Ore risparmiate: 6 minuti su 70 ordini al giorno sono 7 ore, circa 150 ore al mese, 1.800 l'anno. A 28 euro l'ora sono 50.400 euro. Spedizioni parziali evitate: 32 al mese a 45 euro l'una tra trasporti ripetuti e tempo, circa 17.000 euro l'anno. Scorte: il 9% su 1,4 milioni sono circa 126.000 euro di capitale liberato, che a un costo del 6% valgono 7.500 euro l'anno. Totale intorno a 75.000 euro l'anno, a fronte di un investimento di 62.000 euro per il perimetro intermedio e di 8.000 euro l'anno di manutenzione.
Ripetilo con i tuoi numeri, abbassando ogni voce del 30%: se il progetto resta in positivo, vale la pena. È un test crudele e utile, perché i recuperi stimati sono sempre i più ottimisti.
Come scegliere il fornitore di un gestionale di magazzino su misura?
Scegli chi comincia chiedendoti come lavora il tuo magazzino e non chi comincia mostrandoti la sua piattaforma; chi ti fa vedere un prototipo funzionante su un tuo flusso reale entro tre settimane; chi mette per iscritto che il codice è tuo.
Le domande che farei a ogni candidato, in questo ordine:
- Quanti magazzini avete costruito, e posso parlare con uno di quei clienti?
- Come garantite che la giacenza torni sempre? Mostratemi il modello dati.
- Cosa succede se un palmare perde la rete?
- Di chi è il codice, e dove sta?
- Quanto costa il primo blocco utilizzabile e quando lo vedo?
- Chi risponde quando qualcosa si rompe il lunedì alle otto?
Le risposte che mi fanno alzare le sopracciglia sono tre: "è tutto nella piattaforma, non serve sapere come funziona", un prezzo dato senza aver visto il magazzino, e un piano che parte da sei mesi di analisi prima di scrivere una riga. Un buon progetto produce qualcosa di utilizzabile in quattro settimane.
Se vuoi capire in che modo lavoro, la pagina software su misura per le aziende descrive il metodo e come si arriva a un preventivo con un perimetro chiaro.
Domande frequenti
Quanto costa un gestionale di magazzino su misura?
Per una PMI la prima versione in produzione costa di solito tra 25.000 e 90.000 euro a seconda del perimetro: base, intermedio o completo. Si aggiungono hardware (3.000-10.000 euro), migrazione dei dati e una manutenzione annua dell'8-15% del costo iniziale.
Quanto tempo serve per averlo in uso?
Il primo blocco utilizzabile, con carichi e prelievi reali, arriva in quattro-sei settimane. Il sistema completo sostituisce il vecchio in 12-24 settimane, a seconda delle integrazioni.
Meglio un pacchetto o il su misura?
Un pacchetto se il tuo magazzino lavora come quello di tutti. Il su misura se hai ubicazioni con regole tue, lotti, kit variabili, conto lavoro o più canali di vendita su una sola giacenza.
Posso partire con una parte sola?
Sì, ed è il modo giusto. Si parte dal registro dei movimenti e dal ricevimento merce, poi si aggiungono prelievi, inventario ciclico e integrazioni. Ogni blocco è usabile da solo.
Serve cambiare il gestionale amministrativo?
No. Il magazzino si integra con quello esistente tramite un'interfaccia o uno scambio di file controllato. Si sostituisce il gestionale solo se è esso stesso il problema.
Cosa succede se la connessione internet cade in magazzino?
I palmari lavorano senza rete per alcuni minuti, salvano i movimenti con un identificatore univoco e li inviano appena la rete torna. Il server scarta i duplicati.
Di chi è il codice?
Deve essere tuo, scritto nel contratto prima di cominciare, in un repository intestato alla tua azienda. Se un fornitore non lo accetta, è un segnale da non ignorare.
Come si misura che il progetto è riuscito?
Con tre numeri fissati prima: differenza tra giacenza a sistema e contata, spedizioni parziali al mese e minuti per evadere un ordine. Si rilevano prima di cominciare e dopo tre e sei mesi.
Il passo per lunedì
Non serve chiamare nessuno per ora. Serve un'ora in magazzino e un foglio.
Scegli venti articoli, cinque tra i più venduti, dieci medi e cinque fermi. Conta quanti ce ne sono davvero e confronta con il gestionale. Segna le differenze e, per ognuna, chiedi a chi lavora lì dove pensa sia finita la differenza. Non cercare un colpevole: cerca il punto in cui la merce si muove senza che il sistema lo sappia.
Poi scrivi tre numeri: quante spedizioni parziali hai avuto il mese scorso, quanto tempo serve in media per un ordine di sei righe, e il valore delle scorte di sicurezza. Se la differenza media sulle venti righe supera il 5% o le spedizioni parziali sono più di una a settimana, hai un problema che vale un progetto. Se è sotto, hai risparmiato una consulenza, ed è un ottimo risultato.
Se vuoi un parere su cosa conviene fare per primo, mandami quei tre numeri e le tre regole del tuo magazzino che nessun pacchetto ha mai capito. Partiamo dalla consulenza sul software su misura: la prima conversazione serve a capire se conviene costruire adesso, e quanto. Anche quando la risposta è comprare un pacchetto.
La tua azienda ha bisogno di software su misura o di AI nel team?
Progettiamo e sviluppiamo software su misura, modernizziamo i sistemi vecchi e formiamo i tuoi sviluppatori a lavorare con l'AI. Raccontaci il problema: ricevi una risposta concreta entro un giorno lavorativo.
Domande frequenti
Per una PMI la prima versione costa 25.000-90.000 euro a seconda del perimetro, più hardware, migrazione dei dati e manutenzione annua dell'8-15%.
Il primo blocco con carichi e prelievi reali arriva in 4-6 settimane, il sistema completo in 12-24 settimane.
Pacchetto se il magazzino lavora come tutti. Su misura con ubicazioni a regole proprie, lotti, kit variabili, conto lavoro o più canali su una sola giacenza.
Sì: registro dei movimenti e ricevimento merce, poi prelievi, inventario ciclico e integrazioni. Ogni blocco è usabile da solo.
No, il magazzino si integra con quello esistente tramite interfaccia o scambio di file controllato.
I palmari lavorano offline, salvano i movimenti con identificatore univoco e li inviano al ritorno della rete: il server scarta i duplicati.
Deve essere tuo, scritto nel contratto prima di cominciare, in un repository intestato alla tua azienda.
