CMS Import/Export Plugin
Das DmfCmsImportExport Plugin ermöglicht den Export und Import von CMS-Seiten (Erlebniswelten) und Theme-Konfigurationen. Ideal für die Übertragung von Inhalten zwischen Entwicklungs-, Staging- und Produktivumgebungen.
Inhalt dieser Seite:
Voraussetzungen
- Shopware 6.7.0 oder höher
- PHP 8.2 oder höher
- PHP-Extensions:
zlib,curl
Installation
bash
composer require dmf/sw6-plugin-cmsimportexport
bin/console plugin:install --activate DmfCmsImportExport
bin/console cache:clearFeatures
- CMS-Seiten exportieren/importieren: Komplette Erlebniswelten mit allen Blöcken und Elementen
- Theme-Konfigurationen exportieren/importieren: Alle Theme-Einstellungen eines Verkaufskanals
- Medien-Handling: Verknüpfte Medien werden automatisch mitexportiert
- Admin-Integration: Export/Import direkt im Backend
- CLI-Unterstützung: Automatisierung via Console Commands
- CI/CD-Ready: Perfekt für automatisierte Deployments
Console Commands
CMS-Seite exportieren
bash
bin/console dmf:cms:export --id=<cms-page-id> [--file=<filename>]| Option | Erforderlich | Beschreibung |
|---|---|---|
--id | Ja | UUID der CMS-Seite |
--file | Nein | Dateiname (Standard: export) |
Beispiel:
bash
# Export mit automatischem Dateinamen
bin/console dmf:cms:export --id=a1b2c3d4e5f6789012345678
# Export mit benutzerdefiniertem Dateinamen
bin/console dmf:cms:export --id=a1b2c3d4e5f6789012345678 --file=homepage-backupCMS-Seite importieren
bash
bin/console dmf:cms:import --file=<filepath>| Option | Erforderlich | Beschreibung |
|---|---|---|
--file | Ja | Pfad zur Export-Datei |
Beispiel:
bash
bin/console dmf:cms:import --file=var/export/homepage-backup.gzINFO
Beim Import werden neue UUIDs generiert, sodass keine Konflikte mit bestehenden Seiten entstehen.
Theme-Konfiguration exportieren
bash
bin/console dmf:theme:export --id=<theme-id> [--file=<filename>]| Option | Erforderlich | Beschreibung |
|---|---|---|
--id | Ja | UUID des Themes |
--file | Nein | Dateiname (Standard: export) |
Beispiel:
bash
bin/console dmf:theme:export --id=b2c3d4e5f6a789012345678 --file=theme-configTheme-Konfiguration importieren
bash
bin/console dmf:theme:import --id=<theme-id> --file=<filepath>| Option | Erforderlich | Beschreibung |
|---|---|---|
--id | Ja | UUID des Ziel-Themes |
--file | Ja | Pfad zur Export-Datei |
Beispiel:
bash
bin/console dmf:theme:import --id=c3d4e5f6a7b89012345678 --file=var/export/theme-config.gzAdmin-Integration
Das Plugin fügt Export/Import-Buttons in der Shopware Administration hinzu.
CMS-Seite exportieren (Admin)
- Öffne Inhalte → Erlebniswelten
- Wähle die gewünschte Seite
- Klicke auf Exportieren in der Toolbar
- Die Datei wird automatisch heruntergeladen
CMS-Seite importieren (Admin)
- Öffne Inhalte → Erlebniswelten
- Klicke auf Importieren
- Wähle die Export-Datei aus
- Die Seite wird als neue Erlebniswelt angelegt
CI/CD-Integration
GitLab CI Beispiel
yaml
deploy:staging:
stage: deploy
script:
# CMS-Seiten von Produktion exportieren
- bin/console dmf:cms:export --id=$HOMEPAGE_ID --file=homepage
# Theme-Konfiguration exportieren
- bin/console dmf:theme:export --id=$THEME_ID --file=theme-config
# Dateien als Artifacts speichern
artifacts:
paths:
- var/export/Deployment-Workflow
bash
# 1. Auf Quell-System: Export
bin/console dmf:cms:export --id=abc123 --file=homepage
bin/console dmf:theme:export --id=def456 --file=theme
# 2. Dateien übertragen (SCP, rsync, etc.)
scp var/export/*.gz user@target:/var/www/shop/var/import/
# 3. Auf Ziel-System: Import
bin/console dmf:cms:import --file=var/import/homepage.gz
bin/console dmf:theme:import --id=xyz789 --file=var/import/theme.gz
bin/console cache:clearTechnische Details
Export-Format
Exporte werden als komprimierte gzip-Dateien (.gz) gespeichert:
- CMS-Seiten: JSON mit allen Blöcken, Slots, Konfigurationen und base64-kodierten Medien
- Theme-Konfigurationen: JSON mit allen Theme-Einstellungen
Medien-Behandlung
- Export: Verknüpfte Medien werden base64-kodiert in die Export-Datei eingebettet
- Import: Medien werden automatisch in die Mediathek hochgeladen und korrekt verknüpft
UUID-Handling
Beim Import werden alle UUIDs neu generiert, um Konflikte zu vermeiden. Die Beziehungen zwischen Objekten (Blöcke, Slots, Medien) bleiben dabei erhalten.
Troubleshooting
Export schlägt fehl
- Prüfe, ob die CMS-Seite/das Theme existiert
- Stelle sicher, dass Schreibrechte für
var/export/vorhanden sind - Prüfe den verfügbaren Speicherplatz
Import schlägt fehl
- Prüfe das Dateiformat (muss
.gzsein) - Stelle sicher, dass die Datei nicht beschädigt ist
- Prüfe die PHP-Extensions:
zlib,curl
Medien fehlen nach Import
- Führe
bin/console media:generate-thumbnailsaus - Prüfe die Mediathek auf fehlgeschlagene Uploads
- Leere den Cache:
bin/console cache:clear