PS PrestaShop Intermedio

DataFirefly Staging Pro — Guida completa

Clonare, testare e inviare in produzione: installazione, creazione di uno staging, opzioni di protezione, push selettivo e rollback per PrestaShop 8 e 9.

Aggiornato Versione del modulo 1.0.0

Staging Pro crea una copia completa del tuo negozio (file + database) in una sottocartella protetta del tuo hosting attuale, senza alcun timeout grazie al suo motore di copia a lotti. Testi moduli, temi e aggiornamenti in totale sicurezza, poi riporti le tue modifiche in produzione tabella per tabella, con backup automatico e rollback con un clic. Questa guida copre l’installazione, la creazione di uno staging, le opzioni di protezione, il push in produzione e il rollback.

Installazione

  1. Scarica l’archivio dfstagingpro.zip dal tuo account DataFirefly.
  2. Back office PrestaShop → ModuliCarica un modulo → invia lo ZIP.
  3. All’installazione, il modulo crea le sue tabelle df_staging_env e df_staging_log, registra i suoi hook e aggiunge la scheda Parametri avanzati → Staging Pro.

Compatibile con PrestaShop 8.0 a 9.x. PHP deve poter scrivere nella radice del negozio (creazione della sottocartella di staging) e l’utente MySQL deve poter eseguire CREATE, DROP e RENAME TABLE — cosa abituale in un’installazione PrestaShop standard. Nessuna dipendenza Composer.

Come funziona lo staging

Un ambiente di staging viene creato in una sottocartella nella radice del tuo negozio (ad esempio /staging-v2/) e usa un prefisso di tabelle dedicato (ad esempio dfs1_) nello stesso database della produzione. Non hai quindi bisogno né di un secondo server, né di un nuovo accesso MySQL, né di una configurazione DNS.

Il motore di copia lavora a lotti di pochi secondi e poi restituisce il controllo, riprendendo esattamente da dove si era fermato: copia dei file tramite una coda persistente, clonazione del database a pacchetti di righe. Un negozio di diversi gigabyte si clona senza errori, anche su hosting condiviso con un max_execution_time basso.

Creare uno staging

Vai su Parametri avanzati → Staging Pro e, nel pannello di creazione:

  1. Inserisci un nome (solo minuscole, cifre e trattini, ad esempio v2). L’URL dello staging sarà tuo-negozio.com/staging-v2/.
  2. Scegli le tue opzioni di protezione e copia (vedi sotto).
  3. Fai clic su Crea. L’avanzamento è mostrato in tempo reale con una barra di avanzamento.

Al termine del processo, l’URL dello staging e, se applicabile, le credenziali htpasswd appaiono sulla riga dell’ambiente.

Opzioni di protezione e copia

  • Proteggi con .htpasswd: aggiunge un’autenticazione HTTP (utente staging). La password può essere inserita o generata automaticamente, poi mostrata sul pannello.
  • Disattiva le e-mail: blocca le e-mail in uscita dello staging (PS_MAIL_METHOD = 3). Nessun rischio di scrivere a un cliente reale.
  • Disattiva i pagamenti: disattiva e sgancia dagli hook i moduli di pagamento noti sullo staging.
  • Salta le statistiche: esclude dalla copia le tabelle grandi e non essenziali (connessioni, log, carrelli abbandonati…) per una copia molto più rapida.
  • Symlink della cartella img/: crea un collegamento simbolico alle immagini invece di copiarle, per un enorme risparmio di spazio su disco.
  • Modalità manutenzione: mette lo staging in manutenzione con il tuo IP di amministrazione in whitelist.

Fin dalla creazione, ogni staging riceve automaticamente un header X-Robots-Tag: noindex, un meta noindex e un robots.txt che blocca, oltre a un banner arancione STAGING sul front office e nel back office. I tuoi ambienti di test non rischiano di essere indicizzati da Google.

L’opzione symlink di img/ condivide la cartella delle immagini con la produzione: modificare o eliminare un’immagine sullo staging influisce anche sul negozio online. Riservala ai test che non toccano le immagini.

Il motore di copia a lotti

La creazione di uno staging concatena diverse fasi, ciascuna con budget di tempo e ripresa automatica: preparazione, copia dei file, clonazione del database, riscrittura degli URL, configurazione e protezione, e finalizzazione. La riscrittura degli URL copre shop_url, la configurazione (inclusi i valori serializzati e JSON, gestiti senza corruzione), oltre ai contenuti CMS, prodotti, categorie, marche, fornitori e negozi.

Se la pagina viene chiusa durante la creazione, l’ambiente resta in corso e riprende automaticamente la copia alla riapertura del pannello, esattamente da dove si era fermato.

Refresh, multi-ambiente ed eliminazione

  • Refresh: ricostruisce uno staging esistente dallo stato attuale della produzione (elimina e poi ricrea la cartella e il prefisso), con un clic.
  • Multi-ambiente: crea tutti gli staging di cui hai bisogno (v2, hotfix, test di moduli…), ognuno indipendente.
  • Eliminazione: elimina la cartella e le tabelle di un ambiente in modo budgetizzato, senza timeout.

Push in produzione

Una volta validati i test, il pulsante Push permette di riportare le tue modifiche in produzione, tabella per tabella:

  1. Fai clic su Push sulla riga dell’ambiente: appare l’elenco delle tabelle, con il numero di righe di ciascuna.
  2. Seleziona esattamente le tabelle da trasferire.
  3. Conferma. Prima di ogni sostituzione, la tabella di produzione corrispondente viene salvata automaticamente tramite una rinomina con timestamp verso un prefisso dfbak{timestamp}_.

Gli URL vengono riscritti nel verso staging → produzione durante il trasferimento. Le tabelle critiche (shop_url, configuration, shop, sessioni e tabelle del modulo) sono protette e non possono mai essere inviate.

Il push modifica il tuo negozio in produzione. Il backup automatico protegge le tabelle sostituite, ma verifica sempre la tua selezione. Evita di inviare tabelle di ordini o di clienti se la produzione ha continuato a registrare vendite dalla creazione dello staging.

Rollback

Il pulsante Rollback ripristina la produzione dall’ultimo backup del push, con un clic. Il modulo rinomina le tabelle di backup dfbak…_ per riportarle al loro posto originale.

Una volta validato e stabile un push, elimina le vecchie tabelle dfbak* (tramite phpMyAdmin o qualsiasi client SQL) per liberare spazio nel tuo database.

Protezioni e registro

  • Tutte le azioni sono bloccate se il negozio attuale è esso stesso uno staging, per evitare operazioni a cascata.
  • Un registro dettagliato è disponibile per ambiente tramite il pulsante Logs.
  • Poiché un robots.txt in una sottocartella non viene rispettato dai motori, la vera protezione anti-indicizzazione si basa sull’header X-Robots-Tag e sul meta noindex; l’opzione .htpasswd resta la protezione più sicura.

Compatibilità e note tecniche

  • PrestaShop 8.0 a 9.x, compatibile con hosting condiviso e multilingua.
  • Controller di amministrazione legacy (nessun controller Symfony) per la compatibilità PS8/PS9.
  • Endpoint AJAX del back office tramite il 4° argomento di getAdminLink(); rendering JSON tramite un metodo dedicato.
  • Staging = sottocartella nella radice + prefisso di tabelle dfs{id}_ nello stesso database MySQL.
  • Backup del push con timestamp sotto il prefisso dfbak{YmdHis}_, da eliminare dopo la validazione.

FAQ e risoluzione dei problemi

Il modulo funziona su un hosting condiviso? Sì. Il motore di copia a lotti con ripresa automatica evita qualsiasi timeout, qualunque sia il max_execution_time del server.

La creazione si è interrotta, cosa faccio? Riapri il pannello di Staging Pro: l’ambiente riprende automaticamente la copia da dove si era fermato.

Lo staging può inviare e-mail ai miei clienti? No se l’opzione «Disattiva le e-mail» è attiva (consigliato): le e-mail in uscita sono bloccate sullo staging.

Dopo un push, come lo annullo? Usa il pulsante Rollback, che ripristina l’ultimo backup automatico. Poi ricordati di eliminare le tabelle dfbak* obsolete.

Posso creare più staging contemporaneamente? Sì, il numero di ambienti è illimitato e ognuno è totalmente indipendente.

Questa pagina ti è stata utile?

Ancora bloccato? Contatta l'assistenza