shopware6listed
Install: claude install-skill dpaguba/shopware-skill
# Shopware 6 Development
## Core Architecture
Shopware 6 is a PHP/Symfony platform. Clarify which layer is being targeted before generating code:
| Layer | Tech | Where |
|---|---|---|
| **Core / PHP** | PHP 8.2+, Symfony 7.4 (SW 6.7) / Symfony 7.0 (SW 6.6) | `src/` — Services, DAL, Events |
| **Storefront** | Twig 3, SCSS, Vanilla JS, Vite dev server (6.7.11+) | `src/Resources/views/storefront/` |
| **Admin** | Vue 3, Pinia, Meteor components (`mt-*`), Vite build | `src/Resources/app/administration/` |
| **App System** | manifest.xml (schema 3.0 in 6.7), App Scripts | External server or Twig scripts (no PHP needed) |
**Plugin vs App System:** Use Plugin for self-hosted installs needing direct PHP/DB access. Use App System for SaaS/multi-tenant or when targeting the Shopware Store.
### Which version is this?
Ask or infer the target version before generating code. The current line is **6.7.13.x**; 6.8 is planned
for 2027. 6.7 broke a lot of plugin-facing API, so code that is correct for 6.6 is often wrong for 6.7:
| Topic | SW 6.6 | SW 6.7 |
|---|---|---|
| Payment handler | `Synchronous`/`AsynchronousPaymentHandlerInterface` | `AbstractPaymentHandler` |
| Admin components | `sw-button`, `sw-card`, `sw-text-field` | `mt-button`, `mt-card`, `mt-text-field` |
| Admin state | Vuex `Shopware.State` (deprecated) | Pinia `Shopware.Store` only |
| Admin build | Webpack | Vite |
| `EntityExtension` | `getDefinitionClass()` | plus abstract `getEntityName()` |
| Plugin custom ent