# 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.

Source: https://www.jpkc.com/db/en/cheatsheets/build-languages/shopware/

<!-- PROSE:intro -->
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.
<!-- PROSE:intro:end -->

## General & Info

`bin/console list` — List all available commands.

```bash
bin/console list
```

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

```bash
bin/console about
```

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

```bash
bin/console system:info
```

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

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

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

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

## Cache & Build

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

```bash
bin/console cache:clear
```

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

```bash
bin/console cache:warmup
```

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

```bash
bin/console http:cache:warm:up
```

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

```bash
bin/console theme:compile
```

`bin/console theme:refresh` — Refresh theme configuration.

```bash
bin/console theme:refresh
```

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

```bash
bin/console theme:dump
```

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

```bash
bin/console assets:install
```

## Plugin Management

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

```bash
bin/console plugin:list
```

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

```bash
bin/console plugin:install MyPlugin
```

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

```bash
bin/console plugin:install --activate MyPlugin
```

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

```bash
bin/console plugin:activate MyPlugin
```

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

```bash
bin/console plugin:deactivate MyPlugin
```

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

```bash
bin/console plugin:update MyPlugin
```

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

```bash
bin/console plugin:uninstall MyPlugin
```

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

```bash
bin/console plugin:refresh
```

## Indexing & Data

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

```bash
bin/console dal:refresh:index
```

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

```bash
bin/console es:index
```

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

```bash
bin/console es:reset
```

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

```bash
bin/console es:status
```

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

```bash
bin/console product:index
```

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

```bash
bin/console media:generate-thumbnails
```

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

```bash
bin/console media:delete-unused
```

## Users & Sales Channels

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

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

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

```bash
bin/console user:change-password admin
```

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

```bash
bin/console user:list
```

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

```bash
bin/console sales-channel:list
```

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

```bash
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.

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

## Queue & Scheduled Tasks

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

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

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

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

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

```bash
bin/console messenger:failed:show
```

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

```bash
bin/console messenger:failed:retry
```

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

```bash
bin/console scheduled-task:run
```

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

```bash
bin/console scheduled-task:list
```

## Setup & Maintenance

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

```bash
bin/console system:setup
```

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

```bash
bin/console system:install --basic-setup
```

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

```bash
bin/console system:update:prepare
```

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

```bash
bin/console system:update:finish
```

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

```bash
bin/console database:migrate --all
```

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

```bash
bin/console database:migrate-destructive --all
```

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

```bash
bin/console sitemap:generate
```

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

```bash
bin/console debug:router
```

<!-- PROSE:outro -->
## 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

- [Shopware Developer Documentation](https://developer.shopware.com/) – official developer docs with CLI and console reference
- [shopware.com](https://www.shopware.com/en/) – vendor site with product and edition information
<!-- PROSE:outro:end -->

## Related Commands

- [artisan](https://www.jpkc.com/db/en/cheatsheets/build-languages/artisan/) – the Laravel command line (php artisan)
- [cargo](https://www.jpkc.com/db/en/cheatsheets/build-languages/cargo/) – the Rust package manager and build tool
- [composer](https://www.jpkc.com/db/en/cheatsheets/build-languages/composer/) – dependency manager for PHP projects

