Che cosa distingue un'importazione che regge da una che una notte azzera i prezzi: chi comanda su ogni campo, come si pubblica senza che nessuno veda il catalogo a metà, e i quattro controlli che fermano il disastro prima dei clienti.
di Nadia Maar ·
L'importazione notturna gira dalle due alle due e venti. È andata bene per otto mesi. Poi una notte il fornitore esporta il listino con il separatore decimale cambiato, e alle due e quattro minuti trentamila prodotti valgono qualche centesimo l'uno.
Il problema non è l'errore del fornitore: quello succederà di nuovo, e non dipende da voi. Il problema è che fra il file sbagliato e il catalogo pubblico non c'era niente — nessun controllo che si chiedesse se un listino in cui il 96% dei prezzi crolla sia un listino plausibile, e nessun posto dove fermarlo mentre qualcuno guarda.
Questo pezzo è come si costruisce quel «niente». Quattro cose: chi comanda su ogni campo, che cosa succede a ogni riga che arriva, come si pubblica senza spegnere il sito, e le soglie che fermano una notte storta prima che la vedano i clienti.
L'importazione che nasce in mezza giornata fa tre cose: legge un file, cancella quello che c'era, riscrive tutto. Funziona benissimo finché il file è giusto, il collegamento non cade e nessuno tocca niente a mano dal sito. Sono tre condizioni che reggono per mesi, e poi smettono tutte insieme.
«Che cosa succede se questo file è sbagliato?» Un'importazione costruita bene ha una risposta per iscritto, e la risposta non è mai «lo scopriamo dai reclami». Tutto il resto di questo articolo è quella risposta, smontata nei suoi quattro pezzi.
Il primo documento non è tecnico: è una tabella che dice, per ogni campo, quale sistema ha ragione quando i due non sono d'accordo. Senza, il conflitto lo risolve chi ha scritto per ultimo — cioè il caso.
| Campo | Comanda | Che cosa succede se cambia dall'altra parte |
|---|---|---|
| Prezzo di listino | Gestionale | La modifica fatta sul sito viene sovrascritta la notte stessa. È voluto: i prezzi hanno una sola sorgente. |
| Disponibilità | Gestionale | Sovrascritta a ogni giro, anche più volte al giorno. È il campo che invecchia più in fretta di tutti. |
| Nome e descrizione | Sito | Il gestionale propone il testo solo alla prima creazione. Dopo, quello che avete scritto resta. |
| Immagini | Sito | Il gestionale non le tocca mai. Le foto buone costano più della riga di catalogo che descrivono. |
| Categoria e filtri | Sito | La classificazione commerciale non è quella contabile, e forzarle a coincidere fa perdere entrambe. |
| Codice e unità di misura | Gestionale | Sono l'identità della riga: se cambiano dal sito, il collegamento fra i due sistemi si rompe in silenzio. |
Sei righe, mezz'ora di riunione, e tolgono di mezzo la discussione più lunga di tutto il progetto. La regola pratica: comanda il gestionale su ciò che è un numero, comanda il sito su ciò che è una scelta commerciale.
Ogni riga del file attraversa una serie di controlli, e a ogni controllo qualcuna esce. Le righe che escono non sono scarti: sono il valore dell'importazione. Un import che scrive tutto quello che riceve non ha controlli, ha solo fiducia. Tocca un passo per la regola.
30.412 righe nel file di stanotte
30.108 proseguono; 304 in quarantena.
Righe senza codice, con codice doppio, o con un codice che non corrisponde a niente in anagrafica. Non si inventano prodotti: se il codice è nuovo davvero, deve essere una creazione decisa da qualcuno, non l'effetto collaterale di un file. Le trecentoquattro righe finiscono in un elenco che qualcuno guarda domattina.
30.086 proseguono; 22 in quarantena.
Prezzo che non è un numero, quantità negativa, unità di misura sconosciuta, data impossibile. È il controllo più stupido e quello che salva più notti: la maggior parte dei disastri di importazione non è logica, è un formato cambiato senza avviso.
1.240 proseguono; 28.846 identiche, si saltano.
Il confronto con lo stato attuale è la differenza fra un'importazione di venti minuti e una di quaranta secondi. Ventottomila righe identiche non vanno riscritte: scriverle comunque consuma tempo, riempie la cronologia delle modifiche di rumore, e rende impossibile rispondere alla domanda «che cosa è cambiato stanotte».
1.202 proseguono; 38 fermate, da confermare.
È il controllo che manca quasi sempre. Un prezzo che cambia del 3% passa; uno che scende del 90% si ferma e aspetta un occhio umano. Vale anche in aggregato: se in un solo giro più del 20% dei prezzi si muove nella stessa direzione, non è un listino aggiornato, è un file rotto — e l'importazione si ferma tutta.
Millecentodue righe su trentamila, in meno di un minuto. E soprattutto: scritte in un catalogo che nessun cliente sta guardando, che è l'argomento della sezione seguente.
L'importazione classica scrive dentro il catalogo che i clienti stanno guardando. Quella giusta scrive sempre nel lato spento, e quando il lato è completo e ha passato i controlli si scambia il puntatore. L'operazione dura quanto una riga di database. Premete il pulsante.
v. 2026-08-29 · 30.108 referenze
v. 2026-08-30 · 30.108 referenze
Il vantaggio vero non è la velocità: è che tornare indietro è la stessa identica operazione, fatta al contrario. Nessun ripristino, nessun file da rimettere a posto, nessuna decisione da prendere alle tre di notte con qualcuno al telefono.
Vale la pena dire che cosa costa: due copie del catalogo occupano il doppio dello spazio, e lo spazio costa poco. La complessità in più sta tutta nel fare in modo che ordini e carrelli in corso continuino a funzionare durante lo scambio, e si risolve una volta sola, all'inizio.
Le soglie non servono a evitare gli errori: servono a fare in modo che un errore si fermi prima di diventare pubblico. Si scrivono una volta, e sono numeri, non impressioni.
Una notifica a una persona, con dentro il numero che ha fatto scattare il controllo e il confronto con la media — non un messaggio generico che dice «importazione fallita». La differenza fra i due è che il primo si risolve in due minuti dal telefono, il secondo richiede di aprire il computer e andare a cercare che cosa è successo. E nel frattempo il catalogo pubblico è quello di ieri, integro: è il punto di tutta l'architettura.
Nell'audit guardiamo tre cose concrete: che cosa succede oggi se il file arriva sbagliato, quanto dura la finestra in cui il catalogo pubblico è a metà, e quali campi si sovrascrivono a vicenda fra gestionale e sito. Da lì si capisce se il vostro flusso è a rischio o se è già fatto bene — succede, e in quel caso ve lo dico.
Se una notte storta l'avete già avuta, la stessa mezz'ora serve a ricostruirla: di solito la causa si trova nel file di quel giro, e la cosa utile non è capire di chi è la colpa ma dove andava messo il controllo.
Si tengono due copie del catalogo: una risponde ai clienti, l'altra riceve le modifiche. Quando la seconda è completa e ha passato i controlli, si scambia il puntatore — un'operazione che dura meno di un decimo di secondo. Chi sta navigando non se ne accorge, e nessuno vede mai un catalogo a metà. Il vantaggio più grande non è la velocità: è che tornare indietro è la stessa operazione fatta al contrario, senza ripristini.
Dipende da quanto costa un ordine su un prodotto che non c'è. Con rotazione lenta un giro notturno basta; dove si vende lo stesso pezzo a più clienti nello stesso giorno servono giri più frequenti sulla sola disponibilità, che è un file piccolo e veloce. La regola pratica: sincronizzare spesso ciò che cambia spesso — disponibilità e prezzi — e una volta al giorno tutto il resto.
Quasi mai per un errore di calcolo: di solito il file è arrivato troncato, con un separatore decimale diverso o con una colonna in meno, e l'importazione lo ha scritto senza chiedersi se fosse plausibile. Il controllo che lo evita è aggregato, non per riga: se in un solo giro più di un quinto del catalogo si muove nella stessa direzione, o una quota anomala di prodotti va a zero, l'importazione si ferma e avvisa una persona invece di pubblicare.
Nessuno dei due su tutto. Serve una tabella che assegni ogni campo a un solo sistema: il gestionale comanda su ciò che è un numero — prezzo di listino, disponibilità, codice, unità di misura — e il sito comanda su ciò che è una scelta commerciale — nome, descrizione, immagini, categorie e filtri. Senza quella tabella il conflitto lo risolve chi ha scritto per ultimo, e ogni notte il lavoro fatto a mano viene sovrascritto.