How to Fix Shopware 6 Stores Without Paying €80/hr to a Symfony Developer

Shopware 6 is the modern Symfony/Vue.js rewrite of the old Shopware 5 — but every customization needs a Symfony-fluent developer billing €60–120/hr. Yet most fixes come down to: a stale Twig template in custom/plugins/[Plugin]/src/Resources/views/storefront/, a missing entity decorator, or a broken theme.json after bin/console theme:compile. SimpleReview's Shopware-aware agent knows the plugin convention and the storefront override system, so it patches the right Twig/SCSS and opens a PR.

mystore.de
SimpleReview extension
Service-Hotline · +49 30 555 0099 Mein Konto · Merkzettel · Kasse
Warenkorb · 0,00 €
Frühlings-Sale läuft jetzt Bis zu 30% auf ausgewählte Artikel · Kostenloser Versand ab 50 €
Sneaker Pro 24
89,90 €
Rucksack Stadt
49,00 €
Kapuzenpullover
39,90 €
Service-Hotline · +49 30 555 0099 Mein Konto · Merkzettel · Kasse
Warenkorb · 0,00 €
FREIVersand ab 50 € · Frühlings-Sale läuft jetzt
✓ Cookie-Banner schließbar · cookie-permission.html.twig pропатчен · PR #42
Beliebte Produkte
Comment×
cookie banner won't close — fix|
Fix it ✓ Done
Shopware expert · ready
waiting for selection…
Detected
PlatformShopware 6.6
ThemeMyTheme
Filecookie-permission.twig
Fix plan
Restore close handler in cookie-permission.html.twig + plugin JS · 2 files
Result
× button works again. GDPR consent stored, banner stays closed.
✓ PR #42 opened
fix(cookie): repair dismiss button
cookie-permission.twig · +6 / -1
Click SimpleReview → select the stuck cookie banner → Fix it → PR opens, no Symfony dev needed
Shopware tweak quoted at 2 hours by your agency? → SimpleReview reads custom/plugins/, finds the storefront override path, opens a PR. Most edits ship the same hour.

Key Takeaways

  • Shopware 6 uses Symfony plugins. Custom code lives in custom/plugins/[YourPlugin]/ and storefront overrides in custom/plugins/[YourPlugin]/src/Resources/views/storefront/.
  • Most "Shopware is broken" symptoms = caches (var/cache/) + theme not recompiled + plugin not refreshed (bin/console plugin:refresh).
  • SimpleReview reads custom/plugins/ and the theme inheritance graph to find the right file fast.
  • Shopware Store (formerly Shopware Community Store) — we publish SimpleReview-Edit plugin: Marketplace → Search → SimpleReview → Add to cart (0€ free tier) → Plugin Manager → Install + Activate.
  • Custom payment app, complex inheritance / decoration patterns, multi-channel/headless API — Vibers human review.

Shopware 6 Plugin Architecture in 60 Seconds

Before fixing anything, know where things live. Shopware 6 inherits Symfony's bundle/plugin structure and adds its own conventions on top.

custom/plugins/MyVendor.MyPlugin/
├── composer.json                  # plugin metadata, entry-point class
├── src/
│   ├── MyPlugin.php               # extends Shopware\Core\Framework\Plugin
│   ├── Resources/
│   │   ├── config/
│   │   │   ├── services.xml       # Symfony DI: services, decorators, subscribers
│   │   │   └── routes.xml         # storefront/admin routes
│   │   ├── views/
│   │   │   └── storefront/        # Twig overrides — extend @Storefront/...
│   │   │       └── layout/header.html.twig
│   │   ├── app/storefront/src/    # SCSS + JS (compiled by theme:compile)
│   │   │   ├── scss/base.scss
│   │   │   └── main.js
│   │   └── snippet/               # translations: storefront.en-GB.json
│   └── Subscriber/
│       └── ProductPageSubscriber.php
└── theme.json                     # only for Theme plugins

Three rules to remember:

The Three-Click Workflow with SimpleReview

  1. Install the SimpleReview Chrome extension from the Chrome Web Store. It's free with your own AI key (Claude Code or Codex). The extension auto-detects Shopware 6 from <meta name="application-name" content="Shopware"> + the data-storefront-config JS handle in the storefront source.
  2. Connect your store's Git repo (GitHub, GitLab, Gitea) or grant SFTP credentials. SimpleReview indexes custom/plugins/, reads composer.json for each plugin, and parses your theme inheritance graph from theme.json.
  3. Open your storefront, click the SimpleReview icon, click the element you want to change. Type the change in plain English: "remove this banner", "add reCAPTCHA to contact form", "hide Powered by Shopware in footer". Click Fix it. The agent finds the right override path, writes the Twig/SCSS, runs plugin:refresh + theme:compile + cache:clear on staging, and opens a Pull Request.

Common Shopware 6 Fixes

Fix "500 — Internal Server Error" / "Twig_Error_Loader" on storefront

Almost always means a plugin's view path is wrong — Twig can't find a template the override is trying to extend. Check custom/plugins/[Plugin]/src/Resources/views/storefront/: the path must mirror the core path exactly. Then run:

bin/console plugin:refresh
bin/console cache:clear
bin/console theme:compile
# If still broken — full rebuild in prod:
bin/console cache:clear --env=prod
composer dump-autoload -o

Also check var/log/prod-*.log (or dev-*.log) for the exact missing template path. SimpleReview reads the log, identifies the missing template, and proposes the right {% sw_extends %} directive in a PR.

Add reCAPTCHA to a custom form

Shopware 6 ships with built-in basic_captcha and honeypot implementations — try those first, they're zero-config. For Google reCAPTCHA you wire in Shopware\Storefront\Framework\Captcha\GoogleReCaptchaV2 (or V3) and add the captcha to your plugin's config.xml:

<!-- src/Resources/config/config.xml -->
<config>
  <card>
    <title>Captcha</title>
    <input-field type="single-select">
      <name>activeCaptchaV2</name>
      <options>
        <option><value>googleReCaptchaV2</value></option>
      </options>
    </input-field>
    <input-field type="text"><name>googleReCaptchaV2SiteKey</name></input-field>
    <input-field type="password"><name>googleReCaptchaV2SecretKey</name></input-field>
  </card>
</config>

Then enable in Admin → Settings → System → Storefront → Captcha. SimpleReview generates the full scaffold — config.xml, the form Twig override ({% sw_include '@Storefront/storefront/component/captcha/base.html.twig' %}), and snippets — in one PR.

Hide "Shopware" / "Powered by" from footer

Override the core footer in your theme plugin:

{# custom/plugins/MyTheme/src/Resources/views/storefront/layout/footer.html.twig #}
{% sw_extends '@Storefront/storefront/layout/footer.html.twig' %}

{# Drop the credit block, keep everything else #}
{% block layout_footer_inner_container_bottom %}{% endblock %}

Then bin/console theme:compile + cache:clear. Don't touch vendor/shopware/ — composer overwrites it on the next update and your edit is gone. The agent always writes the override into your plugin, never into core.

Theme not updating after a Twig edit — theme:compile runs but storefront still old

The classic Shopware 6 trap. The correct sequence is:

bin/console plugin:refresh        # 1. re-read composer + manifest
bin/console theme:refresh         # 2. re-read theme.json
bin/console theme:compile         # 3. compile SCSS + JS bundle
bin/console cache:clear           # 4. drop var/cache/ Twig cache

If still old: check var/cache/ permissions (must be writable by your PHP-FPM user, usually www-data) and run composer dump-autoload -o. In prod environments also flush the HTTP cache (Varnish / Cloudflare) — Shopware emits Cache-Control headers a CDN may have already cached.

Slow admin / Vue.js admin sluggish

Shopware 6 admin is a Vue.js SPA. If it's sluggish in production, you're almost certainly running with APP_ENV=dev. Check .env:

APP_ENV=prod
APP_DEBUG=0
OPCACHE_VALIDATE_TIMESTAMPS=0
SHOPWARE_HTTP_CACHE_ENABLED=1
MAILER_DSN=smtp://...
# Redis cache adapter (much faster than filesystem):
REDIS_DSN=redis://127.0.0.1:6379

Also enable Redis as the cache adapter in config/packages/framework.yaml and OPcache in php.ini with opcache.memory_consumption=256. Most "slow Shopware admin" tickets close after that single env switch.

Shopware Store — Our Plugin

Shopware Store at store.shopware.com is Shopware's official marketplace (formerly Shopware Community Store). We publish SimpleReviewEdit there — currently in review. Once it ships, the install path is:

  1. Admin → Account → log in to your Shopware Account
  2. Marketplace → search "SimpleReview" → 0€ free tier → Add to cart → Checkout
  3. Admin → Extensions → My Extensions → SimpleReview → Install + Activate

Until the marketplace listing is live — the SimpleReview Chrome Extension already auto-detects Shopware from <meta name="application-name" content="Shopware"> + the JS storefront handle, and routes edits to your Git repo. No marketplace install required for the click-to-edit workflow.

Stack requirements. Shopware 6 needs PHP 8.2+, MySQL 8.0+ / MariaDB 10.11+, Composer 2.x, and Node 20+ (for theme compilation). We test SimpleReview against Shopware 6.5 and 6.6 on Ubuntu 22.04 with PHP 8.2 and PHP 8.3.

Comparison Table — Symfony Freelancer vs SimpleReview

StepSymfony / Shopware freelancerSimpleReview agent
Brief30-min Zoom + back-and-forth in chatOne sentence in the popup
Repo / SFTP setup30-90 min — clone, install Composer deps, run plugin:refreshOnce, then cached
Find the override path30-90 min reading vendor/shopware/storefront/ to mirror itInstant — plugin convention is indexed
Make the edit5-30 min5-30 seconds
Run cache / theme commands5-15 min (often forgets theme:refresh)Automated on staging
Open a Pull RequestIf they use Git at allAlways
Cost for a 1-line change€60-150 (1-hour minimum)€0 (BYO key) or pennies of API usage

When You Want a Senior Shopware Developer

SimpleReview handles Twig overrides, SCSS variables, snippets, and small subscribers. It is not a replacement for a senior Shopware engineer when the work touches money, multi-channel, or the persistence layer. Get a human review — Vibers handles this — for:

Vibers takes those PRs — a real human reviews them, sends a fix-up if needed, and approves before merge. Use SimpleReview for the 80%, use a human for the 20% that earns the €100/hr.

Stop Paying €80/hr for One-Twig-File Shopware Edits

SimpleReview's Shopware agent reads custom/plugins/, knows the storefront override system, runs theme:compile + cache:clear for you, and opens a Pull Request.

Install SimpleReview Chrome Extension →

Custom payment app, headless, SW5 migration? Get a human review → Free first PR for a GitHub star.

Frequently Asked Questions

Can I edit a Shopware 6 store without a developer?
For most storefront edits — yes. Shopware 6 uses Twig templates and SCSS in custom/plugins/[YourPlugin]/src/Resources/views/storefront/ and Resources/app/storefront/src/scss/. SimpleReview's Shopware-aware agent reads your plugin, finds the right override file, runs the right console commands (theme:refreshtheme:compilecache:clear), and opens a Pull Request. Custom payment apps, complex entity decorators and headless integrations still want a senior Shopware developer review.
Is SimpleReview safe for a live Shopware shop?
Yes. SimpleReview never pushes to your live branch — every change is a Pull Request you review and merge, and we never touch core/ or vendor/shopware/. Pair it with a staging clone (most managed Shopware hosts include one) and the worst case is a PR you decline. The agent also flags whenever a fix would touch core, payment, or sales-channel code, so you get a heads-up before merge.
Which Shopware versions are supported?
Shopware 6.4 has full coverage; 6.5 and 6.6 are our primary targets — that's what most active stores run today. The agent recognises the standard plugin convention (custom/plugins/[Vendor].[Plugin]/) and the storefront override system documented at developer.shopware.com. Shopware 5 has limited support — its Smarty + Enlight architecture is fundamentally different from SW6's Symfony/Twig stack, so SW5 → SW6 migrations are explicitly a human-review task.
Plugin or App — does SimpleReview pick the right one?
Yes. Shopware 6 has two extension models: classic Plugins (PHP installed on the server, full DI access) and Apps (manifest-based, can run in Shopware Cloud, no server PHP). SimpleReview detects whether you're on Shopware Cloud (Apps only) or on self-hosted/SaaS (both available) and proposes the right scaffold. Most cosmetic, theme, language and Twig-override edits are Plugin work; webhooks, external integrations, Shopware Cloud customisations are App work.
Does it work with custom themes inheriting from @Storefront?
Yes. The Shopware 6 theme system is plain inheritance: your theme extends @Storefront and any view in custom/plugins/[YourTheme]/src/Resources/views/storefront/ overrides the matching path in vendor/shopware/storefront/Resources/views/storefront/. SimpleReview reads the theme inheritance graph (from theme.json + Resources/theme.json) and writes the override into your theme, never into core or vendor.
Is it cheaper than a Shopware freelancer at €60-120/hr?
Dramatically, for the 80% of edits that are one Twig file or one SCSS variable. A Shopware freelancer typically takes 60-90 minutes just to clone the repo, set up an environment, and locate the override path — before touching the actual edit. SimpleReview already knows the plugin convention and the storefront override system, so it's seconds, not hours. It's free with your own AI key (Claude Code or Codex). Use the freelancer budget for the things that actually need senior judgement: payment apps, headless API, performance audits, SW5 → SW6 migration.

Related

Sources