PS PrestaShop Mittel

DataFirefly Staging Pro — Vollständige Anleitung

Klonen, testen und in die Produktion pushen: Installation, Erstellung einer Staging-Site, Schutzoptionen, selektiver Push und Rollback für PrestaShop 8 und 9.

Aktualisiert Modulversion 1.0.0

Staging Pro erstellt eine vollständige Kopie Ihres Shops (Dateien + Datenbank) in einem geschützten Unterordner Ihres aktuellen Hostings — dank der Batch-Copy-Engine ohne jegliches Timeout. Sie testen Module, Themes und Updates sicher und übertragen Ihre Änderungen anschließend Tabelle für Tabelle zurück in die Produktion, mit automatischem Backup und Rollback per Klick. Diese Anleitung behandelt Installation, Erstellung einer Staging-Site, Schutzoptionen, Push in die Produktion und Rollback.

Installation

  1. Laden Sie das Archiv dfstagingpro.zip aus Ihrem DataFirefly-Konto herunter.
  2. PrestaShop-Backoffice → ModuleModul hochladen → senden Sie die ZIP-Datei.
  3. Bei der Installation erstellt das Modul seine Tabellen df_staging_env und df_staging_log, registriert seine Hooks und fügt den Tab Erweiterte Parameter → Staging Pro hinzu.

Kompatibel mit PrestaShop 8.0 bis 9.x. PHP muss in das Shop-Stammverzeichnis schreiben können (Erstellung des Staging-Unterordners) und der MySQL-Benutzer muss CREATE, DROP und RENAME TABLE ausführen können — was bei einer Standard-PrestaShop-Installation der Fall ist. Keine Composer-Abhängigkeit.

Wie Staging funktioniert

Eine Staging-Umgebung wird in einem Unterordner im Stammverzeichnis Ihres Shops erstellt (zum Beispiel /staging-v2/) und verwendet ein eigenes Tabellenpräfix (zum Beispiel dfs1_) in derselben Datenbank wie die Produktion. Sie benötigen also weder einen zweiten Server noch einen neuen MySQL-Zugang noch eine DNS-Konfiguration.

Die Copy-Engine arbeitet in Batches von wenigen Sekunden und gibt dann die Kontrolle zurück, wobei sie genau dort fortsetzt, wo sie aufgehört hat: Dateikopie über eine persistente Warteschlange, Datenbank-Klonen in Zeilenpaketen. Ein mehrere Gigabyte großer Shop klont fehlerfrei, selbst auf Shared Hosting mit niedrigem max_execution_time.

Eine Staging-Site erstellen

Gehen Sie zu Erweiterte Parameter → Staging Pro und im Erstellungspanel:

  1. Geben Sie einen Namen ein (nur Kleinbuchstaben, Ziffern und Bindestriche, zum Beispiel v2). Die Staging-URL lautet dann ihr-shop.com/staging-v2/.
  2. Wählen Sie Ihre Schutz- und Kopieroptionen (siehe unten).
  3. Klicken Sie auf Erstellen. Der Fortschritt wird live mit einem Fortschrittsbalken angezeigt.

Am Ende des Vorgangs erscheinen die Staging-URL und gegebenenfalls die htpasswd-Zugangsdaten in der Zeile der Umgebung.

Schutz- und Kopieroptionen

  • Mit .htpasswd schützen: fügt eine HTTP-Authentifizierung hinzu (Benutzer staging). Das Passwort kann eingegeben oder automatisch generiert und anschließend im Dashboard angezeigt werden.
  • E-Mails deaktivieren: schaltet die ausgehenden E-Mails der Staging-Site ab (PS_MAIL_METHOD = 3). Kein Risiko, einem echten Kunden zu schreiben.
  • Zahlungen deaktivieren: deaktiviert und hookt die bekannten Zahlungsmodule auf der Staging-Site aus.
  • Statistiken überspringen: schließt große, nicht wesentliche Tabellen von der Kopie aus (Verbindungen, Logs, abgebrochene Warenkörbe…) für eine deutlich schnellere Kopie.
  • Symlink des img/-Ordners: erstellt einen symbolischen Link zu den Bildern, statt sie zu kopieren — für enorme Speicherersparnis.
  • Wartungsmodus: versetzt die Staging-Site in den Wartungsmodus mit Ihrer Admin-IP auf der Whitelist.

Direkt nach der Erstellung erhält jede Staging-Site automatisch einen X-Robots-Tag: noindex-Header, ein noindex-Meta-Tag und eine blockierende robots.txt sowie ein oranges STAGING-Banner im Frontoffice und im Backoffice. Ihre Testumgebungen werden nicht von Google indexiert.

Die Symlink-Option für img/ teilt den Bildordner mit der Produktion: Das Ändern oder Löschen eines Bildes auf der Staging-Seite betrifft auch den Live-Shop. Reservieren Sie sie für Tests, die keine Bilder betreffen.

Die Batch-Copy-Engine

Die Erstellung einer Staging-Site verkettet mehrere Schritte, jeder zeitbudgetiert und automatisch wieder aufgenommen: Vorbereiten, Dateien kopieren, Datenbank klonen, URLs umschreiben, konfigurieren und schützen, dann finalisieren. Das URL-Rewriting umfasst shop_url, die Konfiguration (einschließlich serialisierter und JSON-Werte, ohne Beschädigung verarbeitet) sowie CMS-Inhalte, Produkte, Kategorien, Marken, Lieferanten und Shops.

Wird die Seite während der Erstellung geschlossen, bleibt die Umgebung in Bearbeitung und nimmt die Kopie beim erneuten Öffnen des Dashboards automatisch genau dort wieder auf, wo sie aufgehört hat.

Refresh, Multi-Umgebung und Löschung

  • Refresh: baut eine bestehende Staging-Site aus dem aktuellen Produktionsstand neu auf (Ordner und Präfix löschen und neu erstellen), per Klick.
  • Multi-Umgebung: erstellen Sie beliebig viele Staging-Sites (v2, Hotfix, Modultest…), jede unabhängig.
  • Löschung: löscht Ordner und Tabellen einer Umgebung budgetiert, ohne Timeout.

Push in die Produktion

Sobald Ihre Tests validiert sind, können Sie mit der Schaltfläche Push Ihre Änderungen Tabelle für Tabelle in die Produktion zurückübertragen:

  1. Klicken Sie in der Zeile der Umgebung auf Push: Die Liste der Tabellen erscheint, mit der Zeilenanzahl jeder Tabelle.
  2. Wählen Sie genau die zu übertragenden Tabellen aus.
  3. Bestätigen Sie. Vor jedem Ersetzen wird die entsprechende Produktionstabelle automatisch durch eine Umbenennung mit Zeitstempel auf ein Präfix dfbak{Zeitstempel}_ gesichert.

Die URLs werden während der Übertragung in Richtung Staging → Produktion umgeschrieben. Kritische Tabellen (shop_url, configuration, shop, Sessions und Modultabellen) sind geschützt und können niemals gepusht werden.

Der Push verändert Ihren Live-Shop. Das automatische Backup schützt die ersetzten Tabellen, prüfen Sie aber stets Ihre Auswahl. Vermeiden Sie es, Bestell- oder Kundentabellen zu pushen, wenn die Produktion seit der Erstellung der Staging-Site weiterhin Verkäufe verzeichnet hat.

Rollback

Die Schaltfläche Rollback stellt die Produktion aus dem letzten Push-Backup wieder her, per Klick. Das Modul benennt die Backup-Tabellen dfbak…_ zurück an ihren ursprünglichen Platz.

Sobald ein Push validiert und stabil ist, löschen Sie die alten dfbak*-Tabellen (über phpMyAdmin oder einen beliebigen SQL-Client), um Speicherplatz in Ihrer Datenbank freizugeben.

Sicherheitsmechanismen und Protokoll

  • Alle Aktionen werden blockiert, wenn der aktuelle Shop selbst eine Staging-Site ist, um Kaskadenoperationen zu vermeiden.
  • Über die Schaltfläche Logs ist ein detailliertes Protokoll pro Umgebung verfügbar.
  • Da eine robots.txt in einem Unterordner von Suchmaschinen nicht beachtet wird, beruht der eigentliche Schutz vor Indexierung auf dem X-Robots-Tag-Header und dem noindex-Meta-Tag; die .htpasswd-Option bleibt der sicherste Schutz.

Kompatibilität und technische Hinweise

  • PrestaShop 8.0 bis 9.x, kompatibel mit Shared Hosting und mehrsprachig.
  • Legacy-Admin-Controller (kein Symfony-Controller) für PS8/PS9-Kompatibilität.
  • Backoffice-AJAX-Endpunkte über das 4. Argument von getAdminLink(); JSON-Rendering über eine dedizierte Methode.
  • Staging = Unterordner im Stammverzeichnis + Tabellenpräfix dfs{id}_ in derselben MySQL-Datenbank.
  • Push-Backups mit Zeitstempel unter dem Präfix dfbak{YmdHis}_, nach der Validierung zu bereinigen.

FAQ und Fehlerbehebung

Funktioniert das Modul auf Shared Hosting? Ja. Die Batch-Copy-Engine mit automatischer Wiederaufnahme vermeidet jedes Timeout, unabhängig vom max_execution_time des Servers.

Die Erstellung wurde unterbrochen, was tun? Öffnen Sie das Staging-Pro-Dashboard erneut: Die Umgebung nimmt die Kopie automatisch dort wieder auf, wo sie aufgehört hat.

Kann die Staging-Site E-Mails an meine Kunden senden? Nicht, wenn die Option „E-Mails deaktivieren“ aktiv ist (empfohlen): Die ausgehenden E-Mails sind auf der Staging-Site abgeschaltet.

Wie mache ich einen Push rückgängig? Verwenden Sie die Schaltfläche Rollback, die das letzte automatische Backup wiederherstellt. Bereinigen Sie anschließend die veralteten dfbak*-Tabellen.

Kann ich mehrere Staging-Sites gleichzeitig erstellen? Ja, die Anzahl der Umgebungen ist unbegrenzt und jede ist vollständig unabhängig.

War diese Seite hilfreich?

Immer noch nicht weiter? Support kontaktieren