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:
- Una sola fonte del magazzino, in cui si scaricano sia le vendite al banco sia gli ordini online.
- Un aggiornamento abbastanza frequente verso il sito, deciso in base a quanto vendi.
- 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.
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.
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.
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
- Giacenze corrette sul sito. Al primo invio dal gestionale la correzione sparisce, o peggio resta e crea un numero che non corrisponde allo scaffale.
- Ordini online che non arrivano al gestionale. Il sito scala, il gestionale no: al prossimo invio il pezzo venduto torna disponibile.
- Nessuna scorta sui pezzi unici. Sono proprio quelli dove un ritardo di pochi minuti basta.
- Ordini in sospeso dimenticati. Un bonifico mai arrivato tiene fermo un pezzo che potresti vendere.
- Resi rimessi in vendita senza controllo. Il rimborso non è la prova che il pezzo è integro.
- Varianti non allineate. Taglie e colori scritti in modo diverso nei due programmi fanno saltare l'aggiornamento proprio dove le giacenze sono più basse.
- Nessun avviso quando la sincronizzazione si ferma. Un invio fallito alle 9 vuol dire un sito con le giacenze di ieri.
La checklist
- Scegli la fonte del magazzino e scrivilo: "le giacenze si cambiano solo nel gestionale".
- Verifica che le vendite al banco scarichino lo stesso magazzino da cui parte il sito.
- Fai arrivare gli ordini online nel gestionale e decidi quali stati scaricare.
- Scegli la frequenza di aggiornamento guardando gli articoli con pochi pezzi.
- Imposta la scorta di sicurezza, generale o per articolo.
- Imposta Hold stock e decidi chi controlla gli ordini in sospeso.
- Scrivi la procedura per resi, annullamenti e pezzi messi da parte.
- 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.