Setting up a reliable development environment is the foundation of any successful e-commerce project. With Shopware 6.7, the platform introduces significant architectural improvements, deeper Symfony integration, stricter type safety, and a more streamlined developer experience. Whether you’re building custom plugins, optimizing storefront performance, or extending the admin panel, starting with a correctly configured environment saves countless hours down the line. In this guide, we’ll walk through setting up a production-grade Shopware 6.7 development workspace using modern tooling and official recommendations.
System Requirements & Toolchain Alignment
Before diving in, ensure your machine meets the updated system requirements for Shopware 6.7 and beyond. The platform now mandates PHP 8.2 or higher, though PHP 8.3 is strongly recommended for optimal performance and compatibility with Symfony’s latest components. This requirement isn’t arbitrary; Shopware 6.7 leverages modern PHP features such as typed properties, readonly classes, improved error handling, and strict null coalescing throughout the core codebase. Downgrading to older PHP versions will trigger fatal type mismatches during container compilation or migration execution.
You’ll also need Composer 2.x for dependency resolution, Node.js 18+ (LTS) for frontend asset processing, MySQL 8.0+ or PostgreSQL 14+ for the database layer, Git 2.30+, and Docker/Docker Compose if you prefer containerized isolation. Shopware 6.7 fully embraces PHP 8.2 features like typed properties, readonly classes, and improved error handling, so version alignment is non-negotiable.
Project Initialization & Core Setup
The recommended approach for 6.7 is Composer-based installation. Open your terminal and run:
composer create-project shopware/production . --no-interaction
cd /path/to/shopware-root
This fetches the latest stable release and scaffolds the core directories. Unlike previous versions, Shopware 6.7 no longer relies on legacy installer scripts for development. Instead, it uses a unified CLI entry point that handles environment detection, dependency resolution, and server bootstrapping in one workflow. Once downloaded, execute:
bin/shopware setup
This interactive command validates your PHP extensions, configures .env defaults, sets up the database connection, and generates security keys. Follow the prompts to specify your database credentials, base URL, and default locale. Shopware 6.7’s setup routine also automatically installs required JavaScript build tools and synchronizes asset pipelines, eliminating the manual webpack configurations of earlier releases. Under the hood, the command writes configuration files that align with Symfony’s environment abstraction, ensuring consistent behavior across local, staging, and production tiers.
Environment Configuration & Database Management
After setup, verify your .env file contains correct DATABASE_URL, APP_ENV=dev, and SHOPWARE_ADMIN_PORT. In 6.7, environment variables are strictly typed through Symfony’s dotenv component, preventing silent misconfigurations. You can override values without touching .env.local.php by using project-level .env.dev files, which are automatically loaded during development. Run:
bin/shopware sales-channel:list
to confirm database connectivity and entity migration status. Shopware 6.7 introduces improved migration tracking with bin/shopware migration:status, allowing you to inspect pending schema updates before deployment. The framework now enforces explicit foreign key constraints and automatic index optimization, reducing runtime query overhead in complex multi-warehouse or multi-language setups.
Frontend Build Pipeline & Development Servers
Shopware 6.7 decouples the admin panel and storefront into independent dev servers for better hot-reloading and performance debugging. Start them with:
bin/admin-server
bin/storefront-server
The storefront server now compiles TypeScript, Svelte-based components (where applicable in custom themes), and CSS through a unified Vite-driven pipeline. Asset compilation is optimized with incremental builds and persistent caching. This shift eliminates the heavy rebuild cycles of earlier versions, allowing rapid UI iteration during plugin or theme development. For plugin development, navigate to your custom/plugins directory and create a bundle class extending Shopware\Core\Framework\Plugin. Shopware 6.7 enforces proper PSR-4 autoloading and requires explicit route registrations in Services.xml, aligning with Symfony’s dependency injection standards. The container now validates service definitions at boot time, catching circular references or missing tags before they reach runtime.
Plugin Development Workflow in 6.7
Plugin architecture in 6.7 has matured significantly. Dependency injection is mandatory, and the framework enforces strict service visibility rules. You must register controllers using Routes.xml or Symfony’s attribute-based routing, with automatic OpenAPI schema generation enabled by default. PHPStan integration is now baked into the CLI workflow; running bin/phpstan analyse --configuration phpstan.neon.dist validates type safety, detects deprecated APIs, and flags potential memory leaks in high-load scenarios. When developing admin extensions, leverage the new TypeScript-first component registry and avoid direct DOM manipulation. Shopware 6.7’s plugin scaffold includes preconfigured linting, testing fixtures, and CI-ready folder structures, reducing boilerplate and accelerating feature delivery.
Daily Development Routine & Troubleshooting
Maintaining a healthy dev environment requires consistent upkeep. Always use bin/shopware CLI for cache clearing, queue worker management, and plugin updates. Native PHP-FPM workers are deprecated in dev mode. Enable Twig strict variables and Symfony debug toolbar in .env.dev. Run static analysis with bin/phpstan analyse --configuration phpstan.neon.dist before committing code. Use bin/build-js.sh to synchronize vendor assets after major dependency updates. Leverage the new shopware-cli for remote environments, though local dev remains fully CLI-driven.
If you encounter container compilation failures, check for deprecated class aliases or missing PHP extensions like intl, mbstring, and gd. For storefront build errors, verify Node module symlinks in src/Resources/app/storefront/node_modules and clear the Vite cache directory. Cache invalidation in 6.7 is handled via message queues; run bin/shopware queue:consume to process background tasks during debugging sessions.
Shopware 6.7’s development environment is more rigorous but significantly more predictable. By adhering to official tooling and respecting PHP 8.2+ standards, you’ll gain a faster, type-safe foundation for scalable e-commerce solutions. As the platform evolves toward full Symfony alignment and enhanced developer ergonomics, staying current with setup procedures will keep your workflow efficient and future-proof.