Shopware 6.7 represents a mature turning point for the platform, emphasizing performance optimization, strict environment validation, and a cleaner separation between frontend build pipelines and backend logic. While upgrading from earlier versions introduces architectural refinements, configuring a local development environment that mirrors production parity can still be a friction point. This is where DDEV (Development Environment) shines: a Docker-based orchestration tool that standardizes PHP, database, and Node.js environments while automating complex container configurations.
In this guide, we’ll walk through setting up Shopware 6.7 with DDEV from scratch. We’ll focus on version-specific requirements, environment validation, asset compilation changes, and workflow optimizations that align with Shopware 6.7’s modern development philosophy.
Why This Combination Works
Shopware 6.7 drops support for PHP 8.1 and enforces PHP 8.2 as the baseline. It also introduces stricter type declarations, updated Symfony components, and a streamlined asset pipeline that relies heavily on consistent environment variables across contexts. DDEV addresses these needs by:
- Provisioning exactly the PHP version specified in your
composer.json - Isolating MySQL 8 (required for Shopware’s updated query structures and JSON indexing)
- Managing Node.js automatically for Vite-based frontend builds
- Injecting database credentials via Docker network aliases without manual
.envedits
Together, they eliminate “works on my machine” scenarios and provide a reproducible foundation for theme development, plugin creation, and headless integrations.
Prerequisites
Before beginning, ensure your workstation has:
- DDEV v1.22 or newer (
ddev -v) - Docker Desktop (v4.25+) with WSL2 backend (Windows) or native Linux containers
- Git installed
- At least 4GB RAM allocated to Docker Engine
- An active account on the Shopware store for accessing the
shopware/storefrontpackage
Step 1: Initialize Your DDEV Project
Create a dedicated directory and bootstrap DDEV with the native Shopware type. This directive automatically generates optimized configuration files, including PHP extensions, Node versions, and database defaults.
mkdir sw67-ddev && cd sw67-ddev
ddev config --type=shopware6 --project-name=sw67-local --create-docroot
Running ddev start will build the containers for the first time. DDEV creates a .ddev/ directory containing config.yaml, webserver configs, and custom commands tailored to Shopware’s routing and cron requirements. You can inspect container status with ddev describe and verify PHP version alignment inside the web container using php -v.
Step 2: Composer & Core Installation
Shopware 6.7 requires Composer 2.4+ for dependency resolution. DDEV’s web container includes a compatible version, but it’s safest to run setup commands inside the container context to avoid host-side conflicts.
ddev composer create shopware/storefront
ddev start
The composer create command pulls Shopware 6.7 into your project structure. During installation, Composer will validate PHP requirements and install framework dependencies. Once complete, you’ll notice the standard Shopware directory layout: src/, config/, custom/, and a public/ docroot that DDEV routes to automatically.
Step 3: Environment & Database Configuration
Shopware 6.7 introduced mandatory environment validation at runtime. The platform checks for required extensions, timezone consistency, and database connectivity before allowing console commands or frontend routing.
Copy the example environment file and configure it:
cp .env.example .env.local
Edit .env.local to set critical parameters:
APP_URL=https://sw67-local.ddev.site(or your custom DDEV URL)DATABASE_URL=mysql://db_user:db_password@db:3306/db_nameSHOPWARE_ADMIN_ENABLED=true
DDEV automatically resolves the db host via Docker networking, so you never need to hardcode localhost or port numbers. Set APP_ENV=dev and APP_DEBUG=1 during local development. When you run any bin/console command for the first time, Shopware 6.7 will trigger an automated environment check, generating necessary config files in config/packages/ and validating your setup without manual intervention.
Step 4: Asset Pipeline & CLI Architecture in 6.7
Shopware 6.7 fully migrated the administration and storefront asset compilation to Vite. This shift improves build times, enables hot module replacement, and simplifies custom SCSS or JavaScript overrides.
Install dependencies and compile assets:
ddev composer install --no-interaction
ddev exec bin/build-storefront.sh
ddev exec bin/watch.sh
The watch.sh command starts Vite’s development server on port 5173 (mapped automatically by DDEV). It watches the src/Resources/app/ directory and rebuilds only changed modules, dramatically speeding up UI iteration. For production builds, stick with bin/build-storefront.sh --env=prod.
Shopware 6.7 also restructured installation commands. Instead of a single setup wizard, core logic is split:
ddev exec bin/administration/install
ddev exec bin/console system:setup
administration/install scaffolds the admin database tables and basic configurations, while system:setup validates routing, MIME types, and environment consistency. This separation prevents partial failures and makes rollback or reinstallation more predictable.
Step 5: Administration & Frontend Access
Once setup completes, DDEV exposes your services through secure HTTPS certificates generated locally. Access the storefront at https://sw67-local.ddev.site and the administration panel at https://sw67-admin.ddev.site. No browser certificate warnings will appear because DDEV injects its CA into your system trust store automatically.
If you encounter routing issues, verify that APP_URL matches the exact DDEV URL (including scheme) and that no trailing slashes remain in environment variables. Shopware 6.7’s router is strict about URL parity to prevent cookie and session mismatches.
Pro Tips & Workflow Optimizations
- Toggle Xdebug On-Demand: Run
ddev xdebugto enable profiling without impacting performance. Disable withddev xdebug off. - Cache Management: Shopware 6.7 uses Symfony’s cache pool strategy. Clear it safely with
ddev exec bin/console cache:clear --env=dev. Avoid manual file deletion invar/cache/. - Team Synchronization: Commit the
.ddev/directory to version control, but exclude.ddev/.dbdump/,vendor/, andnode_modules/in your.gitignore. Share database snapshots viaddev snapshot save/import. - PHP Deprecation Handling: Shopware 6.7 enforces strict deprecation warnings during environment validation. Run
ddev exec bin/console lint:phpearly to catch compatibility issues before they block deployment pipelines.
Conclusion
Pairing Shopware 6.7 with DDEV transforms local development from a configuration-heavy task into a streamlined, production-aligned workflow. By leveraging DDEV’s native shopware6 type, respecting PHP 8.2 requirements, and adapting to Shopware’s updated CLI architecture, you’ll reduce environment drift, accelerate iteration, and maintain parity with staging or production deployments. As Shopware continues refining its performance metrics and headless capabilities, tools like DDEV will remain essential for teams prioritizing speed, consistency, and developer experience.