Install
$ agentstack add skill-dpaguba-shopware-skill-shopware6 ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
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 6.4 (SW 6.5) / Symfony 7 (SW 6.6+) | src/ — Services, DAL, Events | | Storefront | Twig 3, SCSS, Vanilla JS | src/Resources/views/storefront/ | | Admin | Vue 3, Shopware Admin API | src/Resources/app/administration/ | | App System | manifest.xml, 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.
Plugin Structure
PluginName/
├── composer.json
├── src/
│ ├── PluginName.php # Bootstrap class
│ ├── Resources/
│ │ ├── config/
│ │ │ └── services.xml # Symfony DI container
│ │ ├── views/
│ │ │ └── storefront/ # Twig template overrides
│ │ └── app/
│ │ └── administration/ # Vue.js admin extensions
│ └── Migration/ # Database migrations
└── tests/
Plugin Bootstrap
Common tags: kernel.event_subscriber, twig.extension, console.command, messenger.message_handler, shopware.entity.definition, shopware.entity.extension, shopware.rule.definition, shopware.payment.method.sync, shopware.payment.method.async, shopware.cms.element.
2. Listen to Events (Subscriber)
class ProductSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents(): array
{
return ['product.written' => 'onProductWritten'];
}
public function onProductWritten(EntityWrittenEvent $event): void
{
foreach ($event->getWriteResults() as $result) {
$id = $result->getPrimaryKey();
}
}
}
3. DAL Read & Write
// Read
$criteria = new Criteria();
$criteria->addFilter(new EqualsFilter('active', true));
$criteria->addAssociation('manufacturer');
$result = $this->productRepository->search($criteria, $context);
// Write
$this->productRepository->upsert([
['id' => $id, 'name' => 'New Name'],
], $context);
4. Override a Storefront Template
{# Mirrors original path under views/storefront/ #}
{% sw_extends '@Storefront/storefront/page/product-detail/index.html.twig' %}
{% block page_product_detail_content %}
Custom content
{{ parent() }}
{% endblock %}
5. Decorate a Service
Karpathy Principles — Clarify Before Coding
Surface these assumptions before generating code:
- Version? SW 6.5 vs 6.6 (API and Vue component differences exist)
- Plugin or App System? Plugin = PHP server; App = manifest.xml + external/no server
- Layer? PHP/Core, Storefront, Admin, or headless/Store API
- Read or write? Repository
search()vsupsert()/create()/update() - Entity or extension? New table vs extending existing entity
Write only the minimum code that solves the problem. Shopware's DI and event system handle most complexity.
DAL Quick Reference
// Criteria
$criteria->addFilter(new EqualsFilter('active', true));
$criteria->addFilter(new ContainsFilter('name', 'shirt'));
$criteria->addFilter(new RangeFilter('price', [RangeFilter::GTE => 10]));
$criteria->addAssociation('manufacturer');
$criteria->addSorting(new FieldSorting('name', FieldSorting::ASCENDING));
$criteria->setLimit(25)->setOffset(0);
// Context
$context = Context::createDefaultContext(); // system
// OR inject SalesChannelContext from route / event
// IDs only (faster, no hydration)
$ids = $this->repo->searchIds($criteria, $context)->getIds();
Admin Vue.js Quick Reference
// Register module
Shopware.Module.register('my-module', {
type: 'plugin',
routes: { index: { component: 'my-module-index', path: 'index' } },
navigation: [{ label: 'my-module.title', path: 'my.module.index', icon: 'default-shopping-paper-bag' }],
});
// Override existing component
Shopware.Component.override('sw-product-detail', {
methods: {
async saveProduct() {
await this.$super('saveProduct'); // call original
},
},
});
CLI Commands
bin/console plugin:install --activate PluginName
bin/console database:migrate --all PluginName
bin/console cache:clear
bin/console plugin:refresh
bin/build-administration.sh
bin/build-storefront.sh
bin/console theme:compile
php vendor/bin/phpunit --testsuite=unit
vendor/bin/phpstan analyse src --level=8
Additional Resources
Reference Files
Load these when working on specific areas:
- [references/dal.md](references/dal.md) — DAL: EntityDefinition, Criteria, Aggregations, custom fields, Entity Extensions (extend core entities)
- [references/admin.md](references/admin.md) — Admin: Vue modules, components, overrides, naming conventions, ACL privileges, filter/inline edit, search config
- [references/storefront.md](references/storefront.md) — Storefront: Twig inheritance, SCSS/theme variables, JavaScript plugins, controllers
- [references/themes.md](references/themes.md) — Themes: theme.json (config fields, colors, fonts, media), SCSS Bootstrap overrides, theme inheritance, ThemeInterface, CLI commands
- [references/cart.md](references/cart.md) — Cart: CartDataCollector, CartProcessor, CartValidator + custom errors, discount line items, price manipulation, Tax Provider
- [references/seo-mail.md](references/seo-mail.md) — SEO: SeoUrlRoute, sitemap URL provider; Mail: custom mail templates (migration + send); Documents (custom PDF types); Order State Machine (transitions, events)
- [references/plugin-structure.md](references/plugin-structure.md) — Full plugin anatomy: services.xml, lifecycle hooks, composer.json, console commands, scheduled tasks
- [references/api.md](references/api.md) — Admin API & Store API: CRUD, bulk, filters; context token lifecycle, Cart/Checkout/Account Store API, TypeScript client pattern
- [references/testing.md](references/testing.md) — PHPUnit unit/integration, StaticEntityRepository, ProductBuilder, Jest, Cypress, assertSame vs assertEquals
- [references/app-system.md](references/app-system.md) — App System: manifest.xml, webhook HMAC verification, registration handshake, App Scripts (Twig-based, no server)
- [references/security.md](references/security.md) — Security: route scopes, CSRF protection, input validation, authorization by customer, SQL injection prevention
- [references/integrations.md](references/integrations.md) — Integrations: Payment Handler (sync/async), Shipping Method, CMS Elements, Rule Builder conditions, Flow Builder events
- [references/performance.md](references/performance.md) — Performance: HTTP Cache (tags, invalidation), Message Queue (async processing), Elasticsearch/OpenSearch, object cache
- [references/devops.md](references/devops.md) — DevOps: structured logging, PHPStan, php-cs-fixer, CI/CD, deployment, debugging, media handling, upgrade safety
- [references/advanced.md](references/advanced.md) — Advanced: PHP Attributes entities (SW 6.6.3+), Flysystem (public/private file storage), Redis (cache/queue), Rate Limiter (compiler pass + RateLimiter service), Data Indexer, Field Inheritance (variants), In-App Purchases
Examples
Working code examples in examples/:
- [examples/custom-entity/](examples/custom-entity/) — Complete custom entity plugin (Definition, Entity, Repository, Migration)
- [examples/storefront-subscriber/](examples/storefront-subscriber/) — Storefront page loaded subscriber with template variable injection
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: dpaguba
- Source: dpaguba/shopware-skill
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.