$ cd leistungen$ cd projekte$ cd whoami$ cd journal$ cd kontakt$ termin

kontakt@erniez28.de · Hagen · remote

open_for_projects = true · freie Kapazität ab sofort

FreelanceShopware 6 Entwicklerfür Agenturen & Shopbetreiber.

Ich baue Plugins, Storefronts und Schnittstellen, die auch nach dem nächsten Update noch laufen. Und wenn es brennt, bringe ich Deinen Shop wieder zum Laufen.

10+

Jahre E-Commerce-Praxis

50+

betreute Kundensysteme

6.7

aktuelle Shopware-Version im Einsatz

100 %

remote im DACH-Raum

01 · leistungen

Wenn der Standard nicht mehr reicht.

Ich springe da ein, wo Shopware-Projekte technisch haken. Als Verstärkung für Agenturen oder direkt für Dein Shop-Team.

01

Plugin-Entwicklung

Wenn Shopware etwas nicht kann, baue ich es dazu. Über Events, eigene Entities im DAL und Erweiterungen der Administration, damit das nächste Update nichts kaputt macht.

SymfonyDALVue-AdminCMS-Elemente
Mehr dazu
02

Storefront & Updates

Themes mit Twig, SCSS und eigenen JS-Plugins. Und wenn ein Update auf 6.7 plötzlich Templates bricht, finde ich den Block, der sich verschoben hat.

Twig 3SCSS / BEMJS-Plugins6.6 → 6.7
Mehr dazu
03

Schnittstellen

Shopware spricht mit ERP, Warenwirtschaft oder Print-on-Demand. Mit Token-Auth, Validierung und einem Log, in dem man nachlesen kann, was wirklich passiert ist.

Admin-APIWebhooksERPPython
Mehr dazu
04

Wartung & Notfall-Hilfe

Updates, Backups, Monitoring und Security-Checks. Und wenn nach einem Update nur noch Wartungsmodus oder 500er kommt, hole ich den Shop zurück. Wartung ab 150 € im Monat.

UpdatesMonitoringCVE-ChecksRecovery
Mehr dazu

02 · aus der werkstatt

Problem. Ursache. Fix.

Drei echte Fälle aus meinen Projekten, mit dem Code, der das Problem gelöst hat.

Eigenentwicklung · Shopware 6 · v1.4.0 produktiv

Landingpages ohne Header, Footer und Ärger

Problem
Landingpages sollten ohne Header und Footer laufen. Blendet man den Header aus, bleibt ein weißer Spalt von 70 bis 170 Pixeln, weil das Theme feste Abstände setzt. Beim Neuinstallieren brach das Plugin mit SQL-Fehler 1062 ab. Und ohne Footer fehlen Pflichtangaben.
Lösung
Ein Event Subscriber liest die Einstellungen cache-sicher aus, ohne überflüssige ESI-Subrequests. Custom-Field-Sets werden vorher gesucht und vorhandene IDs weiterverwendet, dadurch läuft jede Installation sauber durch. Eigene CMS-Elemente liefern Impressum, Widerruf und GPSR-Herstellerangaben als Pop-up.
PHP 8.2Symfony 6DALHTTP-Cache / ESIVue-Admin
Ganze Fallstudie lesen ↗
src/Service/CustomFieldInstaller.php+6 −2
1−$setRepo->create([$customFieldSet], $context);
2−// SQLSTATE[23000]: 1062 Duplicate entry
3+$existing = $setRepo->search(
4+ (new Criteria())->addFilter(new EqualsFilter('name', self::SET_NAME)),
5+ $context
6+)->first();
7+$set['id'] = $existing?->getId() ?? Uuid::randomHex();
8+$setRepo->upsert([$set], $context);

Streetwear-Shop · Shopware 6.7 · Theme

Update auf 6.7 ohne Template-Crash

Problem
Nach dem Update auf Shopware 6.7 warf die Storefront Twig-Fehler. Shopware hatte alte Template-Pfade entfernt, das Child-Theme erweiterte aber noch die alten Dateien.
Lösung
Alle Child-Templates auf die neuen Pfade umgestellt und veraltete Blöcke entfernt. Dazu kamen ein Navigationsmenü, das wie ein Garagentor herunterfährt, und eine Vollbild-Suche. Beides als Storefront-JS-Plugin, mit Escape zum Schließen und sauberem Fokus.
Shopware 6.7Twig 3SCSS / BEMVanilla JS
Ganze Fallstudie lesen ↗
views/storefront/component/buy-widget/buy-widget.html.twig+4 −1
1−{% sw_extends '@Storefront/storefront/page/product-detail/buy-widget.html.twig' %}
2+{% sw_extends '@Storefront/storefront/component/buy-widget/buy-widget.html.twig' %}
3
4// GarageDoorNavPlugin.js
5+document.addEventListener('keydown', (event) => {
6+ if (event.key === 'Escape') this.closeAll();
7+});

Betrieb · Recovery · DDEV

Wenn das Update schiefgeht

Problem
Updates scheitern an inkompatiblen Plugins, abgebrochenen Composer-Läufen oder kaputten Migrationen. Dann hängt der Shop im Wartungsmodus oder zeigt nur noch einen 500er.
Lösung
Ein Restore-Skript spielt Live-Backups reproduzierbar in eine lokale DDEV-Umgebung ein, setzt die Domains per SQL um und fährt danach Refresh, Indexierung und Theme-Build. So lässt sich der Fehler lokal nachstellen, ohne den Live-Shop anzufassen.
BashSQLDDEVbin/console
Ganze Fallstudie lesen ↗
scripts/restore-from-backup.sh+7 −1
1−HTTP/1.1 503 Service Unavailable
2+sed -e '/^CREATE DATABASE/d' -e '/^USE `/d' "$SQL_FILE" > import.sql
3+ddev import-db --file=import.sql
4+ddev mysql -e "UPDATE sales_channel_domain SET url='https://$LOCAL_DOMAIN'
5+ WHERE id = UNHEX('$PRIMARY_DOMAIN_ID');"
6+ddev exec bin/console plugin:refresh
7+ddev exec bin/console dal:refresh:index
8+ddev exec bin/console theme:compile

03 · changelog

Referenzen & Momentum.

Was zuletzt passiert ist, als Git-Log. Eine Zeile anklicken, dann klappt der Diff auf.

~/erniez28 · git log --onelinetail -f
Astro · statisches HTML · 0 Tracker
Lebenslauf als Jump’n’Run unter /whoami
Schriften und Bilder selbst gehostet
Ernies Quest spielen ↗
Next.js · MySQL · REST
Aufträge per Knopfdruck an die Produktion übergeben
Status und Versand zurück in die Zentrale
9 Kurse · SIEM, IDS, Linux, SQL, Python
Security-Blick auf jedes Shop-Projekt
verify HCHP1KRB0IHY ↗
Feb bis Okt 2025
IT-Infrastruktur, Web-Architektur, Linux
strukturierte Fehleranalyse und Debugging
Netzwerke, Betriebssysteme, Systemadministration
solides Fundament unter dem Dev-Stack
verify N65BH8UF9K73 ↗
veraltete Template-Pfade
Garagentor-Navigation und Vollbild-Suche
responsives Listing mit CSS Grid
Eigenprojekt
AES-256-GCM komplett im Browser
Schlüssel nur im URL-Fragment, der Server sieht nie Klartext
eigenes Shopware-6-Plugin, heute v1.4.0
Header, Footer und Top-Button je Seite steuerbar
cache-sicher und sauber neu installierbar
Mitarbeit, technische Verantwortung
Zahlung, Versand und Bestellprozess integriert
Backup-Restore-Skript für reproduzierbare Entwicklung
aintlikeyouclothing.com ↗
~/avatar.jpgSascha „Ernie“ Ernst mit Cap, Sonnenbrille und Vollbart
Sascha Ernst
Freelance Shopware 6 Developer
basis
Hagen, NRW · remote DACH
erfahrung
10+ Jahre E-Commerce
zuletzt
Leitung IT & Web
davor
stellv. Leitung E-Commerce
sprachen
Deutsch, Englisch (C1)
status
● open_for_projects

04 · whoami

Vom Backblech zum Backend.

Ich bin Sascha, alle nennen mich Ernie. Mit drei habe ich am Atari Pac-Man gespielt, mit zehn DOS-Befehle gelernt. Danach wurde ich erst mal Bäcker. Der Weg in die Entwicklung ging über Baustelle, Elektrowerkstatt, Abi im zweiten Anlauf, Wirtschaftsinformatik und sechs Jahre IT-Support.

Seit 2017 entwickle ich beruflich Websites und Shops: in einer Marketingagentur, als stellvertretende Leitung E-Commerce mit über 50 Kundensystemen und zuletzt als Leitung IT & Web. Dort habe ich unter anderem den Onlineshop einer großen Bäckerei betreut. Der Kreis hat sich geschlossen.

Heute arbeite ich selbstständig, remote für Agenturen und Shopbetreiber. Am liebsten da, wo es technisch hakt.

ERNIES QUEST▶ PRESS START

05 · zusammenarbeit

So arbeiten wir zusammen.

Kein Pitch-Deck, keine Agentur-Schleifen. Du sprichst direkt mit dem, der den Code schreibt.

01

Erstgespräch

30 Minuten, kostenlos. Du erzählst, worum es geht. Ich sage Dir ehrlich, ob ich der Richtige dafür bin.

02

Einschätzung

Ich schaue mir Code, Shop oder Ticket an und schätze Aufwand und Risiken. Abgerechnet wird nach Aufwand oder zum Festpreis.

03

Umsetzung

In Deinem Workflow mit Git, Tickets und Staging. Für Agenturen auch als Subunternehmer unter Eurem Namen.

04

Übergabe & Betrieb

Doku und eine saubere Übergabe. Wenn Du willst, kümmere ich mich danach um Updates und Wartung.

06 · faq

Häufige Fragen.

Was Agenturen und Shopbetreiber vor dem ersten Gespräch meistens wissen wollen.

Arbeitest Du auch als Subunternehmer für Agenturen?

Ja. Ich arbeite mich in Euren Workflow ein, nutze Eure Repos und Tickets und trete auf Wunsch unter Eurem Namen auf. Deine Kunden bleiben Deine Kunden.

Mit welchen Shopware-Versionen arbeitest Du?

Schwerpunkt ist Shopware 6 bis zur aktuellen Version 6.7. Erfahrung mit Shopware 5 habe ich auch, ebenso mit Magento, Shopify und WooCommerce.

Was kostet eine Zusammenarbeit?

Das hängt vom Projekt ab. Nach dem Erstgespräch bekommst Du eine Einschätzung und ein Angebot nach Aufwand oder zum Festpreis. Wartungspakete beginnen bei 150 € im Monat.

Hilfst Du auch, wenn der Shop gerade nicht läuft?

Ja. Für Wartungskunden gilt: Steht der Shop oder der Checkout, reagiere ich werktags innerhalb von 4 Stunden, bei allem anderen innerhalb von 24 Stunden. Wenn Du noch kein Kunde bist, schreib mir trotzdem. Ich helfe, sobald es meine Kapazität erlaubt.

Was ist in der Wartung enthalten?

Shopware- und Plugin-Updates, die ich vorher auf einer Testumgebung prüfe, tägliche Backups, Monitoring, regelmäßige Sicherheits-Checks und ein festes Stundenkontingent für kleine Anpassungen. Ab 150 € im Monat, monatlich kündbar.

Wie schnell kannst Du starten?

Meine aktuelle Verfügbarkeit steht oben im Terminal. Ein Erstgespräch kannst Du direkt im Kalender buchen.

Arbeitest Du nur remote?

Ja, zu 100 %. Ich sitze in Hagen (NRW) und arbeite für Kunden in Deutschland, Österreich und der Schweiz.

$ ./projekt --start

Was steht bei Dir als Nächstes an?

Erzähl mir kurz, worum es geht. Im Erstgespräch klären wir, ob und wie ich helfen kann.

oder direkt: kontakt@erniez28.de