PrestaShop 1.6 e 1.7: errore XML nel pannello di amministrazione must_have_modules_list.xml, modules_native_addons.xml - causa e soluzione

PrestaShop 1.6 / 1.7 – Errori XML nel pannello di amministrazione – causa e soluzione

File problematici: must_have_modules_list.xml, modules_native_addons.xml

Recentemente, nei negozi PrestaShop 1.6 e 1.7 hanno iniziato a comparire errori nel pannello di amministrazione relativi ai file XML, ad esempio:

Error found : Start tag expected, '<' not found in must_have_modules_list.xml file
Error found : Start tag expected, '<' not found in default_country_modules_list.xml file
Error found : Start tag expected, '<' not found in modules_native_addons.xml file

Il problema deriva dalla comunicazione tra il pannello di amministrazione e l'API PrestaShop Addons e, nella maggior parte dei casi, non influisce sul funzionamento del negozio dal punto di vista dei clienti, ma può causare problemi nel pannello di amministrazione.

Da dove provengono questi file XML?

Il problema deriva dalla comunicazione tra il pannello di amministrazione e l'API PrestaShop Addons e, nella maggior parte dei casi, non influisce sul funzionamento del negozio dal punto di vista dei clienti, ma può causare problemi nel pannello di amministrazione.

PrestaShop scarica periodicamente dall'API Addons gli elenchi dei moduli e li salva localmente nella directory:

config/xml/

File più importanti

## must_have_modules_list.xml
Lista polecanych modułów z marketplace PrestaShop.

## default_country_modules_list.xml
Lista modułów sugerowanych dla danego kraju.

## modules_native_addons.xml
Lista modułów natywnych dostępnych w PrestaShop Addons.

Questi file vengono utilizzati principalmente nel pannello di amministrazione nella sezione Modules → Module Manager.

PrestaShop li utilizza per:

  • visualizzare i moduli consigliati
  • contrassegnare i moduli come "must have"
  • integrarsi con il marketplace Addons
  • presentare i moduli nativi

Documentazione:
https://devdocs.prestashop-project.org/8/modules/

Perché compare questo errore?

Le versioni precedenti di PrestaShop si aspettano che l'API Addons restituisca i dati in formato XML.
Attualmente può capitare che gli endpoint API:

  • siano temporaneamente non disponibili
  • restituiscano errori
  • restituiscono una risposta in un formato diverso (ad es. JSON)
  • restituiscano una risposta incompleta

Richiesta di esempio:

https://api.addons.prestashop.com/?version=1.6.1.24&method=listing&action=must-have

Se la risposta non è un XML corretto, il parser di PrestaShop (`simplexml_load_string`) segnala un errore:

Start tag expected, '<' not found

Documentazione del parser XML PHP:
https://www.php.net/manual/en/...

Quali sono i sintomi del problema?

Oltre ai messaggi XML nel pannello di amministrazione, il problema può causare anche:

  • mancanza di risultati nel motore di ricerca
  • problemi con il filtraggio dei moduli
  • elenchi di moduli incompleti
  • caricamento più lento della pagina Moduli
  • errori durante la navigazione nel marketplace Addons

Il problema riguarda esclusivamente la sezione di gestione dei moduli. Non influisce su ordini, prodotti, clienti, pagamenti, carrello e frontend del negozio.

Soluzione rapida

La soluzione più semplice consiste nel sostituire il contenuto dei file problematici con un XML minimale e corretto. Accedi tramite SSH o FTP a:

config/xml/

E sostituisci il contenuto dei file con i valori indicati sotto il nome del file:

## must_have_modules_list.xml:

<?xml version="1.0" encoding="UTF-8"?>
<modules/>

## default_country_modules_list.xml:

<?xml version="1.0" encoding="UTF-8"?>
<modules/>

## modules_native_addons.xml:

<?xml version="1.0" encoding="UTF-8"?>
<modules/>

Per il futuro – come impedire la sovrascrittura dei file

La semplice sostituzione dell'XML di solito risolve immediatamente il problema, ma vale la pena ricordare che PrestaShop potrebbe tentare nuovamente di scaricare e aggiornare questi file in futuro. Hai due approcci pratici.

Opzione 1 – blocco della scrittura sui file

Puoi impostare i file in sola lettura. Si tratta di una soluzione semplice e veloce, ma si basa comunque sul fatto che PrestaShop tenterà di eseguire l'aggiornamento, ma non sarà in grado di sovrascrivere i file. Esegui questa operazione tramite SSH o manualmente in un programma FTP:

chmod 444 config/xml/must_have_modules_list.xml
chmod 444 config/xml/default_country_modules_list.xml
chmod 444 config/xml/modules_native_addons.xml

Opzione 2 – override della classe Tools

Una soluzione più elegante consiste nel disabilitare il controllo dell'API Addons tramite l'override della classe Tools.

File:

override/classes/Tools.php

Esempio di override:

php
class Tools extends ToolsCore
{
protected static $is_addons_up = false;
}

Questo fa sì che PrestaShop:

  • non tenti di connettersi all'API Addons
  • non scarichi nuovamente questi XML
  • non generi errori correlati

Documentazione sull'override:
https://devdocs.prestashop-pro...

Dopo aver aggiunto l'override, è necessario svuotare la cache - farlo manualmente o tramite SSH:

PS 1.7:

rm -rf var/cache/*

PS 1.6:

rm -rf cache/class_index.php

Cosa perdiamo disattivando l'API Addons?

In pratica, la maggior parte dei negozi in produzione installa comunque i moduli manualmente, quindi la perdita di questa funzione di solito non ha importanza.

Non funzionerà:

  • l'elenco dei moduli consigliati
  • marketplace nel pannello
  • suggerimenti sui moduli
  • contrassegni "must have"
  • visualizzazione degli Addons dall'amministratore

Funziona ancora:

  • installazione dei moduli da ZIP
  • installazione manuale dei moduli
  • aggiornamenti dei moduli
  • intero negozio
  • gli ordini
  • checkout

Riepilogo

Il problema deriva dalla comunicazione tra la vecchia versione di PrestaShop e l'API Addons. Fatti salienti:

  • non si tratta di un problema del server
  • non è un problema di configurazione del negozio
  • non si tratta di malware
  • non influisce sulle vendite
  • riguarda esclusivamente il pannello dei moduli

La soluzione migliore:

  1. Modificare l'XML
  2. Disattivare l'API Addons

Raccomandazione

Se il negozio funziona in modo stabile, è possibile applicare in tutta sicurezza la soluzione alternativa sopra indicata. Se il negozio funziona ancora su PrestaShop 1.6 o sulla vecchia versione 1.7, vale anche la pena considerare:

  • aggiornare a una versione più recente
  • un audit tecnico
  • l'aggiornamento dei moduli
  • ottimizzazione delle prestazioni

In ciascuno dei casi sopra indicati, non esitate a contattarci, saremo lieti di aiutarvi! :-)

Commenti (0)
da 0