Vedi anche: Importazione anagrafiche clienti/fornitori, che funziona allo stesso modo.
La funzione Importazione articoli carica in Atlantis Evo gli articoli di magazzino da un file CSV, per esempio un listino del fornitore o un elenco preparato in Excel. Lo stesso file può creare articoli nuovi e aggiornare quelli già presenti, riconosciuti dal codice. Oltre all’anagrafica può caricare prezzi di listino, costi, codici a barre, scorte per deposito, pesi, codici articolo dei clienti/fornitori e l’immagine principale.
Ogni importazione è una definizione salvata, con un codice e una descrizione: dice com’è fatto il file, cosa contiene ogni colonna e quali valori dare agli articoli nuovi. Una volta preparata si riusa quante volte serve, per esempio per aggiornare ogni mese i prezzi dal listino di un fornitore.
Si trova in Magazzino → Servizi → Importazione articoli.

1. Il file da importare
Un file di testo CSV, una riga per articolo, con le colonne sempre nello stesso ordine. Il modo più semplice è preparare il foglio in Excel e salvarlo in formato CSV.

- Le colonne vengono abbinate per posizione, non per nome: la prima riga della scheda Campi descrive la prima colonna del file, la seconda la seconda, e così via. I titoli scritti nella riga di intestazione del file non vengono letti.
- Ogni riga del file deve avere esattamente tante colonne quante sono le righe della scheda Campi. Se il numero non torna l’importazione si ferma con un messaggio in inglese: “The number of columns to be processed (12) must match the number of CellProcessors (10) …”. Le colonne del file che non interessano vanno comunque dichiarate, con il campo -non definito-.
- La colonna del codice articolo è obbligatoria (vedi § 4).
- Numeri: la virgola decimale va bene (
129,90), il separatore delle migliaia no:1.234,56ferma l’import. Togliete i separatori delle migliaia dal foglio prima di salvare. - Lettere accentate. Il file viene letto con la codifica predefinita del sistema: con le installazioni attuali (Java 21) è UTF-8. In Excel scegliete “CSV UTF-8”; se dopo l’import le lettere accentate compaiono come simboli strani, il file era salvato in un’altra codifica. Il CSV UTF-8 di Excel comincia con un carattere invisibile: tenete la riga di intestazione, così finisce lì e non sul primo codice.
- Il separatore lo decide Excel in base alle impostazioni internazionali: con Windows in italiano è quasi sempre il punto e virgola. Nel dubbio aprite il file con il Blocco note e guardate.
Esempio, con intestazione e punto e virgola:
Codice;Descrizione;UM;Gruppo;Descr. gruppo;Marca;Descr. marca;Listino;Prezzo;EAN
TRAP18V;Trapano avvitatore 18V;PZ;01.03;Elettroutensili;BOSCH;Bosch;LIS1;129,90;4053423215714
PUNTE10;Set punte legno 10 pz;PZ;01.04;Accessori;BOSCH;Bosch;LIS1;14,50;4053423215721
2. Scheda Principale
In alto, fuori dalle schede, Codice (numerico, proposto in automatico) e Descrizione identificano la definizione. Accanto c’è il pulsante Esegui (vedi § 5).
| Campo | A cosa serve |
|---|---|
| File predefinito | percorso del file da importare. Il pulsante … apre la finestra di scelta. È il file che viene letto quando si preme Esegui |
| File con intestazioni di colonna | spuntato, la prima riga del file viene saltata. Se il file ha l’intestazione e il flag è spento, la riga dei titoli viene importata come se fosse un articolo |
| Carattere di quoting campi | il carattere che racchiude un valore contenente il separatore, di solito le virgolette ". Esempio con la virgola come separatore: "Vite 4,5x40" |
| Delimitatore campi | il separatore fra le colonne: virgola, punto e virgola, pipe |, due punti, tabulatore |
| Delimitatore righe | CR+LF, LF o CR. Oggi non ha effetto: in lettura il file viene interpretato correttamente con qualsiasi tipo di fine riga |
| Script di pre-elab. file | script eseguito prima di leggere il file; riceve il file nella variabile _file. Serve, per esempio, a convertirlo o ripulirlo |
| Script di pre-elab. rec. | script eseguito su ogni riga appena letta, prima che venga importata; riceve i valori delle colonne nell’elenco _datarow e li può modificare |
| Script di post-elab. file | script eseguito dopo l’ultima riga; riceve il file in _file. Serve, per esempio, a spostarlo in una cartella di archivio |
| Gestione nuovi prodotti | campo bloccato su Valore da File: il codice degli articoli nuovi viene sempre dal file. L’opzione Progressivo numerico non è disponibile |
Una definizione nuova parte con intestazione spuntata, virgolette come quoting, virgola come separatore e CR+LF.
Gli script si scelgono con la ricerca fra quelli dell’archivio script di Atlantis (JavaScript). Un esempio di script sulla riga, che aggiunge il prefisso del fornitore ai codici (prima colonna del file):
var cod = _datarow.get(0);
if (cod != null && cod != "") {
_datarow.set(0, "BSH" + cod);
}
⚠️ Uno script che va in errore, o che non esiste più, ferma l’importazione: “Errore. Script ‘NOME’ non trovato!”.
Valori di default
Il riquadro contiene quattro valori obbligatori – la definizione non si salva senza:
| Campo | A cosa serve |
|---|---|
| Gruppo Merceologico | gruppo degli articoli nuovi |
| Cod. Iva Ven. | codice IVA di vendita degli articoli nuovi |
| Cod. Contropartita | contropartita di vendita/acquisto degli articoli nuovi |
| U.M. Base | unità di misura degli articoli nuovi |
Vengono usati solo sugli articoli nuovi e solo se il file non fornisce già quel dato: se c’è la colonna del gruppo ed è compilata, vale quella. Sugli articoli esistenti non cambiano nulla.
3. Scheda Campi
Una riga per ogni colonna del file, nello stesso ordine. Ogni riga si conferma con il pulsante Conferma.

| Campo | A cosa serve |
|---|---|
| Campo | il dato che la colonna contiene, scelto dall’elenco (§ 4). -non definito- per le colonne da ignorare |
| Rimuovi riga se vuoto | se la colonna è vuota, l’intera riga del file viene scartata: l’articolo non viene né creato né aggiornato |
| Tipo import | quando la colonna viene scritta sull’articolo |
Tipo import ha quattro valori (una riga nuova parte da Importa):
| Valore | Effetto |
|---|---|
| Importa | la colonna viene sempre scritta |
| Non importare | la colonna viene letta ma non scritta |
| Importa su nuovi record | scritta solo se l’articolo non esisteva |
| Importa solo su aggiornamento | scritta solo se l’articolo esisteva già |
“Nuovo” ed “esistente” si riferiscono sempre all’articolo, cioè al codice. È il modo per usare lo stesso file sia per caricare il catalogo sia per aggiornarlo: per esempio la descrizione su Importa su nuovi record (le descrizioni ritoccate a mano non vengono sovrascritte) e il prezzo su Importa (si aggiorna sempre).
Rimuovi riga se vuoto funziona anche sulle colonne Non importare: una colonna usata solo come filtro (“importa solo le righe con il prezzo”) si dichiara così. Sul Prezzo un valore 0 conta come vuoto.
⚠️ Rimuovi riga se vuoto sulla colonna del codice articolo non funziona: il codice viene controllato prima, e una riga senza codice ferma l’import con “Codice articolo non impostato su file.”. Le righe senza codice vanno tolte dal file, o scartate con un’altra colonna sempre vuota su quelle righe.
⚠️ Una cella vuota su una colonna importata non è “nessun dato”: a seconda del campo cancella il valore presente, scrive zero o ferma l’import (§ 4). In un import di aggiornamento, le colonne che nel file non sono sempre compilate vanno messe su Importa su nuovi record o Non importare.
4. I dati importabili
Anagrafica
| Campo | Note |
|---|---|
| Cod. articolo | obbligatorio; vedi sotto |
| Descriz. articolo | fino a 1024 caratteri |
| Unità misura base | codice dell’unità di misura, fino a 3 caratteri |
| Note articolo | testo libero |
| Cod. gruppo merceologico · Descriz. gruppo merceologico | vedi Gruppi e marche |
| Cod. marca · Descriz. marca | vedi Gruppi e marche |
| Articolo descrittivo (S/N) · Eliminato (S/N) · Articolo obsoleto (S/N) | S o N |
| Data obsoleto (aaaa-mm-gg opp. gg/mm/aaaa) | 2026-12-31 oppure 31/12/2026; altri formati fanno fallire l’import |
| Cod. articolo sostitutivo | codice del nuovo articolo che sostituisce quello obsoleto |
| Cod. IVA vendita · Cod. IVA acquisto · Cod. monofase | codici IVA, 3 caratteri |
| Cod. contropartita | numero intero |
| Deposito preferenziale | codice del deposito |
| Cod. struttura varianti · Usa tutte le varianti della struttura S/N | struttura varianti dell’articolo; il secondo vale S o N |
| Controllo giac. N=no, A=avvisa, B=blocca · Controllo disp. N=no, A=avvisa, B=blocca | N, A o B |
| Cod. fornitore | codice soggetto del fornitore abituale, 7 caratteri (0000101, non 101) |
| Cod. stagione | fino a 8 caratteri |
| Categ. provvigioni | categoria provvigionale, deve esistere |
| Cod. tipo lotto · Cod. KIT · Modalità KIT (vuoto)=fantasma S=scarica | gestione lotti e kit; tipo lotto e kit devono esistere |
| Num. reparto | numero intero: il reparto del registratore di cassa |
| Cod. prodotto 2 · Cod. produttore | codici aggiuntivi, fino a 30 caratteri |
| *Nome campo utente | i campi utente definiti sull’anagrafica articoli, preceduti da un asterisco |
Un testo più lungo del limite viene tagliato senza avviso.
Codici non controllati. Unità di misura, codici IVA, contropartita, deposito, struttura varianti, fornitore e stagione vengono scritti così come sono: un codice che non esiste si scopre dopo, sui documenti. Verificate prima che le tabelle siano caricate e che i codici del file corrispondano.
Codici controllati. Questi invece fermano l’import se non sono validi – anche quando la cella è vuota:
| Campo | Messaggio |
|---|---|
| Categ. provvigioni | “Codice categoria provvigioni non presente in archivio. Codice: X” |
| Cod. tipo lotto | “Codice tipo lotto non presente in archivio. Codice: X” |
| Cod. KIT | “Codice KIT non presente in archivio. Codice: X” |
| Controllo giac. / Controllo disp. | “Valore non valido su campo controllo giacenza, valori validi N,A,B, valore corrente: X” (lo stesso testo anche per la disponibilità) |
| Usa tutte le varianti della struttura S/N | “Valore non valido su campo ‘Usa tutte le varianti S/N’ valore corrente: X” |
| Modalità KIT | ammessi solo vuoto o S |
Anche Cod. contropartita e Num. reparto fermano l’import se la cella è vuota o non è un numero intero, con un messaggio in inglese.
Il codice articolo
Il codice letto dal file viene ripulito dagli spazi e portato in maiuscolo. Se esiste, l’articolo viene aggiornato; altrimenti viene creato, con i valori di default della scheda Principale per i dati che il file non fornisce.
- più lungo di 20 caratteri: “Codice articolo troppo lungo. Lunghezza massima 20 caratteri. Codice: X”;
- vuoto: “Codice articolo non impostato su file.”.
In entrambi i casi l’import si ferma.
Gruppi e marche
Gruppi merceologici e marche si creano da soli durante l’import:
- se il gruppo o la marca del file non esiste, viene creato, con la descrizione della colonna Descriz. gruppo merceologico / Descriz. marca se c’è;
- se esiste e la descrizione nel file è diversa, la descrizione viene aggiornata.
Le colonne di descrizione servono solo insieme al codice: da sole non fanno nulla.
I gruppi a livelli si scrivono con il punto: 01.03 è il sottogruppo 03 del gruppo 01. L’import non crea la struttura dall’alto: il gruppo padre deve già esistere e non deve avere articoli, altrimenti
“Impossibile creare gruppo 01.03 perchè manca gruppo padre 01”
“Impossibile creare sottogruppo 01.03 se gruppo 01 contiene articoli collegati-“
Il codice marca è lungo al massimo 6 caratteri: “Codice marca troppo lungo. Lunghezza massima 6 caratteri. Codice: X”.
⚠️ Una cella vuota su Cod. gruppo merceologico o Cod. marca crea un gruppo o una marca con il codice vuoto. Compilate il codice su tutte le righe, oppure usate Importa su nuovi record / Non importare.
Prezzi di listino
| Campo | Note |
|---|---|
| Cod. listino | il listino su cui scrivere; deve esistere |
| Prezzo | prezzo dell’articolo nel listino |
| Sconto 1 · Sconto 2 · Sconto 3 | sconti della riga di listino |
Ogni riga del file scrive in un solo listino, quello della colonna Cod. listino: senza quella colonna l’import si ferma con “Codice listino non definito su record”, con un codice inesistente con “Codice listino X non presente”.
La riga di listino è quella dell’articolo nella sua unità di misura base (presa dalla colonna Unità misura base, altrimenti dall’articolo, altrimenti dal default). Se c’è già viene aggiornata, altrimenti viene aggiunta.
Per caricare più listini dello stesso articolo si ripete la riga nel file, una per listino, oppure si prepara una seconda definizione “solo prezzi” con tre colonne: Cod. articolo, Cod. listino, Prezzo.
⚠️ Prezzo e sconti vuoti valgono zero: una cella vuota azzera il prezzo (o lo sconto) sul listino. Se il file non ha il prezzo per tutti gli articoli, spuntate Rimuovi riga se vuoto sul prezzo oppure dividete il file.
Costi
Costo utl. acquisto e Costo standard registrano il costo dell’articolo con la data di oggi, arrotondato ai decimali dei prezzi. Una cella vuota registra costo zero.
Codici a barre
Cod. a barre EAN13, Cod. a barre CODE39 e Cod. ASIN, fino a 25 caratteri (“Codice a barre troppo lungo. Lunghezza massima 25 caratteri. Codice: X”).
Il codice viene aggiunto a quelli dell’articolo, se non c’è già: un nuovo import con un EAN diverso non sostituisce il precedente, l’articolo si ritrova con due codici. L’import non controlla che lo stesso codice a barre sia già usato da un altro articolo.
Scorte e ubicazione
| Campo | Note |
|---|---|
| Cod. deposito (dati scorte) | il deposito a cui si riferiscono i dati; obbligatorio con gli altri tre |
| Scorta minima · Scorta massima | numeri |
| Codice ubicazione | fino a 10 caratteri |
Senza deposito: “Codice deposito non definito su record”. Una cella vuota su scorta minima o massima ferma l’import.
Pesi
Peso lordo e Peso netto, numeri. Una cella vuota ferma l’import.
Codici articolo dei clienti e fornitori
Per caricare la codifica che un cliente o un fornitore usa per i vostri articoli:
| Campo | Note |
|---|---|
| Cod. cli/for – Cod. soggetto | codice del soggetto, 7 caratteri (0000101, non 101) |
| Cod. cli/for – Cod. articolo esterno | il codice usato dal cliente/fornitore |
| Cod. cli/for – Descriz. articolo | la sua descrizione |
| Cod. cli/for – Stampa S/N | S per stampare il codice esterno sui documenti |
Soggetto e codice esterno sono obbligatori: “Codice soggetto cli/for non definito su record”, “Codice articolo cli/for non definito su record”.
Il codice soggetto non viene completato con gli zeri come fa l’import soggetti:
101non trova il soggetto0000101. Lo stesso vale per Cod. fornitore.
Immagine principale
Immagine principale contiene il percorso del file dell’immagine, sul computer da cui si lancia l’import (C:\Foto\TRAP18V.jpg). L’immagine viene archiviata fra i documenti dell’articolo come immagine principale, sostituendo quella eventualmente già presente.
Serve la categoria in Archivi → Impostazioni → Codici fissi → Codici Fissi, scheda Magazzino → Generale, campo Categoria Immagine principale articoli; altrimenti “Categoria immagine non definita in impostazione ‘Codici fissi’.”.
Un file che non esiste non ferma l’import: a fine lavoro si apre una finestra con l’elenco delle immagini non trovate (“Immagine non presente per articolo: X – File: …”).
5. Esecuzione
- Salvate la definizione (F10) e richiamatela: l’importazione parte solo in interrogazione, con una definizione caricata. Altrimenti compaiono “Operazione eseguibile solo in modalità interrogazione.” o “Nessuna definizione di importazione caricata.”.
- Premete Esegui. Viene letto il file indicato in File predefinito: per importare un file diverso, entrate in variazione, cambiate il percorso e salvate.
- Due barre di avanzamento – Conteggio righe e Importazione articoli – mostrano il progresso. A fine lavoro compare “Operazione terminata.”.
Prima di leggere le righe vengono controllati la definizione e il file:
- “File import non definito.” – il campo File predefinito è vuoto;
- “File PERCORSO non trovato.” – il percorso non esiste sul computer da cui si lancia l’import;
- “Codice articolo non definito nei campi di importazione.” – nella scheda Campi manca Cod. articolo.
Se una riga va in errore, il messaggio indica il motivo e la riga del file:
“Errore. Codice listino LIS9 non presente – linea n.37”
Le due modalità
Il pulsante Esegui ha una freccia con una seconda voce:
| Modalità | Comportamento in caso di errore |
|---|---|
| Esegui | tutto o niente: nessuna riga viene salvata, nemmeno quelle precedenti all’errore |
| Esegui (per file di grosse dimensioni) | le righe elaborate prima dell’errore restano salvate; le successive no |
La seconda modalità serve per i file molto grandi, quando l’esecuzione normale non riesce ad arrivare in fondo. Dopo un errore si corregge il file e si rilancia da capo: gli articoli già importati vengono semplicemente riaggiornati.
In entrambi i casi, una volta concluso l’import non esiste un annullamento.
6. Promemoria
- Prima prova con poche righe, o su una copia dei dati: un import riuscito non si annulla.
- Una riga di Campi per ogni colonna del file, nello stesso ordine; le colonne da ignorare si dichiarano -non definito-.
- Codice articolo sempre compilato, massimo 20 caratteri. Una riga senza codice ferma l’import, anche con Rimuovi riga se vuoto.
- Celle vuote: azzerano prezzi, sconti e costi, cancellano i testi, fermano l’import su scorte, pesi, contropartita, reparto e sui codici controllati. Negli aggiornamenti usate Importa su nuovi record o Non importare.
- I valori di default valgono solo per gli articoli nuovi.
- Gruppi e marche mancanti vengono creati: controllate i due archivi dopo l’import. Per i gruppi a livelli il padre deve esistere e non avere articoli.
- Un prezzo scrive in un solo listino per riga, nell’unità di misura base dell’articolo.
- I codici a barre si aggiungono, non si sostituiscono.
- Codici soggetto a 7 caratteri nelle colonne cli/for e fornitore.
- Niente separatore delle migliaia nei numeri; il file in UTF-8.
- Con Esegui (per file di grosse dimensioni) un errore lascia l’import a metà.