Offerta di lancio

Licenza Founders: aggiornamenti per almeno 2 anni

149 €pagamento unico, IVA esclusa

Una licenza Shop normale costa 199 €.

Per le prime 100 licenze Shop, fino al 10 dicembre 2026. Aggiornamenti e nuove conoscenze del Consulente per almeno 2 anni, senza rinnovo. Una licenza Shop normale: 12 mesi.

Ottieni Founders a 149 €

Impossibile installare override in PrestaShop: un conflitto tra override e come risolverlo

Il messaggio «Unable to install override» («Impossibile installare l'override») in PrestaShop significa che il modulo che installi vuole sovrascrivere un metodo che un altro modulo, o un vecchio file nella cartella override, sovrascrive già. PrestaShop non unisce da solo due override, quindi ferma l'installazione. La soluzione è togliere l'override orfano o unire a mano il codice dei due moduli, con i backup.

Autore: Il team TellMyShop. Una guida per i titolari di negozi PrestaShop: la causa, la correzione a mano e lo stesso lavoro in una conversazione in chat.
Ultimo aggiornamento: · 7 min di lettura

Da dove nasce un conflitto tra override?

Un override è un file con cui un modulo sostituisce una parte del funzionamento di PrestaShop, per esempio il modo in cui si calcola il costo di spedizione nel carrello. All'installazione PrestaShop copia quel file dalla cartella del modulo nella cartella override del negozio. Alla disinstallazione lo toglie da lì.

Gli override sono esclusivi. Un metodo di una classe può avere una sola versione sostituita. La documentazione per sviluppatori di PrestaShop dice chiaramente che un modulo con un override può impedire ad altri moduli di cambiare lo stesso comportamento. Per questo il team di PrestaShop consiglia gli override solo nei propri moduli, mentre i moduli in vendita usano gli hook.

Le situazioni più comuni che finiscono con questo messaggio:

SituazioneCome riconoscerlaCosa di solito aiuta
Due moduli cambiano lo stesso metodoil messaggio indica classe e metodo, e override contiene un file con quel metodo di un altro modulounire il codice dei due override in un solo file, o rinunciare a un modulo
Un override lasciato da un vecchio moduloil modulo non è nell'elenco, ma il file in override ha ancora il suo codicetogliere il metodo orfano dal file, con un backup
Reinstallazione dello stesso moduloil modulo è stato disinstallato con un errore e non ha fatto puliziatogliere i residui, poi installare di nuovo
Una modifica a mano di anni faun file in override senza commento su un modulo, nessuno ricorda da dove vienescoprire dallo sviluppatore precedente cosa fa prima di toccare qualcosa
Una vecchia cache delle classil'errore torna dopo aver tolto l'overridesvuotare la cache del negozio

Il produttore polacco di moduli PrestaShow descrive lo stesso schema nella sua base di conoscenza (in polacco): rinomina il file esistente, installa il modulo, poi unisci a mano i due file. Consiglia anche di attivare la modalità manutenzione per quel tempo.

Come risolvere «Unable to install override» passo per passo

È un lavoro per il tuo sviluppatore. Qui sotto c'è un elenco che puoi passargli. Ogni passaggio parte da un backup, perché i file in override cambiano il funzionamento di tutto il negozio.

  1. Salva il messaggio completo. Ti servono il nome della classe e del metodo. Senza, lo sviluppatore va a tentativi.
  2. Fai un backup del database e della cartella override. Meglio tutto il negozio, o almeno quella cartella e la cartella del modulo che stai installando.
  3. Trova il file che sovrascrive già questo metodo. Per la classe Cart di solito è override/classes/Cart.php. I moduli lasciano spesso sopra il metodo un commento con il nome del modulo e la data di installazione.
  4. Controlla se il modulo proprietario è nel negozio. Se non c'è, il metodo è orfano e si può togliere dal file. Se c'è, il codice dei due moduli va unito in modo che funzionino entrambi.
  5. Svuota la cache. In Parametri avanzati → Prestazioni c'è un pulsante per svuotare la cache. PrestaShop ricostruisce allora l'elenco delle classi con override.
  6. Installa di nuovo il modulo e controlla il carrello, la consegna o quello che l'override tocca. Fai un ordine di prova.

Quando cerchi il colpevole, aiuta l'interruttore «Disattiva tutti gli override» in Parametri avanzati → Prestazioni. La documentazione funzionale di PrestaShop lo descrive come l'interruttore per tutti gli override di classi e controller. Agisce su tutto il negozio, quindi usalo per poco, meglio su una copia di prova.

Cosa non fare quando un modulo non si installa

Alcune scorciatoie che trasformano un messaggio in un problema più grande:

  • Eliminare un file da override alla cieca. Il modulo che l'ha aggiunto smette di funzionare senza nessun messaggio. A volte si tratta del costo di spedizione o di uno sconto nel carrello.
  • Copiare un metodo da un file all'altro senza leggerlo. Due versioni dello stesso metodo in una classe sono un errore PHP e una schermata bianca.
  • Modificare i file nella cartella del modulo. Le modifiche spariscono quando il modulo si aggiorna, e il conflitto torna.
  • Lasciare gli override disattivati per sempre. I moduli che ne hanno bisogno funzionano allora a metà.

Se dopo l'installazione è comparso un errore 500, leggi la guida all'errore 500 di PrestaShop. Il messaggio di errore lo trovi dopo aver attivato la modalità debug.

Come può aiutare la chat uno sviluppatore con un conflitto tra override?

La tua chat (Claude o ChatGPT) con il modulo TellMyShop legge il negozio come farebbe uno sviluppatore al primo incontro. Nel gratuito TellMyShop Free vede l'elenco dei moduli con le versioni e il log degli errori del negozio, quindi aiuta a capire quando è iniziato il problema. Solo TellMyShop Pro legge i file di override e dei moduli, senza bisogno di interruttori.

Tu: L'installazione del modulo di consegna finisce con Unable to install override, metodo getOrderShippingCost nella classe Cart. Cosa faccio?

La tua chat: In override/classes/Cart.php il metodo getOrderShippingCost è sovrascritto dal modulo della spedizione gratuita. Quel modulo è installato e attivo. Il nuovo modulo vuole sovrascrivere lo stesso metodo. Ti propongo di unire le due versioni: prima calcola il nuovo modulo, e la soglia di spedizione gratuita funziona come adesso. Anteprima della modifica nel file:

Per salvare un file nella cartella override serve l'interruttore Manutenzione. Prima di salvare faccio una copia del file. Ti mostro il codice completo da far controllare al tuo sviluppatore?

Stato della scheda: in attesa del tuo «sì»
anteprima della modifica

versione precedente: public function getOrderShippingCost(...) { /* versione del modulo spedizione gratuita */ }

nuova versione: public function getOrderShippingCost(...) { /* versione unita: nuovo modulo + soglia spedizione gratuita */ }

Illustrazione: prodotti, numeri e risposte sono esempi.

Nomi dei moduli e codice dell'esempio sono illustrativi. In una conversazione reale la chat mostra il codice completo del metodo, non un riassunto.

Cosa richiede ogni passaggio:

  • Leggere i file di override e dei moduli funziona subito in TellMyShop Pro, per i file di testo fino a 1 MB.
  • Cambiare un file nella cartella di un modulo richiede l'interruttore Moduli, che dura 24 ore.
  • Cambiare un file nella cartella override del negozio rientra nell'interruttore Manutenzione. Dà pieno accesso tecnico, quindi si spegne da solo dopo 3 ore.
  • Reinstallare un modulo da un pacchetto ZIP richiede di nuovo l'interruttore Moduli.

Puoi accendere entrambi gli interruttori solo quando c'è un backup del database riuscito dello stesso giorno. Prima di salvare un file ne viene fatta una copia, e i file PHP vengono controllati per gli errori di sintassi. Ogni modifica la vedi prima in anteprima, viene salvata dopo il tuo «sì» e finisce nella cronologia delle modifiche. Puoi annullare la maggior parte delle modifiche, compreso un file ripristinato dalla sua copia. La disinstallazione di un modulo non si annulla, quindi la chat propone prima di disattivarlo.

Per correttezza: quando si unisce il codice di due moduli, la chat mostra la causa e una bozza di correzione, ma la decisione se il metodo unito fa quello che si aspettano entrambi i moduli spetta allo sviluppatore o all'autore del modulo. Un esempio simile lo trovi nel caso d'uso correggere un bug nel codice di un modulo, e la lettura del log nel caso d'uso messaggi di errore dopo l'aggiornamento di un modulo.

Come evitare conflitti con i moduli futuri?

Prima di comprare un modulo, chiedi all'autore se usa override e, se sì, per quali classi. I moduli costruiti sugli hook entrano in conflitto più di rado. Durante l'installazione segui l'ordine della guida su come installare un modulo PrestaShop, e disattiva i moduli inutilizzati invece di eliminarli finché non sei sicuro che niente dipenda da loro.

Prima di mettere ordine nei moduli puoi controllare il negozio con il gratuito TellMyShop Free. Lettura completa dei file e salvataggio con backup funzionano in TellMyShop Pro; i prezzi sono nei prezzi.

Domande e risposte

Cosa significa esattamente il messaggio Unable to install override?

PrestaShop prova a copiare il file di override del modulo che stai installando nella cartella override del negozio e trova un metodo che un altro file cambia già. Due moduli non possono sovrascrivere lo stesso metodo della stessa classe, quindi l'installazione si ferma. Di solito il messaggio indica la classe e il metodo, per esempio Cart e getOrderShippingCost.

Questo errore rompe un negozio che funziona già?

Di solito no. L'installazione del nuovo modulo non va a termine, e il negozio funziona come prima del tentativo. I guai iniziano quando qualcuno prova ad aggirare il problema con la forza, per esempio eliminando un file dalla cartella override senza controllare di chi è.

Posso semplicemente eliminare il file dalla cartella override?

Solo quando sai che appartiene a un modulo che non è più nel negozio. Se il file appartiene a un modulo funzionante, quel modulo smetterà di fare ciò per cui serve, per esempio calcolare la consegna a modo suo. Prima controlla quale modulo ha aggiunto l'override e fai una copia del file.

TellMyShop risolve da solo il conflitto tra override?

Con TellMyShop Pro la chat legge entrambi gli override, indica il metodo in conflitto e prepara un file unito in anteprima. Salvare un file nella cartella override richiede di accendere l'interruttore Manutenzione per 3 ore, e prima del salvataggio viene fatta una copia del file. La decisione su come unire il codice di due moduli conviene comunque lasciarla a uno sviluppatore o all'autore del modulo.

PrestaShop è un marchio registrato di PrestaShop SA. Claude è un marchio di Anthropic PBC. ChatGPT e OpenAI sono marchi di OpenAI. TellMyShop non è affiliato a queste aziende.

Controlla gratis il tuo negozio

TellMyShop Free analizza il tuo negozio e mostra i problemi, dai più importanti. Non salva nulla.

Controlla se il tuo negozio è pronto

Scrivi l’indirizzo del tuo negozio. In pochi secondi vedrai la piattaforma e se TellMyShop funzionerà.

Controlliamo l’indirizzo, l’HTTPS e la piattaforma. Non installi nulla e non salviamo l’indirizzo.

iltuonegozio.itRisultato di esempio
Il negozio risponde
sì
HTTPS
attivo
Piattaforma
PrestaShop 8.1
TellMyShop funzionerà

Leggi anche

Free a 0 €, legge e consiglia

Scarica Free