About
Andreas Henkel
I build Shopware extensions and keep stores running. Usually both for the same clients — because you only find out whether a solution holds once it is in production.
My extensions have been in the Shopware Store since 2022. The first one came about because a client needed an address field Shopware does not provide that way. It is still maintained today and now runs across eight Shopware generations.
Daily work is rarely a blank page. It is usually stores that have been running for years: an upgrade is due, an integration is missing, the search does not find things. Operations come with it — servers, updates, and the phone call when something fails.
I work on my own. That means you talk to the person writing the code — and get an honest assessment, including when it is that I am not the right person for the job.
How I work
- An extension, not a theme hack
- Customisations belong in their own plugin, on the official extension points. Anything sitting directly in the theme breaks with the next update — and nobody remembers why afterwards.
- The copy first, production second
- Upgrades and larger rebuilds run on a staging environment first. Whatever does not pass cleanly there does not go live.
- Traceable beats fast
- Changelog, migrations, documented configuration. Even when nobody but me is looking right now — it pays off at the next upgrade at the latest.
- Saying no is part of it
- If an off-the-shelf extension solves the problem, or someone else fits better, I say so. A project that does not hold up costs both sides more in the end.
What I work with
Shopware
- Shopware 6
- Plugin-System
- Flow Builder
- Administration (Vue)
- Storefront (Twig)
Backend
- PHP 8
- Symfony
- Doctrine
- MySQL
- Messenger
Frontend
- JavaScript
- Twig
- SCSS
- Tailwind CSS
Operations
- Linux
- nginx
- Apache
- Redis
- OpenSearch
- GitHub Actions
Integrations
- HubSpot API
- n8n
- REST
- Webhooks