Open ten Shopware stores and a surprising number look the same. Same header, same product grid, same cautious shades of blue. That’s the default theme doing its job, and it does it well. But if your brand has a personality, the default will quietly sand it off. This article walks through how Shopware themes work, how to build one that looks like yours, and where people tend to trip up.
What a Shopware Theme Actually Is
A theme is the layer that controls how your storefront looks and behaves: layout, colours, fonts, templates, the way a product page is arranged. It doesn’t touch your products, orders or pricing. That separation is the whole point.
Under the hood, a Shopware 6 theme is a bundle that inherits from the default Storefront. It’s made of Twig templates for the markup, SCSS for the styling, and JavaScript for anything interactive. A file called theme.json ties it together, defining the assets, inheritance and any settings you want store owners to adjust from the admin. Because a theme inherits from the Storefront, you only write what’s different. You’re overriding a few blocks and variables, not rebuilding the whole front end from nothing. A theme can also be assigned per sales channel, so one Shopware install can run several storefronts that each look different.
Three Ways to Get a Custom Look
Not every store needs a fully hand-built theme. The right approach depends on how far you want to depart from the default, and how much you’re willing to maintain.
- Configure the default theme: change colours, logos, fonts and some layout options straight from the admin. It’s quick, and it’s often enough for smaller stores.
- Use Shopping Experiences: build landing pages, category pages and product page layouts with the block-based editor, no code involved. It changes page structure, though not the underlying templates.
- Build a custom theme: write your own Twig, SCSS and JavaScript on top of the Storefront. You get full control, along with full responsibility.
- Go headless: use Shopware’s APIs with a separate front end, such as a progressive web app. Maximum freedom, and also the most development work by a fair margin.
Plenty of stores combine the first two and never need the third. Don’t build a theme because it sounds more serious.
Plan the Design Before Anyone Writes Code
Here’s where most theme projects are won or lost, and it happens before a single template gets touched. Designers and developers who skip it end up redoing work in week six.
Start with the pages that make money: home, category listing, product page, cart, checkout and account. Sketch those first, on mobile first, since that’s where a big share of your visitors will arrive. Then pin down the brand basics. Colours, type, spacing, how photography should look. Write them down as a small set of rules so the theme can turn them into SCSS variables later. Think about navigation too. A store with 40 products and one with 40,000 need completely different menus, and swapping one for the other after launch is painful.
Get the designs signed off in writing. “Can we just move that button?” is cheap in a wireframe and expensive in a finished theme.
How the Build Works
Once the plan exists, development follows a fairly steady pattern. You can create a theme skeleton from the command line, then work in layers.
- Set up a local environment, usually with Docker, and keep the theme in Git
- Define inheritance and assets in theme.json
- Override Twig blocks using sw_extends instead of copying whole template files
- Set brand colours, fonts and spacing through SCSS variables, so changes ripple through the whole storefront
- Add JavaScript plugins for interactive pieces like sliders or custom filters
- Expose settings in theme.json so non-developers can adjust colours or images from the admin
- Compile with the theme commands and test on a staging store, not the live one
That “override blocks, don’t copy files” rule matters more than any other. Copy a full template and you’ve frozen it at that version, so every Shopware update leaves you a bit more out of sync. Overriding only the block you need keeps the diff small.
Stores with unusual layouts, heavy brand requirements or a headless front end often hand the build to a team offering custom shopware development services, simply because theme code gets tangled quickly when nobody on the team knows Twig inheritance well. Whoever builds it, ask for regular previews on staging.
Speed and Mobile Behaviour
A beautiful storefront that takes six seconds to load is a bad storefront. Design choices have a real cost in performance, and a theme is where most of that cost gets decided.
Watch the heavy things first: oversized images, too many web fonts, big JavaScript bundles, and sliders that load five full-screen photos nobody scrolls to. Serve images in modern formats at the right sizes, and lazy-load whatever sits below the fold. Keep fonts to one or two families. Shopware’s HTTP cache does a lot of work for you, but it can’t rescue a theme that ships a megabyte of unused CSS. Test on an actual mid-range phone over a normal connection, not just a fast laptop. It’s humbling, and it tells you more than any score.
Touch targets, tap-friendly filters and a checkout that doesn’t fight the on-screen keyboard also matter more than people expect. Mobile isn’t a smaller desktop.
Checks Before Launch
Themes tend to look finished before they actually are. A short checklist catches the awkward leftovers that otherwise show up after real customers find them.
- Test every key template in current versions of Chrome, Safari, Firefox and Edge, plus real phones
- Confirm colour contrast, keyboard navigation and form labels meet basic accessibility standards
- Check that heading structure, meta tags, canonical tags and structured data still render correctly
- Run checkout with each payment method, including the failure and back-button cases
- Look at empty states: empty cart, no search results, out-of-stock products, long product names
- Test with a long product title and a missing image, because real catalogues are messier than demo ones
- Verify transactional emails match the storefront’s look
Keeping the Theme Maintainable
A theme isn’t finished at launch. Shopware releases updates regularly, and a theme that was clean in January can be a headache by autumn if nobody’s been looking after it.
Keep the customisations small and documented. Pin Shopware versions in staging, and test updates there before touching production. Leave comments explaining why an override exists, because six months later nobody remembers. Avoid editing Storefront core files, however tempting a quick fix looks at 5pm on a Friday. And revisit the theme every so often to delete things you no longer use. Old overrides and dead CSS accumulate quietly, and they’re a large part of why storefronts slow down over time.
Conclusion
A unique storefront comes from deliberate decisions, not a pile of custom code. Settle the design first, override instead of copy, keep performance in view, and give the theme some upkeep once it’s live. Teams like EmizenTech that build Shopware storefronts usually begin with design and structure instead of code, and that order is worth copying whoever builds yours.
FAQs
How long does it take to build a custom Shopware theme?
A modest theme on top of the default Storefront can take a few weeks. Fully custom designs with new templates, interactive features and several sales channels commonly take a couple of months or more.
Do I need a custom theme, or is the default enough?
The default is enough for many stores, especially when combined with Shopping Experiences. Go custom when your brand, layout or user journey can’t be achieved through configuration alone.
Will a custom theme break when I update Shopware?
It can, particularly if template files were copied wholesale. Themes built by overriding specific Twig blocks are much safer, and testing updates on staging first catches most problems.
Can I use different themes for different storefronts?
Yes. Themes are assigned per sales channel, so each storefront can have its own look, language and currency inside one Shopware installation.
Is headless better for design freedom?
It gives you the most freedom, but it also means building and maintaining a separate front end. For most stores, a well-built Twig theme is simpler and cheaper to run.




















