Skip to content

Console Commands

Overview of all console commands from the Guppy plugin family.

On this page:


Overview

CommandPluginDescription
guppy:theme:createDmfGuppyThemeCreate child theme
guppy:install:pluginsDmfGuppyThemeInstall Guppy plugins
guppy:upgrade:scanDmfGuppyThemeCheck Shopware upgrade compatibility
dmf:fonts:generateDmfCustomFontsGenerate font CSS
dmf:cms:exportDmfCmsImportExportExport CMS page
dmf:cms:importDmfCmsImportExportImport CMS page
dmf:theme:exportDmfCmsImportExportExport theme configuration
dmf:theme:importDmfCmsImportExportImport theme configuration

Guppy Theme

guppy:theme:create

Creates a new child theme based on the Guppy Theme.

bash
bin/console guppy:theme:create

The command guides you interactively through theme creation:

  1. Theme Name: Name of the new theme (e.g., MyShopTheme)
  2. Namespace: PHP namespace (e.g., MyShop\Theme)
  3. Directory: Target directory for the theme

Generated Files:

  • src/[ThemeName].php - Plugin main class
  • composer.json - Composer configuration
  • theme.json - Theme configuration
  • src/Resources/app/storefront/src/main.js - JavaScript entry point
  • src/Resources/app/storefront/src/scss/base.scss - SCSS entry point

guppy:install:plugins

Installs and activates all Guppy plugins in the correct order.

bash
bin/console guppy:install:plugins

Installed Plugins:

  • DmfGuppyEmotionworldElements
  • DmfCmsCustomGrids
  • DmfDropdownNavigation
  • DmfCustomFonts
  • (additional optional plugins)

guppy:upgrade:scan

Analyzes your project for compatibility with Shopware upgrades. Parses UPGRADE markdown files and reports specific code locations that need to be adjusted.

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

Source Options

OptionDescription
--corePath to Shopware Core (ZIP or extracted directory)
--upgradeDirect UPGRADE source(s): local file, URL or - for STDIN (can be used multiple times)

Scan Scope Options

OptionDescription
--targetsPaths to scan (can be used multiple times). auto detects common Shopware directories
--excludePaths to exclude relative to project root (can be used multiple times)

Default Excludes: vendor, node_modules, .git, var, public/bundles

Composer Plugin Options

OptionDescription
--composerAdditionally scan Composer plugins from composer.lock
--composer-typeFilter Composer types (default: shopware-platform-plugin, shopware-plugin, shopware-app, shopware-bundle)
--composer-name-likeRegex filter on package name, e.g., /^(guppy|mycompany)\//

Execution Options

OptionDescription
--sinceOnly scan files changed since Git ref (e.g., origin/main, v2.6.0)
--use-rgUse ripgrep for regex search (faster)
--outTarget report file (default: var/upgrade-report.md)
--dry-runOnly show extracted rules without scanning
--formatOutput format: markdown (default) or json
--statsShow summary statistics in report
--extensionsAdditional file extensions (e.g., jsx, tsx)

Examples

Basic scan with Shopware Core ZIP:

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

Scan with UPGRADE file from URL:

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

Scan only custom plugins (auto-detect):

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

Only files changed since last release:

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

Composer plugins with name filter:

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

JSON report with statistics:

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

Dry-run (show rules only):

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

Report Output

The generated report contains:

  • Version: Shopware version from UPGRADE file
  • Type: REMOVED, DEPRECATED or CHANGED
  • Label: Description of the change (e.g., sw-checkbox-field → mt-checkbox)
  • Package: Affected plugin/theme
  • File/Line: Specific location in code
  • Snippet: Code excerpt
  • Fix: Recommended correction

Example 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:** Replace `<sw-checkbox-field>` with `<mt-checkbox>` (including API adjustments).

Custom Fonts

dmf:fonts:generate

Generates the font CSS file based on plugin configuration.

bash
bin/console dmf:fonts:generate

Automatic Execution:

  • On plugin activation
  • On plugin update
  • On configuration change

Usage: After uploading new font files or changing configuration, run manually:

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

CMS Import/Export

dmf:cms:export

Exports a CMS page (shopping experience) with all blocks, elements, and media.

bash
bin/console dmf:cms:export --id=<cms-page-id> [--file=<filename>]
OptionRequiredDescription
--idYesUUID of the CMS page
--fileNoFilename without extension (default: export)

Examples:

bash
# Export with automatic filename
bin/console dmf:cms:export --id=a1b2c3d4e5f6789012345678

# Export with custom filename
bin/console dmf:cms:export --id=a1b2c3d4e5f6789012345678 --file=homepage-backup

Output: var/export/[filename].gz

dmf:cms:import

Imports a previously exported CMS page.

bash
bin/console dmf:cms:import --file=<filepath>
OptionRequiredDescription
--fileYesPath to export file (.gz)

Example:

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

INFO

New UUIDs are generated during import, so no conflicts with existing pages occur.

dmf:theme:export

Exports the theme configuration of a sales channel.

bash
bin/console dmf:theme:export --id=<theme-id> [--file=<filename>]
OptionRequiredDescription
--idYesUUID of the theme
--fileNoFilename without extension (default: export)

Example:

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

Output: var/export/[filename].gz

dmf:theme:import

Imports a theme configuration into an existing theme.

bash
bin/console dmf:theme:import --id=<theme-id> --file=<filepath>
OptionRequiredDescription
--idYesUUID of target theme
--fileYesPath to export file (.gz)

Example:

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

Finding UUIDs

CMS Page UUID

bash
# List all CMS pages
bin/console dbal:run-sql "SELECT HEX(id), name FROM cms_page"

Or in Admin under ContentShopping Experiences → open page → UUID in URL.

Theme UUID

bash
# List all themes
bin/console dbal:run-sql "SELECT HEX(id), technical_name FROM theme"

Or in Admin under Sales Channels → [Sales Channel] → Theme → UUID in URL.


CI/CD Examples

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"

Local Deployment Workflow

bash
# 1. On source system: Export
bin/console dmf:cms:export --id=abc123 --file=homepage
bin/console dmf:theme:export --id=def456 --file=theme

# 2. Transfer files
scp var/export/*.gz user@target:/var/www/shop/var/import/

# 3. On target 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