Skip to content

Console Commands

Übersicht aller Console Commands der Guppy Plugin-Familie.

Inhalt dieser Seite:


Übersicht

CommandPluginBeschreibung
guppy:theme:createDmfGuppyThemeChild-Theme erstellen
guppy:install:pluginsDmfGuppyThemeGuppy-Plugins installieren
guppy:upgrade:scanDmfGuppyThemeShopware-Upgrade-Kompatibilität prüfen
dmf:fonts:generateDmfCustomFontsFont-CSS generieren
dmf:cms:exportDmfCmsImportExportCMS-Seite exportieren
dmf:cms:importDmfCmsImportExportCMS-Seite importieren
dmf:theme:exportDmfCmsImportExportTheme-Konfiguration exportieren
dmf:theme:importDmfCmsImportExportTheme-Konfiguration importieren

Guppy Theme

guppy:theme:create

Erstellt ein neues Child-Theme basierend auf dem Guppy Theme.

bash
bin/console guppy:theme:create

Der Befehl führt interaktiv durch die Theme-Erstellung:

  1. Theme-Name: Name des neuen Themes (z.B. MyShopTheme)
  2. Namespace: PHP-Namespace (z.B. MyShop\Theme)
  3. Verzeichnis: Zielverzeichnis für das Theme

Generierte Dateien:

  • src/[ThemeName].php - Plugin-Hauptklasse
  • composer.json - Composer-Konfiguration
  • theme.json - Theme-Konfiguration
  • src/Resources/app/storefront/src/main.js - JavaScript-Einstiegspunkt
  • src/Resources/app/storefront/src/scss/base.scss - SCSS-Einstiegspunkt

guppy:install:plugins

Installiert und aktiviert alle Guppy-Plugins in der korrekten Reihenfolge.

bash
bin/console guppy:install:plugins

Installierte Plugins:

  • DmfGuppyEmotionworldElements
  • DmfCmsCustomGrids
  • DmfDropdownNavigation
  • DmfCustomFonts
  • (weitere optionale Plugins)

guppy:upgrade:scan

Analysiert dein Projekt auf Kompatibilität mit Shopware-Upgrades. Parst UPGRADE-Markdown-Dateien und meldet konkrete Code-Stellen, die angepasst werden müssen.

bash
bin/console guppy:upgrade:scan --core=/path/to/shopware-core.zip

Quellen-Optionen

OptionBeschreibung
--corePfad zum Shopware Core (ZIP oder entpacktes Verzeichnis)
--upgradeDirekte UPGRADE-Quelle(n): lokale Datei, URL oder - für STDIN (mehrfach verwendbar)

Scan-Scope-Optionen

OptionBeschreibung
--targetsZu scannende Pfade (mehrfach verwendbar). auto erkennt gängige Shopware-Verzeichnisse
--excludeAuszuschließende Pfade relativ zur Projektwurzel (mehrfach verwendbar)

Standard-Excludes: vendor, node_modules, .git, var, public/bundles

Composer-Plugin-Optionen

OptionBeschreibung
--composerZusätzlich Composer-Plugins aus composer.lock scannen
--composer-typeComposer-Typen filtern (Standard: shopware-platform-plugin, shopware-plugin, shopware-app, shopware-bundle)
--composer-name-likeRegex-Filter auf Package-Name, z.B. /^(guppy|mycompany)\//

Ausführungs-Optionen

OptionBeschreibung
--sinceNur seit Git-Ref geänderte Dateien scannen (z.B. origin/main, v2.6.0)
--use-rgripgrep für Regex-Suche verwenden (schneller)
--outZiel-Report-Datei (Standard: var/upgrade-report.md)
--dry-runNur extrahierte Regeln anzeigen, ohne zu scannen
--formatOutput-Format: markdown (Standard) oder json
--statsSummary-Statistiken im Report anzeigen
--extensionsZusätzliche Dateiendungen (z.B. jsx, tsx)

Beispiele

Basis-Scan mit Shopware-Core-ZIP:

bash
bin/console guppy:upgrade:scan --core=/tmp/shopware-6.6.0.zip

Scan mit UPGRADE-Datei von URL:

bash
bin/console guppy:upgrade:scan \
    --upgrade=https://raw.githubusercontent.com/shopware/shopware/trunk/UPGRADE-6.6.md

Nur eigene Plugins scannen (auto-detect):

bash
bin/console guppy:upgrade:scan \
    --core=/tmp/shopware-core \
    --targets=auto

Nur seit letztem Release geänderte Dateien:

bash
bin/console guppy:upgrade:scan \
    --core=/tmp/shopware-core \
    --since=v2.5.0 \
    --use-rg

Composer-Plugins mit Namenfilter:

bash
bin/console guppy:upgrade:scan \
    --core=/tmp/shopware-core \
    --composer \
    --composer-name-like="/^(dmf|guppy)\//"

JSON-Report mit Statistiken:

bash
bin/console guppy:upgrade:scan \
    --core=/tmp/shopware-core \
    --format=json \
    --stats \
    --out=var/upgrade-report.json

Dry-Run (nur Regeln anzeigen):

bash
bin/console guppy:upgrade:scan \
    --core=/tmp/shopware-core \
    --dry-run

Report-Ausgabe

Der generierte Report enthält:

  • Version: Shopware-Version aus der UPGRADE-Datei
  • Typ: REMOVED, DEPRECATED oder CHANGED
  • Label: Beschreibung der Änderung (z.B. sw-checkbox-field → mt-checkbox)
  • Package: Betroffenes Plugin/Theme
  • File/Line: Konkrete Fundstelle im Code
  • Snippet: Code-Ausschnitt
  • Fix: Empfohlene Korrektur

Beispiel-Output (Markdown):

markdown
### [6.6] REMOVED — sw-checkbox-field → mt-checkbox

**Package:** shopware-platform-plugin dmf/my-plugin — Hits: 3

| File | Line | Snippet |
|------|------|---------|
| `src/Resources/views/page.twig` | 42 | <sw-checkbox-field v-model="value" |
| `src/Resources/views/form.twig` | 18 | <sw-checkbox-field :disabled="true" |

> **Fix:** Ersetze `<sw-checkbox-field>` durch `<mt-checkbox>` (inkl. API-Anpassungen).

Custom Fonts

dmf:fonts:generate

Generiert die Font-CSS-Datei basierend auf der Plugin-Konfiguration.

bash
bin/console dmf:fonts:generate

Automatische Ausführung:

  • Bei Plugin-Aktivierung
  • Bei Plugin-Update
  • Bei Änderung der Konfiguration

Verwendung: Nach dem Hochladen neuer Schriftdateien oder Ändern der Konfiguration manuell ausführen:

bash
bin/console dmf:fonts:generate
bin/console cache:clear

CMS Import/Export

dmf:cms:export

Exportiert eine CMS-Seite (Erlebniswelt) mit allen Blöcken, Elementen und Medien.

bash
bin/console dmf:cms:export --id=<cms-page-id> [--file=<filename>]
OptionErforderlichBeschreibung
--idJaUUID der CMS-Seite
--fileNeinDateiname ohne Endung (Standard: export)

Beispiele:

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-backup

Ausgabe: var/export/[filename].gz

dmf:cms:import

Importiert eine zuvor exportierte CMS-Seite.

bash
bin/console dmf:cms:import --file=<filepath>
OptionErforderlichBeschreibung
--fileJaPfad zur Export-Datei (.gz)

Beispiel:

bash
bin/console dmf:cms:import --file=var/export/homepage-backup.gz

INFO

Beim Import werden neue UUIDs generiert, sodass keine Konflikte mit bestehenden Seiten entstehen.

dmf:theme:export

Exportiert die Theme-Konfiguration eines Verkaufskanals.

bash
bin/console dmf:theme:export --id=<theme-id> [--file=<filename>]
OptionErforderlichBeschreibung
--idJaUUID des Themes
--fileNeinDateiname ohne Endung (Standard: export)

Beispiel:

bash
bin/console dmf:theme:export --id=b2c3d4e5f6a789012345678 --file=theme-config

Ausgabe: var/export/[filename].gz

dmf:theme:import

Importiert eine Theme-Konfiguration in ein bestehendes Theme.

bash
bin/console dmf:theme:import --id=<theme-id> --file=<filepath>
OptionErforderlichBeschreibung
--idJaUUID des Ziel-Themes
--fileJaPfad zur Export-Datei (.gz)

Beispiel:

bash
bin/console dmf:theme:import --id=c3d4e5f6a7b89012345678 --file=var/export/theme-config.gz

UUIDs finden

CMS-Seiten-UUID

bash
# Alle CMS-Seiten auflisten
bin/console dbal:run-sql "SELECT HEX(id), name FROM cms_page"

Oder im Admin unter InhalteErlebniswelten → Seite öffnen → UUID in der URL.

Theme-UUID

bash
# Alle Themes auflisten
bin/console dbal:run-sql "SELECT HEX(id), technical_name FROM theme"

Oder im Admin unter Verkaufskanäle → [Verkaufskanal] → Theme → UUID in der URL.


CI/CD-Beispiele

GitLab CI Pipeline

yaml
stages:
  - export
  - deploy

export-content:
  stage: export
  script:
    - bin/console dmf:cms:export --id=$HOMEPAGE_ID --file=homepage
    - bin/console dmf:theme:export --id=$THEME_ID --file=theme
  artifacts:
    paths:
      - var/export/
    expire_in: 1 week

deploy-staging:
  stage: deploy
  script:
    - scp var/export/*.gz staging:/var/www/shop/var/import/
    - ssh staging "cd /var/www/shop && bin/console dmf:cms:import --file=var/import/homepage.gz"
    - ssh staging "cd /var/www/shop && bin/console dmf:theme:import --id=$STAGING_THEME_ID --file=var/import/theme.gz"
    - ssh staging "cd /var/www/shop && bin/console cache:clear"

Lokaler 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 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:clear
bin/console theme:compile