Il 26 ottobre 2022 è stata rilasciata la versione 8.0.0 di PrestaShop. Dopo sette mesi dal rilascio è giunto il momento di recensire questa versione e le novità che introduce, come avevo già anticipato con il rilascio della versione beta ad agosto 2022. Sostanzialmente la versione 8.0.4 attuale è a mio avviso stabile e pronta per i siti in produzione, la maggioranza dei moduli sono stati finalmente aggiornati anche a PHP 8.0 permettendoci di abbandonare la precedente versione 7.4 per la quale il supporto è cessato il 22 novembre 2022, e quindi potenzialmente un rischio per la sicurezza.

Prima di iniziare il confronto con la versione 1.7.8.X e parlare delle differenze è importante chiarire quante versioni di PrestaShop 8.0.X esistono.

Perché ci sono più versioni di PrestaShop 8?

Nei social leggo molta confusione e dibattiti, eppure non è un’esclusiva di PrestaShop, anche altri CMS open source sono distribuiti in modo analogo come per esempio WordPress, che offre tre versioni di cui una a pagamento (vedi: https://wordpress.com/it/support/com-vs-org/). Pure Matomo Analytics (che vi invito a provare con il nostro modulo: qui come alternativa a GA4) offre due versioni, una scaricabile e installabile su un proprio hosting e una in cloud a pagamento. 

La vera anomalia in realtà era la situazione precedente che vedeva la sola versione brandizzata PrestaShop SA, contenente collegamenti a servizi a pagamento presenti su PrestaShop Addons. Molti potenziali sviluppatori non si avvicinavano al progetto essendo troppo commerciale, e pure alcune Web Agency potevano trovare non gradite le offerte commerciali a moduli e servizi dei concorrenti o rilasciati direttamente da PrestaShop SA nel back-end del CMS. Con l’acquisizione di PrestaShop SA da parte del gruppo MBE (di cui avevo parlato: qui) è stata corretta questa anomalia, ora il progetto è gestito da un team dedicato e aperto a membri esterni (una soluzione ibrida che in futuro potrebbe portare a una fondazione)  ed esiste una versione non brandizzata e priva di pubblicità della piattaforma ecommerce.

Questa decisione crea maggiori garanzie a sviluppatori, agenzie e utenti finali e crea nuove opportunità di crescita per il progetto, questo soprattutto dopo il travagliato passaggio dalla versione 1.6 alla versione 1.7 che inizialmente ha creato diversi problemi sfociati anche in un progetto derivato quale Thirty BeesVoglio subito tranquillizzare tutti, passare dalla 1.7.8.X alla 8.0 di PrestaShop non è traumatico, sono versioni molto simili, la versione 8 in sostanza è una versione ottimizzata, potrebbe essere intesa come una versione 1.7.9.X.

L’upgrade di versione da 1.7.8 a 8 è più semplice anche di quello che fu il passaggio da 1.5 a 1.6.

Quante versioni di PrestaShop 8 esistono?

Attualmente per il mercato italiano esistono due versioni, forse in futuro arriverà una terza versione che è attualmente solo sul mercato francese ovvero la PrestaShop Edition, una versione chiavi in mano fornita direttamente da PrestaShop; anche qui nulla di nuovo, in passato esisteva una versione simile che non ebbe un grade successo ed sparita con l’avvento della versione 1.7 senza suscitare nessuna nostalgia.

Quindi attualmente abbiamo:

  • Versione non brandizzata disponibile su GitHub
  • Versione brandizzata scaricabile da prestashop.com denominata PrestShop Basic Edition

In futuro dovrebbe arrivare anche una versione PrestaShop Edition che includerà hosting e assistenza diretta da parte di PrestaShop SA a pagamento. Qui trovate la versione per il mercato francese.

Quindi le versioni probabilmente diventeranno tre, come è per WordPress.

Le due versioni sono praticamente identiche, differiscono nel pacchetto di moduli incluso, la versione Basic Edition contiene attualmente i seguenti moduli in più:

  • Merchant Expertise: completamente inutile a mio avviso
  • PrestaShop Account: necessario per associare il proprio eshop con PrestaShop Addons
  • PrestaShop Checkout: un ottimo modulo di pagamento per integrare PayPal su PS
  • PrestaShop EventBus: un modulo necessario ai moduli facebook, google e metrics
  • PS Facebook: modulo molto utile e gratuito per la gestione delle campagne FB
  • PrestaShop Marketplace in your Back Office: praticamente pubblicità dei moduli addons
  • PrestaShop Metrics: in sostanza per integrare in BO le statistiche di Google Analytics
  • Marketing with Google: un buon modulo per collegarsi a GMC e gestire le campagne social, ne ho parlato qui.
  • MBE eShip Plugin: questo è un modulo che profetizzavo dopo l’acquisizione di PrestaShop SA da parte di MBE, purtroppo non ho avuto modo ancora di valutarlo.

Un confronto diretto tra le due versioni mostra perfettamente che le differenze sono solo nei moduli inclusi.

PrestaShop 8 confronto

È palese che partendo da una qualsiasi di queste versioni è possibile installando e disinstallando i moduli passare da una versione all’altra. Quale versione usare, dipende, in alcuni casi la versione Basic Edition integra piccole correzione di bug scoperti dopo il rilascio della versione GitHub, questo però perché esce semplicemente dopo la versione non brandizzata. 

Per esempio, la 8.0.4 Basic Edition ha una piccola correzione al file AdminController.php che sarà introdotta nella versione 8.0.5 non brandizzata.

Correzioni PrestaShop 8.0.4 Basic Edition

Quali differenze con la versione 1.7.8.9

Modulo Marketplace

Le versioni 1.7 principalmente sono come la Basic Edition, ma a differenza di quest’ultima se voleste togliere i collegamenti verso il Marketplace e le offerte commerciali dovreste mettere mano direttamente al codice. Con la versione 8 semplicemente disinstallate i moduli relativi. In entrambe le versioni gli aggiornamenti dei moduli inclusi nella versione non brandizzata, sono gestiti ora da un modulo: Client API di distribuzione e pure qui, in caso di problemi di collegamento possiamo semplicemente disattivarlo.

Vi è anche maggiore trasparenza, il modulo PrestaShop Marketplace, per esempio, per installare i moduli che pubblicizza crea un utente super admin rendendo visibile (anche a chi non è esperto) che tipo di permessi d'accesso si forniscono a PrestaShop Addons per aggiornare e installare i moduli acquistati, con un semplice click.

Utente Super Admin Marketplace

In passato i collegamenti al Marketplace presenti in PrestaShop e non facilmente disattivabili, crearono diversi problemi di rallentamento nel Back-End. Oggi succede molto di rado per fortuna, ma nella versione 8.X basterà disattivare il modulo in caso si verifichi un incidente. Il nostro modulo Fast Back Office fu creato proprio per disabilitare il controllo degli aggiornamenti dei moduli quando, per un problema tecnico la risorsa api.addons.prestashop.com non era raggiungibile bloccando il back-end fino al time-out della chiamata e successivamente per un lungo periodo fu instabile e molto lenta.

Questa è in realtà la più importante novità, per il resto come già detto va considerata semplicemente una versione 1.7.9.X che introduce nuove caratteristiche, ottimizzazioni e il soprattutto il supporto a PHP 8.0 e al formato WebP. Le difficoltà di aggiornamento dei moduli da parte degli sviluppatori principalmente sono legate proprio alla migrazione da PHP 7.4 a PHP 8 tenendo la retrocompatibilità con la versione precedente. Questo può aver creato in molti sviluppatori un po’ di frustrazione, soprattutto perché con la versione 1.7 noi sviluppatori abbiamo dovuto mettere mano più volte ai nostri moduli per renderli compatibili con gli aggiornamenti di versione del CMS. Spesso risultava complesso o non praticabile rendere il modulo compatibile sia con le versioni precedenti che con le ultime e il passaggio dalla versione 1.6 alla 1.7, in alcuni casi per esempio con i plug-in di pagamento, ha reso necessario creare due versioni distinte con un aggravio di lavoro e quindi di costi.

Il passaggio a PHP 8 era necessario non solo per la sicurezza, ma anche perché tra le novità più importanti questa versione introduce due motori di compilazione JIT che praticamente promettono prestazioni notevolmente superiori sfruttando la compilazione Just In Time.

In futuro la versione PrestaShop 9 sarà compatibile minimo con PHP 8.1 permettendo a noi sviluppatori di sfruttare al massimo le novità introdotte da questa versione non dovendoci più preoccupare della retrocompatibilità.

Perché PrestaShop 8 e non 1.8?

Perché PrestaShop 8 e non 1.8?

L’1 delle precedenti versioni era un’eredità che non aveva però nessun significato semantico, per questo la nuova versione abbandona la vecchia numerazione aderendo allo standard 3-group, rendendo così più facile identificare le versioni e l’interoperabilità con il software di terze parti per esempio Composer.

Performance PrestaShop 1.7 vs PrestaShop 8.X

PrestaShop 8 è più reattiva rispetto alla versione 1.7 i tempi TTFB sono sotto i 200ms. Il miglioramento è apprezzabile attraverso load test con Siege, e un po' meno con GTmetrix o Lighthouse. Pure il back-end è più reattivo soprattutto nella versione GitHub senza collegamenti al Marketplace. In PrestaShop 8 anche template dotati di Elementor Page Builder quali WhareHouse ricevono un notevole boost prestazionale, proprio la dove i moduli come Page Cache Ultimate non operano essendo elementi non nativi creati con moduli di terze parti. 

Da segnalare che dal rebranding del sitoweb prestashop.com tutte le versioni PrestaShop hanno ricevuto un boost prestazionale, in quanto i collegamenti al Marketplace di PrestaShop sono migliorati, negli ultimi test ho rilevato in media un miglioramento di circa 100ms. Da parte di PrestaShop è stato fatto da questo punto di vista un ottimo lavoro.

Resta da analizzare se ci saranno cali prestazionali in momenti di maggior carico da parte dei server di PrestaShop. 

Il nostro test comparativo tra le versioni di PrestaShop

Premetto che si tratta di un test non approfondito e in situazione ideale, ho installato la versione pulita di PrestaShop 1.7.8.9, PrestaShop 8.0.4 GitHub e PrestaShop 8.0.4 Basic sul nostro server di sviluppo, la configurazione hosting è la medesima, a parte l'uso di PHP 7.4 al posto di PHP 8.1, nella versione 1.7.8.9. Su tutte le versioni sono stati aggiornati tutti i moduli e tutte sono state configurate nello stesso modo. Siamo lontani da un ambiente di produzione, non essendoci altri collegamenti esterni come per esempio alle API dei sistemi di pagamento per esempio PayPal, a Google GA4, GMC, GTM, Facebook ecc..

Il confronto è stato di proposito fatto sulla pagina prodotto, che è la più importante per un ecommerce, i test sull'homepage non hanno molto significato, i vostri clienti approdano sia da traffico organico che da campagne SEM sulla pagina di acquisto. Ed è su questa pagina che va posta la massima cura e attenzione. 

Test Comparativo PrestaShop 8 vs PrestaShop 1.7

Come si può notare la versione priva di collegamenti al MarketPlace di PrestaShop risulta leggermente più reattiva. Analizzando in dettaglio il caricamento si comprende che Proprio nel TTFB  (time to first byte) si riscontra il maggiore miglioramento. 

Tempi di caricamento PrestaShop 8 vs PrestaShop 1.7

La versione 1.7.8.9 risulta la più penalizzata, come segnalavo proprio nel tempo necessario per inviare al browser il primo byte, ovvero principalmente in fase di compilazione ed esecuzione del codice PHP. Nel test PrestaShop 1.7 ha impiegato 286ms contro i 170ms della versione 8.0.4 GitHub e 179ms della versione 8.0.4 Basic. Sono ottimi risultati per tutte e tre, Google ritiene buono un TTFB di 800ms, va però considerato che prima il server elabora le richieste e più richieste contemporanee potrà servire. 

Con il crescere della complessità dell'ecommerce e soprattutto in produzione, il divario tra la versione 8 e la versione 1.7 si fa più evidente, in quanto il vantaggio offerto da PHP 8.1 si fa sentire maggiormente la dove la compilazione Just In Time - dovendo macinare più codice - mostra realmente i muscoli e la cache smarty e opcache influiscono meno.

Load test con Siege

Ho eseguito sulle tre versioni un load test con Siege con 50 richieste concorrenziali per 20s, su un campione identico di pagine dell'ecommerce comprendente: la home, i prodotti, pagine CMS, categorie, ecc. Qui come accennavo si vedono le reali differenze la versione 8.0.4 distacca notevolmente la versione 1.7.6.9 riuscendo a servire molte più richieste contemporanee.

PrestaShop 8.0.4 GitHub
PrestaShop 8.0.4 GitHub
PrestaShop 8.0.4 Basic
PrestaShop 8.0.4 Basic
PrestaShop 1.7.8.9
PrestaShop 1.7.8.9

Le caratteristiche del server su cui si è eseguito il test sono le seguenti:

  • CPU Xeon D 2141l / 64GB di Ram / 2x500GB SSD Nvme, Banda Passante 1Gbps, ubicazione OVH Francia.
  • CentOS 7.9 e Plesk Obsidian 18.0.51 
  • Dedicate FPM servito da Apache e Nginx in reverse proxy.
  • MariaDB 10.5.20

Se volete testare in modo corretto il vostro sito web consultate la seguente guida: Come effettuare il  test delle Performance di PrestaShop 

Perché PrestaShop 8 è migliore di PrestaShop 1.7

  • Migliori Performance: prestazionalmente è notevolmente superiore sia in BE che FE.
  • Sicurezza: corregge diversi bug e offre la possibilità di usare PHP 8.
  • Open source company neutrality: ora PrestaShop è veramente open source, decideremo noi se integrare il marketplace e i servizi commerciali.
  • Security Page: possibilità di impostare il livello di sicurezza minimo per le password e gestione delle sessioni di clienti e dipendenti.
  • Supporto nativo dei formati SVG e WebP.
  • Aggiornamento della libreria Symfony alla 4.4 LTS. Una delle critiche che sentivo più spesso verso PrestaShop era l’uso di versioni datate del framework (la 1.7 usa la versione 3.4), ma questo è dovuto alla retrocompatibilità importantissima soprattutto quando si aggiorna da vecchie versioni; la versione 4.4 per esempio richiede minimo PHP 7.1, mentre la 5.4 già non è compatibile con PHP 7.2. L’ultima versione la 6.2 richiede mimino PHP 8.1.
  • Webservice: è ora possibile utilizzare il metodo PATCH non sarà più necessario fornire un XML completo della risorsa da aggiornare come con il metodo PUT, purché si fornisca “id”. Questo renderà molto più semplice l’integrazione per esempio con i gestionali.
  • DKIM signature: è possibile configurare nei parametri email la firma DKIM, utilissimo per evitare che l’email inviata da PrestaShop ai nostri clienti sia contrassegnata da SPAM, questo ci permette di aggiungere la firma anche tramite l’uso di servizi gratuiti come dkimcore.org.
  • SEO: la versione 8 introduce importantissime novità alcune attese da molto tempo, come la possibilità di impostare il codice “410 – Gone” al posto di “404 – Not Found” per indicare che il prodotto è stato cancellato, utilissimo soprattutto per gli ecommerce con centinaia di migliaia di prodotti, dove il Crawl Budget diventa un problema. Un'altra novità importante è l’aggiunta del numero di pagina nel Meta Title nelle categorie, nuovi prodotti, migliori vendite, ecc...
  • Nel BE è finalmente visibile nella gestione Categorie, Marchi, Fornitori il numero di prodotti presenti; questo facilita la gestione del catalogo potendo chiudere in sicurezza quelle pagine che non contengono prodotti.

Sembrano poche novità, ma in realtà sono una grande rivoluzione, e una buona base per lo sviluppo futuro del progetto che con la 1.7 si era arenato. Una critica a PrestaShop e MBE è comunque doverosa, in questi mesi di cambiamento e tutt’ora la comunicazione è stata carente. Spero che con il nuovo sito e il rebranding di PrestaShop SA migliori anche la comunicazione.

Fonti e approfondimenti:

Link al download di tutte le versioni di PrestaShop Basic. Utile nel caso serva riparare una vecchia installazione del CMS.

Link al download dell'ultima versione di PrestaShop Basic. Con tutti i moduli PrestaShop per iniziare a vendere online.

Link al download delle ultime versioni di PrestaShop GitHub. La versione non brandizzata della piattaforma ecommerce. 

Autore: Loris Modena

Loris Modena

SENIOR DEVELOPER

Per Ind Loris Modena titolare di Arte e Informatica, inizia a lavorare nel settore informatico nel 1989 quale sistemista addetto alla manutenzione e installazione di sistemi informatici. Inizia a programmare per il web nel 1997 occupandosi di programmazione CGI in PERL e successivamente passando alla programmazione in PHP e JavaScript. In questo periodo si avvicina al mondo Open source e alla gestione di server Linux. 

prodotto aggiunto alla lista