L’importazione XML senza duplicati inizia da un identificatore costante e univoco e da una relazione salvata tra il record del fornitore e il prodotto in PrestaShop. Prima del primo avvio, definisci cosa può creare l’importatore, quali campi aggiorna e cosa significa l’assenza di un prodotto nel file successivo. Un XML formalmente corretto non risponde da solo a queste domande.

Due file XML di origine e un catalogo prodotti ordinato senza duplicati

La guida è destinata ai negozi che pianificano un’importazione da un grossista o da un altro sistema. Due piccoli file dimostrativi mostrano come distinguere un nuovo prodotto, una modifica dei dati e l’assenza di un record. Non sono il feed di un fornitore reale né un formato universale supportato da ogni importatore.

1. Scegli il sistema responsabile di ogni campo

Per prima cosa decidi da dove provengono il prezzo corretto, la disponibilità, il nome e la descrizione. Spesso il grossista è responsabile della disponibilità e del prezzo di acquisto, mentre il negozio mantiene una propria descrizione e un prezzo di vendita calcolato secondo una regola. Se l’importatore sovrascrive tutti i campi a ogni aggiornamento, può cancellare il lavoro redazionale svolto nel negozio.

Esempio di responsabilità dei dati
CampoFonte nell’esempioRegola di aggiornamento
Identificatore di origineFornitore.Chiave di collegamento permanente all’interno della determinata fonte.
DisponibilitàFornitore.Aggiornata dopo la corretta lettura dei dati.
Prezzo di acquistoFornitore.Con valuta definita e informazione netto/lordo.
Prezzo di venditaRegola del negozio.Calcolato secondo la conversione concordata e le imposte.
Descrizione e SEONegozio.Non sovrascrivere senza una decisione esplicita.

Un importatore da solo non decide la politica commerciale. Il fatto che un prodotto compaia in due feed non significa automaticamente scegliere il prezzo più basso né cambiare fornitore. Una regola di questo tipo deve essere progettata e poi confermata nella soluzione concreta.

2. Non confondere l’ID del fornitore con l’ID del prodotto nel negozio

Il record A-100 nell’XML può corrispondere al prodotto 501 in PrestaShop. Questi numeri non devono essere identici. L’importatore dovrebbe conoscerne il collegamento e utilizzarlo alla lettura successiva. Creare una nuova scheda a ogni modifica del nome è un errore del modello di identificazione.

L’identificatore deve essere stabile nel tempo e univoco nell’ambito scelto. Se due grossisti usano il numero 100, un collegamento sicuro dovrebbe includere la fonte e non solo questo numero. Non dare inoltre per scontato che l’EAN sia sempre disponibile e univoco: nel file possono esserci mancanze, errori o duplicati che richiedono chiarimenti.

Come valutare un candidato come chiave di corrispondenza?
CampoCosa verificareRischio senza questo controllo
ID fornitoreSe è stabile, univoco e distingue il prodotto dalla variante.Nuove schede dopo un cambio di numerazione o fusione di offerte diverse.
Indice / referenceSe non si ripete nel catalogo e se mantieni gli zeri iniziali.Abbinamento al prodotto sbagliato.
EAN / GTINPresenza, correttezza e ambito — pezzo, variante o confezione.Collisioni oppure abbinamento di unità diverse.

Prima del primo abbinamento al catalogo esistente, prepara un report delle chiavi mancanti e duplicate. Non scegliere automaticamente il “primo prodotto trovato” se esistono due schede con lo stesso indice.

3. Prodotto e variante richiedono regole separate

Una singola scheda prodotto può avere più combinazioni, ciascuna con la propria disponibilità, indice, immagine o impatto sul prezzo. Definisci se il record XML descrive l’intera scheda o una singola variante. Se il fornitore invia taglie separate come record separati, unirle in un’unica scheda richiede una regola di raggruppamento.

Verifica anche il significato del prezzo della variante: può essere il prezzo completo oppure la differenza rispetto al prodotto base. Usare la differenza come prezzo finale produce un risultato errato. La stessa cautela vale per gli insiemi di attributi: una modifica del nome del colore non dovrebbe creare un’ulteriore variante senza una decisione esplicita.

Se l’importatore sincronizza l’intero insieme delle combinazioni, stabilisci se le varianti assenti nel file debbano essere mantenute, disattivate o eliminate. Questo è particolarmente importante quando una parte delle varianti è gestita direttamente dal negozio.

4. Due versioni XML e risultato atteso

La struttura seguente è stata preparata esclusivamente a scopo dimostrativo. I prezzi sono prezzi di acquisto netti in PLN. Nell’esempio non creiamo varianti; ogni record corrisponde a una singola scheda prodotto. Il parser o l’adapter del concreto importatore deve essere adattato alla reale struttura della fonte.

Primo file completo


  
    DEMO-BUTELKA
    Butelka oliwkowa
    50.00
    12
  
  
    DEMO-KUBEK
    Kubek kremowy
    20.00
    8
  

File completo successivo


  
    DEMO-BUTELKA
    Butelka oliwkowa
    55.00
    0
  
  
    DEMO-KOC
    Koc beżowy
    40.00
    5
  

L’attributo complete="true" fa parte del nostro esempio, non è una garanzia standard di completezza dell’XML. In un’implementazione reale bisogna stabilire come il fornitore conferma la completezza e come l’importatore la riconosce.

Questi sono i risultati attesi dello scenario, non il risultato di un’importazione eseguita. I numeri dei prodotti nel negozio sono di esempio. I due file sopra hanno uno schema illustrativo ; non sono file di input dell’adapter di esempio del modulo.

Operazioni attese dopo il secondo file
Record di origineEsempio di collegamento nel negozioRisultato atteso
demo / A-100Prodotto esistente 501.Aggiornamento del prezzo di acquisto 50 → 55 e della disponibilità 12 → 0; senza nuova scheda.
demo / A-200Prodotto esistente 502.Assente nella fonte: in questa dimostrazione lo lasciamo invariato e lo segnaliamo per controllo.
demo / A-300Nessun collegamento precedente.Creazione di una nuova scheda prodotto.

Verifica locale dell’adapter di esempio 2.0.5

Il 27 settembre abbiamo verificato in memoria il metodo SampleAdapter::mapProduct() su tre piccoli file XML, su PHP 7.0 e 8.1. Questo adapter si aspetta la struttura e i campi nazwa, cena_netto e stan_magazynowy. Questo differisce dallo schema illustrativo sopra. Non abbiamo eseguito il download dell’URL né l’importazione nel database del negozio.

Risultato reale della mappatura locale, senza salvataggio dei prodotti
ProvaDati di inputRisultato del metodo
Primo fileA-100: 50.00 netto, disponibilità 12; A-200: 20.00 netto, disponibilità 8; un’offerta senza ID.Due array di dati per A-100 e A-200; l’offerta senza ID ha restituito false.
Secondo fileA-100: 55.00 netto, disponibilità 0; A-300: 40.00 netto, disponibilità 5. Assenza di A-200.Array di dati per A-100 e A-300. Il metodo non decide cosa fare con l’assente A-200.
Prezzo con virgolaA-400: 19,99 netto.L’adapter di esempio ha restituito 19.

Versione 2.0.5 del 27.09.2026, resa disponibile il 28.09.2026. Il pacchetto non contiene il modulo né la configurazione per un’importazione completa. Il risultato 19,99 → 19 documenta un errore di formato del prezzo, non un prezzo corretto.

Limite della prova: questo è il risultato della mappatura dei campi, non la prova della creazione o dell’aggiornamento delle schede, della gestione delle varianti o dell’assenza di duplicati dopo una nuova importazione. SampleAdapter è escluso dalla selezione nel pannello ed è esso stesso contrassegnato come esempio non adatto alla produzione. Non eseguire un’importazione completa di un breve campione su una fonte esistente: la regola per i prodotti assenti nel file può modificare lo stato del catalogo. Il collaudo completo richiede una copia isolata del negozio, la conferma della completezza del feed e il confronto delle schede prima e dopo l’esecuzione.

5. L’assenza di un record non significa sempre assenza della merce

Un prodotto può scomparire da un catalogo completo, ma può anche non comparire in un file che contiene solo le modifiche. Un file vuoto, un errore di accesso, un download parziale o un’importazione non completata sono altre situazioni ancora. Non dovrebbero portare automaticamente alla disattivazione dell’intero assortimento.

Prima di eseguire operazioni sui prodotti mancanti, conferma il corretto download, la lettura e il completamento del giusto tipo di importazione. Definisci anche l’ambito: solo le schede collegate a questa fonte. La scomparsa di un record del grossista A non dovrebbe modificare automaticamente un prodotto aggiunto manualmente o un’offerta del grossista B.

Nell’esempio lasciamo la tazza mancante per controllo, per mostrare la differenza tra assenza di informazione e disponibilità zero esplicita. Questa è una regola dimostrativa scelta, non un’impostazione adatta a ogni negozio. Per la produzione la decisione va collegata alla natura della fonte e al rischio di vendere merce non disponibile.

6. Importazione completa e aggiornamento rapido

Nel codice Import hurtownia Pro / pdxmlimport 2.0.4 l’importazione completa e l’aggiornamento rapido hanno ambiti diversi. Il percorso completo può creare prodotti e aggiornare i dati gestiti dall’adapter secondo la configurazione. L’aggiornamento rapido riguarda i prezzi e le quantità dei prodotti base già collegati alla fonte; non è il percorso per creare nuove schede né per aggiornare le disponibilità delle singole combinazioni.

Non dare per scontato che gli interruttori di sovrascrittura di nomi e descrizioni controllino ogni operazione del modulo. Prima della pianificazione indica con precisione l’azione, la fonte e l’ambito. Una modifica della regola di prezzo può anche richiedere una nuova elaborazione dei dati nonostante l’XML invariato.

Se ti serve solo l’aggiornamento di schede esistenti da CSV, consulta le guide separate sui prezzi e sulle disponibilità. La scelta del formato dovrebbe derivare dai dati e dalle operazioni che devono essere realmente eseguite.

7. Pianificazione solo dopo il controllo del risultato

Esegui il primo test su un piccolo insieme rappresentativo che includa un nuovo prodotto, un prodotto già collegato, un identificatore mancante, una collisione e le varianti. Confronta il numero di record aggiunti, modificati, saltati ed errati. Apri le schede prodotto e verifica il prezzo di vendita, la disponibilità, le immagini e la mappatura delle categorie.

Solo dopo imposta l’ordine di download e di elaborazione dei lotti e la frequenza del CRON. La pianificazione dovrebbe tenere conto della pubblicazione del file da parte del fornitore e del tempo reale di importazione. Definisci chi reagisce a un errore e come riconosce un’esecuzione non completata. Il semplice avvio dell’indirizzo CRON non è una prova dell’aggiornamento dell’intero catalogo.

Invia un campione della struttura XML senza dati riservati e descrivi le regole di aggiornamento. Dopo la verifica dei campi e delle varianti si può definire l’ambito dell’importazione ed esportazione dei dati PrestaShop. Se l’adapter esistente supporta questa struttura, verifica Import hurtownia Pro; una diversa struttura dei dati richiede un adattamento e una prova su una copia del negozio.

L’importazione del catalogo non significa automaticamente che il codice del fornitore sia corretto, univoco e stabile. I nomi, i codici e i numeri dei prodotti sono dimostrativi; non contengono dati né la struttura di un feed protetto del grossista.

Prima di fare affidamento sul codice del fornitore, verifica la sua unicità

Nel codice dell’importatore XML 2.0.5 le relazioni salvate per la fonte e l’eventuale corrispondenza per codici svolgono compiti diversi. In caso di più risultati di corrispondenza, l’importatore può salvare un avviso e scegliere il primo risultato. Per questo un EAN o una referenza ripetuti richiedono un riordino dei dati — la sola indicazione del campo non garantisce l’assenza di errori.

Nel foglio della mappa dati e degli scenari annota la regola per il caso di mancata corrispondenza, più corrispondenze e ripetizione. Per ogni prova conserva l’identificatore della fonte e il prodotto e la combinazione corretti nel negozio. Solo su questa base valuta il risultato dell’esecuzione successiva.

Prodotti correlati

Integrazioni con grossisti
Importazione grossista Pro – importazione di prodotti da XML a PrestaShop
PrestaDev.pl
IMPORTXMLPRO
492,00 zł 400,00 złnetto
3 Recensioni
Import grossista Pro è un modulo PrestaShop per creare e aggiornare prodotti sulla base dei dati XML messi a disposizione dal grossista o da un altro fornitore di catalogo. Consente di gestire più fonti di dati, con impostazioni e mappature separate per ciascuna di esse. A seconda del contenuto del file e del supporto della sua struttura, l’importazione...
Vedi gli articoli dell'autore
Patryk Marek

Patryk Marek — proprietario di PrestaDev.pl e sviluppatore specializzato in PrestaShop. Da molti anni si occupa della creazione, dello sviluppo e della manutenzione di negozi online. Unisce il lavoro sul codice del negozio e dei moduli alla configurazione dell’ambiente server in cui queste soluzioni operano.

Progetta e sviluppa moduli PrestaShop, adatta le funzionalità esistenti e prepara integrazioni con grossisti e servizi esterni. Lavora sull’importazione e sull’aggiornamento dei dati dei prodotti, sull’automazione della gestione del catalogo, sul processo dell’ordine e sugli strumenti che supportano il lavoro quotidiano del proprietario del negozio.

La sua esperienza comprende anche aggiornamenti e migrazioni dei negozi, diagnosi degli errori, analisi delle prestazioni e configurazione dei server e dei servizi necessari al funzionamento di PrestaShop. Nella risoluzione dei problemi tiene conto delle dipendenze tra moduli, tema, PHP, database e impostazioni di hosting.

Nel blog condivide conoscenze derivanti da molti anni di pratica nello sviluppo e dal lavoro con il backend tecnico dei negozi. Le guide si concentrano su problemi concreti, sui modi per verificarli e sui limiti delle soluzioni descritte. Aiutano i proprietari dei negozi e le figure tecniche a preparare le modifiche, valutarne la portata e verificarne il risultato.

Commenti (0)

Nessun commento in questo momento

Nuovo commento

Stai rispondendo a un commento