1. Home
  2. Note tecniche
  3. Integrazioni

Integrazioni · 8 min di lettura

Giacenze tra negozio fisico e sito: come non vendere due volte lo stesso pezzo

Autore
Nicola ToralboDigital Dew
Pubblicato
Aggiornato 17 ottobre 2026
Per chi
Negozi con vendita al banco e onlineIntegrazioni
In brevePer non vendere due volte lo stesso pezzo serve una sola fonte del magazzino, di solito il gestionale, dove si scaricano sia le vendite al banco sia gli ordini online. Il sito riceve la giacenza aggiornata spesso, tiene una piccola scorta di sicurezza e tratta bene ordini non pagati, annullati e resi.

Due vetrine, un solo scaffale

Il problema è sempre lo stesso: un pezzo, due modi per venderlo. Una cliente compra al banco l'ultimo vaso in vetrina alle 10:02; alle 10:09 qualcun altro lo ordina dal sito, perché il sito pensava che ci fosse ancora. Ora hai un ordine pagato che non puoi evadere, un rimborso da fare e un cliente deluso.

Non succede per un errore di qualcuno. Succede perché le giacenze vivono in due posti, e i due posti si parlano in ritardo o non si parlano affatto.

La soluzione ha tre parti, e funzionano solo insieme:

  1. Una sola fonte del magazzino, in cui si scaricano sia le vendite al banco sia gli ordini online.
  2. Un aggiornamento abbastanza frequente verso il sito, deciso in base a quanto vendi.
  3. Un margine di sicurezza per coprire i minuti in cui i dati non sono ancora allineati.

Più alcune regole su ordini non pagati, annullamenti e resi, che sono il punto in cui le giacenze si sporcano senza che nessuno se ne accorga.

Una sola fonte del magazzino

La prima decisione è stabilire dove vive il numero "quanti pezzi ho". Nella maggior parte dei negozi la risposta giusta è il gestionale: è lì che entrano i carichi dai fornitori, è lì che la cassa scarica le vendite al banco, ed è lì che dovrebbero arrivare anche gli ordini online.

Il sito non decide la giacenza: la riceve. Quando vende, manda l'ordine al gestionale, che scala il pezzo; poi il gestionale rimanda al sito il numero aggiornato.

Un esempio inventato. Bottega Lanzi, oggettistica per la casa a Como, vende un vaso in terracotta sia in negozio sia online. Una mattina tipo:

  • Arriva il carico dal fornitore: 12 vasi, registrati nel gestionale. Giacenza 12, e il sito la riceve.
  • Una cliente ne compra uno al banco. La cassa scarica il gestionale: 11.
  • Arriva un ordine online. Il sito lo manda al gestionale, che scala: 10.
  • Un cliente riporta un vaso comprato la settimana prima. Il pezzo viene controllato, è integro, e si registra il reso nel gestionale: 11.

In nessun momento qualcuno tocca la giacenza sul sito. Il sito mostra quello che dice il gestionale, con il ritardo dell'aggiornamento, e di quel ritardo ci occupiamo tra poco.

Carico dal fornitore, vendita al banco, ordine online e reso: tutti passano dal gestionale, che è l'unico a cambiare la giacenza e la rimanda al sito.

Se usi Danea Easyfatt, è lo schema descritto nella nota su cosa sincronizzare tra Danea e WooCommerce: articoli e giacenze da Danea al sito, ordini e clienti dal sito a Danea. Lo stesso vale per altri gestionali o per una cassa con magazzino: cambia il collegamento, non la regola.

L'errore da evitare è il magazzino "a metà": giacenze corrette a mano sul sito per i pezzi venduti in negozio, o pezzi messi da parte per un cliente che restano disponibili online. Ogni correzione fatta fuori dalla fonte viene sovrascritta al primo aggiornamento, oppure resta lì e crea differenze.

Ogni quanto aggiornare il sito

La frequenza dipende da come funziona il gestionale e da quanto vendi. Ci sono due casi:

  • Aggiornamento a ogni movimento. Alcuni gestionali o casse avvisano il sito appena una giacenza cambia. È il caso ideale: il ritardo si misura in secondi.
  • Aggiornamento a intervalli. Altri inviano i dati quando lo lanci tu o a orari fissi, ogni 15 minuti. Tra un invio e l'altro il sito mostra il dato vecchio.

Nel secondo caso, il rischio di vendere due volte lo stesso pezzo esiste solo in quella finestra di tempo. Il ragionamento è concreto: se un articolo ha 40 pezzi, un ritardo di mezz'ora non cambia nulla; se è un pezzo unico, anche dieci minuti possono bastare per un doppione.

Lo stesso pezzo venduto al banco e online nell'intervallo tra due aggiornamenti; con una scorta di sicurezza di un pezzo, il sito lo mostra già esaurito.

Per questo la frequenza non si sceglie per tutto il catalogo allo stesso modo, ma guardando gli articoli che contano: pochi pezzi, venduti sia in negozio sia online. Sono quelli da cui partire per decidere l'intervallo, ed eventualmente da aggiornare più spesso degli altri.

La scorta di sicurezza

Anche con un aggiornamento frequente resta un piccolo ritardo. La scorta di sicurezza serve a coprirlo: è un numero di pezzi che il sito considera già venduti.

Se la scorta è 1 e in magazzino hai 3 pezzi, il sito ne mostra 2. Quando in magazzino ne resta 1, il sito mostra l'articolo esaurito. Quell'ultimo pezzo resta vendibile al banco, dove lo vedi con i tuoi occhi.

In WooCommerce ci sono due impostazioni utili, nella sezione del magazzino delle impostazioni dei prodotti:

  • Out of stock threshold (soglia di esaurimento): la quantità sotto la quale il prodotto diventa "esaurito". Impostarla a 1 vuol dire che l'ultimo pezzo non si vende online.
  • Low stock threshold (soglia di scorta bassa): la quantità che fa partire un'email di avviso. Utile per riordinare in tempo.

Quando la scorta deve essere diversa da articolo ad articolo, per esempio 0 per i prodotti che arrivano ogni settimana e 1 per i pezzi da esposizione, conviene calcolarla nell'integrazione: il gestionale manda al sito la giacenza meno la scorta di quell'articolo.

Il prezzo della scorta è chiaro: qualche vendita online in meno sugli ultimi pezzi. Va confrontato con il costo di un ordine annullato, del rimborso e del cliente perso.

Ordini in sospeso: quando la giacenza scende davvero

Un ordine online non scala sempre la giacenza nello stesso momento. In WooCommerce dipende dallo stato dell'ordine:

  • In attesa di pagamento (Pending payment): l'ordine c'è, il pagamento no. La merce viene trattenuta, non ancora scalata.
  • In lavorazione (Processing): il pagamento è arrivato e la giacenza è stata ridotta.
  • In sospeso (On hold): si attende la conferma del pagamento, per esempio un bonifico. La giacenza è già ridotta.
  • Cancellato (Cancelled): se la gestione del magazzino è attiva, la merce torna disponibile.
  • Fallito (Failed): il pagamento è fallito. Dalla versione 11.0, se la giacenza era stata ridotta, WooCommerce la ripristina.

Il tempo per cui un ordine non pagato trattiene la merce si imposta con Hold stock (minuti): scaduto il tempo, l'ordine viene annullato e la merce torna disponibile. Attenzione al dettaglio scritto nella documentazione: vale solo per gli ordini in attesa di pagamento, non per quelli in sospeso.

Un ordine non pagato trattiene il pezzo per i minuti impostati e poi lo libera; un ordine con bonifico in sospeso lo tiene finché qualcuno non decide.

Ne seguono due regole pratiche. La prima: gli ordini in sospeso vanno controllati, perché non scadono da soli; un bonifico mai arrivato tiene fermo un pezzo per giorni. La seconda: decidi quali stati mandare al gestionale. Di solito si scaricano gli ordini pagati, e il gestionale scala la giacenza in quel momento; ma se un ordine in sospeso tiene fermo l'ultimo pezzo sul sito, anche il negozio deve saperlo, altrimenti lo vende al banco.

Resi, annullamenti e pezzi messi da parte

Sono le situazioni in cui le giacenze si sporcano più spesso, perché coinvolgono persone diverse in momenti diversi.

Annullamenti. Un ordine annullato su WooCommerce rimette la merce sul sito. Se l'ordine era già stato scaricato nel gestionale, va annullato anche lì, altrimenti al prossimo invio il gestionale rimanda la giacenza vecchia.

Resi e rimborsi. Quando fai un rimborso da WooCommerce puoi spuntare Restock refunded items per rimettere i pezzi in magazzino. Con un gestionale come fonte, però, il reso va registrato lì, e solo dopo aver controllato il pezzo: un articolo rovinato non deve tornare in vendita perché è stato rimborsato.

Pezzi messi da parte. "Me lo tiene fino a sabato?" è una vendita non ancora fatta. Se il pezzo resta in giacenza, il sito lo vende. Serve un modo per registrarlo nel gestionale, come un ordine cliente o un impegno, così che la giacenza disponibile scenda.

Inventario e rettifiche. Dopo un inventario le differenze si correggono nel gestionale, mai sul sito. Il primo aggiornamento le porterà online.

Gli errori più comuni

  1. Giacenze corrette sul sito. Al primo invio dal gestionale la correzione sparisce, o peggio resta e crea un numero che non corrisponde allo scaffale.
  2. Ordini online che non arrivano al gestionale. Il sito scala, il gestionale no: al prossimo invio il pezzo venduto torna disponibile.
  3. Nessuna scorta sui pezzi unici. Sono proprio quelli dove un ritardo di pochi minuti basta.
  4. Ordini in sospeso dimenticati. Un bonifico mai arrivato tiene fermo un pezzo che potresti vendere.
  5. Resi rimessi in vendita senza controllo. Il rimborso non è la prova che il pezzo è integro.
  6. Varianti non allineate. Taglie e colori scritti in modo diverso nei due programmi fanno saltare l'aggiornamento proprio dove le giacenze sono più basse.
  7. Nessun avviso quando la sincronizzazione si ferma. Un invio fallito alle 9 vuol dire un sito con le giacenze di ieri.

La checklist

  1. Scegli la fonte del magazzino e scrivilo: "le giacenze si cambiano solo nel gestionale".
  2. Verifica che le vendite al banco scarichino lo stesso magazzino da cui parte il sito.
  3. Fai arrivare gli ordini online nel gestionale e decidi quali stati scaricare.
  4. Scegli la frequenza di aggiornamento guardando gli articoli con pochi pezzi.
  5. Imposta la scorta di sicurezza, generale o per articolo.
  6. Imposta Hold stock e decidi chi controlla gli ordini in sospeso.
  7. Scrivi la procedura per resi, annullamenti e pezzi messi da parte.
  8. Prevedi un avviso se l'aggiornamento non parte o un ordine non arriva.

Quanto costa

Con Danea Easyfatt e WooCommerce, l'integrazione per articoli, giacenze e ordini parte da € 1.500, con attivazione in 10 giorni. Più magazzini o più listini si aggiungono da € 600; varianti e taglie da € 500.

Con altri gestionali o casse il prezzo dipende da come espongono i dati: se hanno un'API o un file di esportazione, e se possono avvisare il sito a ogni vendita. Per il controllo nel tempo, con avvisi se qualcosa si ferma, c'è la manutenzione dell'integrazione da € 60.

Foto
Nicola Toralbo

Fondatore di Digital Dew, studio di sviluppo dal 2009.

02Domande frequenti

Domande sull'articolo.

Risponde Nicola Toralbo
Aggiornato 17 ottobre 2026

01Quanto costa sincronizzare le giacenze tra negozio e sito?

Con Danea Easyfatt e WooCommerce si parte da € 1.500, con attivazione in 10 giorni. Più magazzini o più listini si aggiungono da € 600.

02Le giacenze si possono aggiornare in tempo reale?

Dipende dal gestionale: alcuni avvisano il sito a ogni vendita, altri inviano i dati a intervalli. Nel secondo caso si sceglie un intervallo adatto ai volumi e si copre il resto con la scorta di sicurezza.

03Cos'è la scorta di sicurezza?

È un numero di pezzi che il sito considera già venduti. Se la scorta è 1 e in magazzino ne hai 2, il sito ne mostra 1: così il ritardo dell'aggiornamento non diventa un ordine che non puoi evadere.

04Un ordine non pagato blocca la merce?

In WooCommerce un ordine in attesa di pagamento trattiene la merce per i minuti che imposti; scaduto il tempo l'ordine si annulla e la merce torna disponibile. Gli ordini in sospeso, come quelli con bonifico, invece scalano la giacenza e non scadono da soli.

05Se un cliente restituisce un pezzo, torna disponibile sul sito?

Solo se rientra nel magazzino da cui parte la sincronizzazione. Conviene registrare il reso nel gestionale dopo aver controllato il pezzo, non in automatico al rimborso.

04 — Contatti

Raccontami il tuo progetto.

Hai una domanda su questo argomento? In 30 minuti ti dico se e come si può fare.

toralbo@digitaldew.it
+39 393 33 58 860
Prenota la call