Errori XML in PrestaShop: sistema le liste dei moduli in 5 minuti

person list PrestaShop Reading time: 6 min
Errori XML in PrestaShop: sistema le liste dei moduli in 5 minuti
Dopo l'accesso al pannello di amministrazione di PrestaShop 1.6 vedi un muro di messaggi rossi come nell'immagine qui sotto? Tranquillo: il negozio funziona… Dopo l'accesso al pannello di amministrazione di PrestaShop 1.6 vedi un muro di messaggi rossi con frasi come quelle nell'immagine qui sotto? Tranquillo: il negozio funziona normalmente per i clienti e il problema sta in un meccanismo rotto di recupero dei dati dall'API esterna di PrestaShop. In questo articolo spieghiamo da dove nascono questi errori e come eliminarli definitivamente in due passaggi via FTP.

Cosa sono i file country_module_list.xml e must_have_modules_list.xml?

PrestaShop 1.6 e 1.7 dispone di un meccanismo integrato che comunica regolarmente con il server esterno api.addons.prestashop.com. Lo scopo di questa connessione è scaricare l'elenco aggiornato dei moduli consigliati in base al paese del negozio e l'elenco dei moduli contrassegnati come «indispensabili» (must-have). I dati scaricati vengono salvati localmente nella cartella /config/xml/ in due file:
  • default_country_modules_list.xml – l'elenco dei moduli consigliati per un dato paese,
  • must_have_modules_list.xml – l'elenco dei moduli ritenuti da PrestaShop fondamentali per ogni negozio.
Questi file vengono letti dalla dashboard del back-office e mostrati nella sezione «Moduli consigliati». La funzione era utile nell'epoca dello sviluppo attivo di PrestaShop 1.6, quando l'ecosistema dei moduli veniva aggiornato di continuo. Oggi, più di dieci anni dopo l'uscita di questa versione, il meccanismo è diventato solo una fonte di problemi.

Perché in PrestaShop 1.6 compaiono errori XML?

Gli errori non derivano da un problema del negozio stesso né del database. La loro vera causa è semplice: PrestaShop cerca di scaricare un file XML da un server esterno, ma invece di un XML valido riceve una pagina HTML – più spesso una pagina di errore 404 o 503, oppure un reindirizzamento. Succede perché l'API di PrestaShop per la versione 1.6 è da tempo instabile o non disponibile – questa versione non è più supportata ufficialmente dal produttore. Il parser XML di PrestaShop cerca poi di elaborare questo HTML come XML, il che si conclude con una valanga di messaggi di errore di sintassi:
  • Opening and ending tag mismatch – i tag HTML come <head>, <p>, <link> non sono XML valido,
  • EntityRef: expecting ';' – i caratteri speciali in HTML (ad es. & negli attributi) mandano in errore il parser XML,
  • Specification mandates value for attribute async – gli attributi booleani di HTML5 come async o selected non hanno un valore, cosa inammissibile in XML,
  • Premature end of data – il parser XML ha incontrato la fine di un documento inatteso.
A ogni caricamento della dashboard il negozio invia una richiesta all'API esterna, riceve HTML invece di XML e segnala decine di errori. Questi errori sono del tutto innocui per il funzionamento del negozio lato clienti – non influiscono sul processo di acquisto, sui prezzi, sulle giacenze né sulla SEO del frontend. Sono solo un problema visibile nel back-office dell'amministratore.

Come correggere gli errori XML in PrestaShop 1.6 – istruzioni passo passo

La soluzione si compone di due passaggi da eseguire via FTP. L'intero procedimento richiede meno di 5 minuti. Prima di iniziare, scarica sul computer locale una copia di backup del file classes/Tools.php.

Passaggio 1 – disattiva la comunicazione con l'API Addons nel file Tools.php

Via FTP apri il file classes/Tools.php. Alla fine del file trova la riga:
protected static $is_addons_up = true;
Cambia il valore true in false:
protected static $is_addons_up = false;
Salva il file e caricalo via FTP. Questa modifica fa sì che il metodo addonsRequest() restituisca subito false, senza alcun tentativo di connessione all'API esterna – il problema viene eliminato alla radice.

Passaggio 2 – elimina i file XML danneggiati

Via FTP vai nella cartella /config/xml/ ed elimina due file:
  • default_country_modules_list.xml
  • must_have_modules_list.xml
Non eliminare gli altri file XML in questa cartella – servono al corretto funzionamento del negozio. Dopo aver eseguito entrambi i passaggi, al successivo caricamento della dashboard del back-office tutti gli errori XML dovrebbero scomparire completamente.

Quali sono le conseguenze della disattivazione di addonsRequest in PrestaShop?

È la domanda che si pone ogni amministratore dopo aver applicato questa correzione. La risposta è semplice: le conseguenze per un negozio in funzione sono minime. Cosa smette di funzionare dopo aver impostato $is_addons_up = false:
  • La sezione «Moduli consigliati» nella dashboard – non mostrerà l'elenco dei moduli consigliati da PrestaShop Addons,
  • La sezione «Must-have modules» – l'elenco dei moduli indispensabili non verrà scaricato,
  • I suggerimenti automatici di moduli durante la configurazione – l'installer non proporrà estensioni dal marketplace.
Cosa continua a funzionare normalmente:
  • Tutti i moduli installati – funzionano senza alcuna modifica,
  • L'installazione manuale dei moduli tramite BO o FTP – invariata,
  • Acquisti, carrello, pagamenti, spedizione – assolutamente invariati,
  • SEO e indicizzazione da parte di Google – nessun impatto,
  • L'intero front-end del negozio – invariato.
Vale la pena ricordare che PrestaShop 1.6 non è più supportato ufficialmente dal produttore e che l'ecosistema Addons per questa versione è residuale. La maggior parte degli amministratori comunque non usa i consigli sui moduli mostrati nella dashboard. La disattivazione di questa funzione non ha alcun significato pratico per la gestione quotidiana del negozio. Se un giorno deciderai di aggiornare PrestaShop a una versione 1.6.x più recente, il file classes/Tools.php verrà sovrascritto con la versione originale. Conviene annotare questa modifica nella documentazione tecnica del negozio, per ricordarsi di applicarla di nuovo.

Backup prima della modifica – un obbligo, non un'opzione

Prima di qualsiasi intervento sui file di PrestaShop bisogna sempre fare un backup. In questo caso l'ambito minimo del backup è il file classes/Tools.php – scaricalo via FTP sul computer locale prima di modificarlo. Se qualcosa va storto durante il salvataggio o il caricamento, hai il file originale a portata di mano e puoi ripristinarlo subito. È anche buona pratica avere una copia aggiornata dell'intero database del negozio – indipendentemente dai lavori tecnici eseguiti. Gli errori XML nel pannello di amministrazione di PrestaShop 1.6 legati ai file country_module_list.xml e must_have_modules_list.xml sono un problema classico dovuto all'indisponibilità dell'API esterna addons.prestashop.com per questa versione del software. Il negozio scarica HTML invece di XML e non riesce a elaborarlo, riempiendo la dashboard di decine di messaggi di errore. La soluzione si riduce a due semplici azioni via FTP: cambiare un valore in classes/Tools.php da true a false ed eliminare due file XML danneggiati dalla cartella /config/xml/. La disattivazione del meccanismo addonsRequest non influisce su vendite, SEO né sul funzionamento dei moduli installati – l'unica funzionalità persa è la visualizzazione dei consigli sui moduli dal marketplace, che comunque quasi nessuno usa nei negozi basati sulla versione 1.6. Se non ti senti sicuro nella modifica dei file PHP o preferisci affidarti a uno specialista, eseguirò volentieri questa correzione per te. Il costo del servizio è di 46 € netti. AJIT Adam Jasiński Tel.: 728 658 005 E-mail: ajit@ajit.pl

Get notified about new articles

Subscribe by e-mail or turn on browser notifications — we only send new blog posts, nothing else.

Commenti

Nessun commento in questo momento!

Lascia il tuo commento

Domenica Lunedi Martedì Mercoledì Giovedi Venerdì Sabato Gennaio Febbraio Marzo Aprile Può Giugno luglio Agosto Settembre Ottobre Novembre Dicembre