Come testare un modulo PrestaShop su staging prima di installarlo in produzione

406 visualizzazioni

Come testare un modulo PrestaShop su staging prima dell'installazione in produzione

Installare un modulo non testato su un negozio PrestaShop attivo è una delle cause più comuni di downtime, processi di checkout malfunzionanti e perdita di fatturato. Un ambiente di staging ti fornisce una sandbox sicura per validare ogni modulo prima che tocchi il tuo negozio di produzione. Questa guida ti accompagna attraverso l'intero processo - dalla creazione di una copia staging del tuo negozio ai test approfonditi del modulo e al deployment sicuro in produzione.

Perché hai bisogno di un ambiente di staging

Un ambiente di staging è una copia esatta del tuo negozio online che non è accessibile al pubblico. Rispecchia il tuo database di produzione, i file, il tema, la configurazione e i moduli installati. Testare su staging ti permette di individuare problemi che altrimenti colpirebbero i tuoi clienti.

Ecco cosa può andare storto quando salti lo staging:

  • Conflitti tra moduli - Il nuovo modulo potrebbe entrare in conflitto con un modulo esistente, causando schermate bianche, errori JavaScript o funzionalità malfunzionanti su pagine specifiche.
  • Incompatibilità del tema - I template del modulo potrebbero non renderizzare correttamente con il tuo tema, specialmente se usi un tema personalizzato o fortemente modificato.
  • Degradazione delle prestazioni - Alcuni moduli aggiungono query al database pesanti, file CSS/JS aggiuntivi o chiamate API esterne che rallentano i tempi di caricamento.
  • Corruzione del database - Moduli mal scritti possono modificare tabelle core, aggiungere colonne senza una corretta gestione delle migrazioni, o creare trigger che interferiscono con i dati esistenti.
  • Interruzione dei pagamenti - Se un modulo rompe il processo di checkout o interferisce con il tuo gateway di pagamento, perdi vendite dal momento dell'installazione fino alla scoperta e correzione del problema.

Opzione 1 - Configurazione manuale dello staging (sottodominio)

Questo è l'approccio più comune e funziona con qualsiasi provider di hosting. Crei un sottodominio come staging.tuonegozio.com e vi copi i file e il database di produzione.

Passo 1 - Creare il sottodominio

Nel tuo pannello di controllo hosting (cPanel, Plesk o DirectAdmin), crea un nuovo sottodominio. Puntalo a una nuova directory.

Passo 2 - Copiare i file di produzione

# Via SSH (metodo più veloce)
cp -r /home/tuouser/public_html/* /home/tuouser/staging.tuonegozio.com/

# O crea prima un archivio compresso
cd /home/tuouser/public_html
tar czf /tmp/prestashop-backup.tar.gz --exclude='var/cache' --exclude='var/logs' .
cd /home/tuouser/staging.tuonegozio.com
tar xzf /tmp/prestashop-backup.tar.gz

Passo 3 - Esportare e importare il database

# Esportare il database di produzione
mysqldump -u dbuser -p production_db > /tmp/production_dump.sql

# Creare il database staging
mysql -u root -p -e "CREATE DATABASE staging_db;"
mysql -u root -p -e "GRANT ALL ON staging_db.* TO 'dbuser'@'localhost';"

# Importare nello staging
mysql -u dbuser -p staging_db < /tmp/production_dump.sql

Passo 4 - Aggiornare la configurazione PrestaShop

# Editare app/config/parameters.php (PrestaShop 1.7+/8.x)
'database_name' => 'staging_db',

# Aggiornare l'URL del negozio nel database
mysql -u dbuser -p staging_db -e "
  UPDATE ps_shop_url 
  SET domain = 'staging.tuonegozio.com', 
      domain_ssl = 'staging.tuonegozio.com' 
  WHERE id_shop_url = 1;"

mysql -u dbuser -p staging_db -e "
  UPDATE ps_configuration 
  SET value = 'staging.tuonegozio.com' 
  WHERE name IN ('PS_SHOP_DOMAIN', 'PS_SHOP_DOMAIN_SSL');"

Passo 5 - Svuotare le cache

rm -rf var/cache/prod/* var/cache/dev/*
rm -rf var/cache/smarty/compile/* var/cache/smarty/cache/*

Passo 6 - Limitare l'accesso

AuthType Basic
AuthName "Accesso Staging"
AuthUserFile /home/tuouser/.htpasswd
Require valid-user

Header set X-Robots-Tag "noindex, nofollow"

Opzione 2 - Staging basato su Docker (Raccomandato per sviluppatori)

Docker fornisce l'ambiente di staging più affidabile perché puoi replicare esattamente la tua versione PHP di produzione, versione MySQL e configurazione del server.

# docker-compose.yml
version: '3.8'
services:
  prestashop:
    image: prestashop/prestashop:8.1
    ports:
      - "8080:80"
    volumes:
      - ./html:/var/www/html
    environment:
      - DB_SERVER=db
      - DB_NAME=prestashop
      - DB_USER=prestashop
      - DB_PASSWD=tua_password
    depends_on:
      - db
  db:
    image: mysql:8.0
    environment:
      - MYSQL_ROOT_PASSWORD=password_root
      - MYSQL_DATABASE=prestashop
      - MYSQL_USER=prestashop
      - MYSQL_PASSWORD=tua_password
    volumes:
      - db_data:/var/lib/mysql
volumes:
  db_data:

Checklist dei test per nuovi moduli

Fase 1 - Verifiche pre-installazione

  • Leggere la documentazione del modulo - Comprendi cosa fa il modulo, quali hooks usa e quali sono i suoi requisiti.
  • Controllare il contenuto dei file - Prima dell'installazione, decomprimi il modulo e controlla il codice.
  • Creare un backup del database - Anche su staging, fai un backup prima dell'installazione.

Fase 2 - Test di installazione

  1. Installare il modulo tramite il Back Office (Moduli > Gestione moduli > Carica un modulo).
  2. Verificare errori di installazione - Dopo l'installazione, controlla che il modulo appaia nella lista.
  3. Verificare le modifiche al database - Confronta le tabelle prima e dopo l'installazione.

Fase 3 - Test funzionali

  • Pagina di configurazione - Puoi accedere e salvare tutte le impostazioni senza errori?
  • Visualizzazione front office - Il modulo viene visualizzato correttamente su tutte le pagine pertinenti?
  • Responsività mobile - Testa su viewport mobili.
  • Supporto multilingue - Se il tuo negozio usa più lingue, verifica la visualizzazione corretta in ciascuna.
  • Compatibilità multishop - Se usi la funzionalità multishop, testa il comportamento su diversi negozi.

Fase 4 - Test dei conflitti

  • Controllare la console del browser - Apri gli strumenti di sviluppo (F12) e cerca errori JavaScript.
  • Testare il processo di checkout - Aggiungi un prodotto al carrello, completa ogni passaggio e finalizza un ordine test.
  • Testare l'elaborazione dei pagamenti - Effettua ordini test con ogni metodo di pagamento.
  • Verificare la funzionalità dei moduli esistenti - Assicurati che i moduli critici funzionino ancora.

Fase 5 - Test delle prestazioni

# Prima dell'installazione del modulo, misurare la baseline
curl -o /dev/null -s -w "Tempo: %{time_total}s\n" https://staging.tuonegozio.com/

# Dopo l'installazione, misurare di nuovo e confrontare
curl -o /dev/null -s -w "Tempo: %{time_total}s\n" https://staging.tuonegozio.com/

Un modulo ben scritto dovrebbe aggiungere meno di 100ms ai tempi di caricamento. Se noti un aumento di 500ms o più, investiga le query al database e il caricamento degli asset del modulo.

Fase 6 - Test di disinstallazione

  1. Disinstalla il modulo dal Back Office
  2. Verifica che tutte le tabelle specifiche del modulo siano rimosse
  3. Controlla che non rimangano hook, file CSS o JavaScript orfani
  4. Verifica che il front office torni al suo stato pre-modulo

Spostare un modulo testato in produzione

Passo 1 - Pianificare il deployment

Scegli un periodo di basso traffico. Controlla i tuoi Google Analytics per identificare quando il tuo negozio ha meno visitatori.

Passo 2 - Creare un backup di produzione

mysqldump -u dbuser -p production_db > /tmp/production_backup_$(date +%Y%m%d_%H%M%S).sql

Passo 3 - Installare in produzione

Carica esattamente lo stesso file ZIP del modulo testato su staging. Non scaricare una nuova versione.

Passo 4 - Applicare la stessa configurazione

Configura il modulo con esattamente le stesse impostazioni usate su staging.

Passo 5 - Monitorare per 24-48 ore

Dopo il deployment, monitora attivamente i log degli errori PHP, Google Analytics e il tasso di conversione degli ordini.

Trabocchetti comuni dello staging da evitare

  • Dimenticare di aggiornare gli URL - Se copi il database ma dimentichi di aggiornare ps_shop_url, il tuo sito staging reindirizza alla produzione.
  • Gateway di pagamento in modalità live - Passa sempre i gateway di pagamento in modalità sandbox/test su staging.
  • Notifiche email inviate ai clienti - Disabilita l'invio di email su staging o reindirizza tutte le email a un indirizzo di test.
  • Indicizzazione dai motori di ricerca - Blocca sempre lo staging per i motori di ricerca.
  • Cron job in esecuzione su staging - Disabilita tutti i cron job copiati dalla produzione.

Questa risposta ti è stata utile?

Hai ancora domande?

Can't find what you're looking for? Send us your question and we'll get back to you quickly.

Loading...
Back to top