Il tuo negozio passa a PrestaShop 9, ma un modulo non è più aggiornato dal suo sviluppatore. Dovresti farlo aggiornare o ricostruire? Abbiamo aggiornato decine di moduli scritti per PrestaShop da 1.5 a 8. In questo articolo troverai i segnali che analizziamo, un rapido test di autovalutazione e cosa comporta ciascuna opzione per il tuo negozio.
Perché i vecchi moduli si bloccano su PrestaShop 9
PrestaShop 9 rappresenta un passo più importante rispetto alla maggior parte degli aggiornamenti di versione. Un modulo che funzionava perfettamente su 1.7 o 8 può bloccare l'installazione, danneggiare una pagina o, nel peggiore dei casi, compromettere l'intero back-office. Le cause sono quasi sempre le stesse:
- Una versione di PHP più recente. PrestaShop 9 richiede PHP 8.1 o superiore. Il codice scritto per PHP 5 o 7 incontra tipi più rigorosi, funzioni rimosse e avvisi che sono diventati errori.
- Un Symfony più recente. PrestaShop 9 gira su Symfony 6.4 (PrestaShop 8 su Symfony 4.4). I moduli che utilizzano servizi, form o rotte Symfony della vecchia versione devono essere adeguati.
- Metodi e costanti del core rimossi. Funzioni deprecate da anni, come
Tools::displayPrice()oajaxDie(), sono state eliminate. Un modulo che continua a richiamarle fallisce non appena quel codice viene eseguito. - Librerie non più integrate. I moduli più vecchi a volte dipendono da librerie che PrestaShop includeva nativamente, come Guzzle 5 o SwiftMailer. Su PrestaShop 9 semplicemente non sono presenti.
- Override di classi modificate. Un override sostituisce parte di una classe del core. Quando quella classe cambia, l'override può rompere il negozio o annullare silenziosamente una correzione.
Scopri di più sui cambiamenti leggendo PrestaShop 9: le novità e PrestaShop 9.2.
Un aggiornamento di solito è sufficiente quando
- il modulo si installa e funziona correttamente su PrestaShop 1.7 o 8;
- i problemi riguardano metodi e costanti rimossi (come
Tools::displayPrice()oajaxDie()); - il modulo mantiene la propria logica nei suoi file e ha pochi override;
- i suoi template usano Smarty o Twig in modo standard, permettendo alla parte grafica di rimanere inalterata;
- sei soddisfatto di ciò che fa il modulo e vuoi solo che continui a funzionare.
La maggior parte di queste correzioni è di natura meccanica: il modulo continua a fare esattamente la stessa cosa, viene aggiornato solo il codice richiamato. I moduli scritti per PrestaShop 1.5 e 1.6 spesso si aggiornano senza problemi. Impostazioni e dati rimangono al loro posto e il modulo mantiene l'aspetto e il funzionamento precedenti.
Valuta la ricostruzione quando
- il modulo genera molto HTML in PHP e lo stampa senza escaping: renderlo sicuro significa spostare l'intera interfaccia grafica nei template;
- effettua l'override di diverse classi del core i cui metodi sono cambiati in PrestaShop 9;
- dipende da un altro modulo non aggiornato (ad esempio un modulo di pagamento di base);
- include vecchie librerie che PrestaShop 9 non supporta più, come Guzzle 5 o SwiftMailer;
- è molto voluminoso e deve anche superare il PrestaShop Validator;
- desideri comunque nuove funzionalità e modificheresti gran parte del codice a prescindere.
Ricostruire un modulo non significa che sia difettoso. A volte il codice è cresciuto nel corso degli anni in modo tale che un aggiornamento pulito richiede più lavoro rispetto a partire da un design chiaro.
Rapido test di autovalutazione
| Cosa riscontri | Suggerisce |
|---|---|
| Il modulo funziona su PrestaShop 8 e si blocca solo sul 9 | Aggiornamento |
| Gli errori menzionano un metodo o una classe rimossi | Aggiornamento |
| Il modulo non ha override o ne ha pochissimi | Aggiornamento |
| Le pagine del modulo sono create come stringhe HTML in PHP | Ricostruzione o aggiornamento importante |
| Diversi override di classi del core | Ricostruzione o aggiornamento importante |
| Richiede un altro modulo sprovvisto di versione per PrestaShop 9 | Analizzare prima quel modulo |
| Vuoi modificare le funzionalità del modulo | Ricostruzione |
Questi sono indicatori, non regole assolute. Un modulo potrebbe soddisfare un criterio di ricostruzione ed essere comunque aggiornato senza problemi. Per questo motivo effettuiamo sempre un test prima di formulare un preventivo.
Cosa verificare prima di decidere
- Chiedi prima allo sviluppatore. Controlla la pagina del modulo o PrestaShop Addons: potrebbe esserci già una versione per PrestaShop 9.
- Elenca le funzioni che il modulo svolge per te. Quali funzioni utilizzi realmente? Una ricostruzione può eliminare il superfluo.
- Controlla le dipendenze. Il modulo richiede un altro modulo, una funzionalità del tema o un servizio esterno?
- Verifica gli override. Nel back-office alla voce Parametri avanzati > Informazioni puoi vedere se sono attivi degli override.
- Pianificalo insieme all'aggiornamento del negozio. Se l'intero negozio passa a PrestaShop 9, testa tutti i moduli insieme su una copia di test. Scopri come affrontiamo questo processo nel nostro servizio di aggiornamento PrestaShop.
Cosa facciamo noi
Quando ci invii un modulo, lo testiamo prima in un ambiente PrestaShop 9.2 isolato e ti forniamo un preventivo basato sui risultati. Se un modulo risulta più idoneo a essere ricostruito, te lo comunichiamo prima del pagamento. Fai aggiornare il tuo modulo oppure chiedici di verificarlo.