Skip to content

Overview

Overview

The variety of Shopware's extension interfaces can be overwhelming, so let's start with a simple overview comparing the three approaches Plugins, Themes and Apps.

TaskPluginThemeAppRemarks
Change storefront appearance
Add admin modules
Execute WebhooksApps main functionality is to call Webhooks, but Plugins can be implemented to do that as well.
Modify database structure, add custom entities
Publish in App Store
Publish in Plugin Store
Install in Shopware 6 Cloud Shops
Install in Shopware 6 on-Premise Shops
Add custom logic/routes/commandsApps extract functionalities/logic into separate services, so technically they can add custom logic
Control order of style/template inheritance

Plugins

Plugins are the most powerful extension mechanism, as they can be used to extend, override, modify almost every part of the software. At the same time they can obviously be the most harmful one as well, just for the same reasons. If you want to make deep modifications or add complex functionalities such as

  • Custom price calculation
  • Product imports
  • Customized content / products
  • Connecting 3P identity providers
  • Dynamic validations
  • Customer tracking

You will probably need to write a plugin for that. Follow our Plugin Base Guide to learn how to develop a plugin. You will find further examples in the subsequent section Plugin Fundamentals.

INFO

If your extensions requires nothing of the above but rather template changes, you might be fine with a Theme.

Themes

A theme lets you perform the tasks listed below.

  • Template overrides
  • Custom styles
  • Configuration interfaces
  • Control the order in which styles and templates are loaded

Technically, plugins and themes are very similar and overlap in most of their logic. However, some particular aspects are handled differently, such as template and style priority or activation of the same. Once plugins are installed and activated, their styles and templates are immediately applied. When a theme is installed, it has to be selected within the theme manager first.

INFO

Note, that a plugin can also override templates.

To start your first theme, follow our Theme Base Guide.

Apps

For the aspects listed under Plugins, it is not possible to operate those in cloud environments. Therefore, a different, less intrusive pattern has been introduced. Apps allow for event-based integrations which communicate with external services through a synchronous API.

Most of the logic of the app resides within that third party service, so developers have to make sure to work out the details of the API and provide proper security, protection and reliability to their service. While it comes with those responsibilities, it gives you free choice of which operating environments, frameworks or programming languages to use, as long as our guidelines for Shopware apps are followed.

Apps also provide theme support, so all functionalities of Themes are available to apps as well.