Shopware — The Shopware 6 bin/console CLI

Shopware 6 command-line interface (bin/console). Manage plugins, themes, cache, indexing, users, sales channels, and system configuration for Shopware 6 stores.

Shopware 6 is a Symfony-based open-source e-commerce platform that you can drive almost entirely from the bin/console command line. From clearing caches to managing plugins and themes, running indexing, migrations, and maintenance work, operating your store comes down to exactly these commands. This guide collects the most important bin/console commands for upkeep, deployment, and troubleshooting – from daily routine to full system updates.

General & Info

bin/console list — List all available commands.

bin/console list

bin/console about — Show Shopware and Symfony version info.

bin/console about

bin/console system:info — Show system information and requirements check.

bin/console system:info

bin/console system:config:get <key> — Get a system configuration value.

bin/console system:config:get core.basicInformation.shopName

bin/console system:config:set <key> <value> — Set a system configuration value.

bin/console system:config:set core.basicInformation.shopName 'My Shop'

Cache & Build

bin/console cache:clear — Clear the application cache.

bin/console cache:clear

bin/console cache:warmup — Warm up the cache.

bin/console cache:warmup

bin/console http:cache:warm:up — Warm up the HTTP cache (reverse proxy).

bin/console http:cache:warm:up

bin/console theme:compile — Compile theme assets (CSS, JS).

bin/console theme:compile

bin/console theme:refresh — Refresh theme configuration.

bin/console theme:refresh

bin/console theme:dump — Dump theme configuration for debugging.

bin/console theme:dump

bin/console assets:install — Install bundle and plugin assets to the public directory.

bin/console assets:install

Plugin Management

bin/console plugin:list — List all plugins and their status.

bin/console plugin:list

bin/console plugin:install <name> — Install a plugin.

bin/console plugin:install MyPlugin

bin/console plugin:install --activate <name> — Install and activate a plugin in one step.

bin/console plugin:install --activate MyPlugin

bin/console plugin:activate <name> — Activate an installed plugin.

bin/console plugin:activate MyPlugin

bin/console plugin:deactivate <name> — Deactivate a plugin.

bin/console plugin:deactivate MyPlugin

bin/console plugin:update <name> — Update a plugin.

bin/console plugin:update MyPlugin

bin/console plugin:uninstall <name> — Uninstall a plugin.

bin/console plugin:uninstall MyPlugin

bin/console plugin:refresh — Refresh the plugin list (detect new plugins).

bin/console plugin:refresh

Indexing & Data

bin/console dal:refresh:index — Refresh the Data Abstraction Layer index.

bin/console dal:refresh:index

bin/console es:index — Reindex Elasticsearch / OpenSearch.

bin/console es:index

bin/console es:reset — Reset and recreate Elasticsearch indices.

bin/console es:reset

bin/console es:status — Show Elasticsearch index status.

bin/console es:status

bin/console product:index — Reindex products (variant listing, cheapest price, etc.).

bin/console product:index

bin/console media:generate-thumbnails — Generate thumbnails for all media files.

bin/console media:generate-thumbnails

bin/console media:delete-unused — Delete media files that are not referenced anywhere.

bin/console media:delete-unused

Users & Sales Channels

bin/console user:create <username> — Create a new admin user.

bin/console user:create admin --admin --email=admin@example.com --password=secret

bin/console user:change-password <username> — Change an admin user's password.

bin/console user:change-password admin

bin/console user:list — List all admin users.

bin/console user:list

bin/console sales-channel:list — List all sales channels.

bin/console sales-channel:list

bin/console sales-channel:create:storefront — Create a new Storefront sales channel.

bin/console sales-channel:create:storefront --name='My Store' --url='https://myshop.com'

bin/console sales-channel:maintenance:toggle <id> — Toggle maintenance mode for a sales channel.

bin/console sales-channel:maintenance:toggle <sales-channel-id>

Queue & Scheduled Tasks

bin/console messenger:consume async — Process messages from the async queue.

bin/console messenger:consume async --time-limit=60

bin/console messenger:consume async --limit=<n> — Process a limited number of messages.

bin/console messenger:consume async --limit=50

bin/console messenger:failed:show — Show failed messages.

bin/console messenger:failed:show

bin/console messenger:failed:retry — Retry all failed messages.

bin/console messenger:failed:retry

bin/console scheduled-task:run — Run all due scheduled tasks.

bin/console scheduled-task:run

bin/console scheduled-task:list — List all registered scheduled tasks and their status.

bin/console scheduled-task:list

Setup & Maintenance

bin/console system:setup — Interactive system setup (database, URL, etc.).

bin/console system:setup

bin/console system:install — Install Shopware (create database schema, import base data).

bin/console system:install --basic-setup

bin/console system:update:prepare — Prepare the system for an update (enable maintenance).

bin/console system:update:prepare

bin/console system:update:finish — Finish the update process (disable maintenance).

bin/console system:update:finish

bin/console database:migrate --all — Run all pending database migrations.

bin/console database:migrate --all

bin/console database:migrate-destructive --all — Run destructive migrations (column drops, etc.).

bin/console database:migrate-destructive --all

bin/console sitemap:generate — Generate XML sitemaps for all sales channels.

bin/console sitemap:generate

bin/console debug:router — List all registered routes.

bin/console debug:router

Conclusion

With bin/console you hold the entire lifecycle of a Shopware 6 store in your hands: rebuild caches and themes, manage plugins, maintain indices, and run updates. For day-to-day work, cache:clear, theme:compile, and dal:refresh:index are the backbone – they run after nearly every configuration or code change.

Take care with anything that touches the database or the system: only run database:migrate, database:migrate-destructive, and system:update:* with a fresh backup in place, because destructive migrations drop columns irreversibly. Before migrations, enable maintenance via system:update:prepare or the sales-channel maintenance mode so customers don't land in a half-migrated database. system:setup writes your .env and overwrites existing credentials – check what is already configured first.

Further Reading

  • artisan – the Laravel command line (php artisan)
  • cargo – the Rust package manager and build tool
  • composer – dependency manager for PHP projects