Photo: free stock photography (Unsplash licence) — see imprint
How it actually works
Your UI runs in an iframe served by your app, and talks to the admin through a message bridge. You can open modals, show notifications, read the current entity and add buttons to detail pages — without shipping a single line of Vue into Shopware's build.
The upgrade argument
A plugin that overrides an admin Vue component breaks when Shopware refactors that component — and it will. An extension that only speaks through the bridge keeps working. If you have ever spent a week fixing an admin override after a minor update, you already know why this matters.
Design for the frame you are in
Your iframe should look like Shopware, not like your product. Use the admin's spacing and colours, keep the interaction patterns familiar, and never open your own modal inside their modal. A jarring extension gets uninstalled no matter how good the logic is.
Where you still need a plugin
Deeply reworking an existing admin grid, or changing behaviour that has no bridge event. Be honest about it early — discovering the missing capability three weeks in is an expensive way to learn the API surface.
- Bridge-only extensions survive admin refactors.
- Make your iframe look like Shopware, not like you.
- Check the API surface before you promise the feature.
Frequently asked questions
Through the Admin Extension API: your UI runs in an iframe served by your own app and talks to the admin over a message bridge. That gets you modules, modals, notifications, action buttons on detail pages and access to the entity currently open — without shipping any Vue code into Shopware's build. Your frontend stays yours, deployed on your schedule.
Easier this week, expensive every week after. An override binds you to the internal structure of a component that Shopware will eventually refactor — and when it does, your extension breaks with it. Anything that only speaks through the bridge survives that refactor. If you have ever lost a week repairing an admin override after a minor update, you have already paid for this lesson.
Deep surgery on an existing admin grid, and any behaviour there is simply no bridge event for. That is the honest trade: less reach in exchange for not breaking. Check the available surface against your actual feature before you promise a date — finding out in week three that the capability does not exist is an expensive way to learn an API.
Like Shopware. The person using it is in the middle of a task, not admiring your brand. Borrow the admin's spacing, colours and interaction patterns, and never open your own modal inside one of theirs. An extension that feels foreign gets uninstalled regardless of how good the logic underneath is — this is not decoration, it is adoption.
We do this for a living — Shopware, Node.js, React, ERP integration and automation for B2B.
Talk to an engineer