---
title: 'Understanding Extension Types: App, Plugin, and Theme | Shopware Community Hub'
description: >-
  Compare apps, plugins, and themes so you can choose the right technical
  foundation for your extension and plan compatibility from the start.
canonical_url: >-
  https://hub.shopware.comhttps://hub.shopware.com/learn/unit/understanding-extension-types-app-plugin-and-theme
---

# Understanding Extension Types: App, Plugin, and Theme

<LearningObjectives>

- Clearly distinguish between apps, plugins, and themes.
- Select a suitable technical implementation model for a specific extension use case.
- Include cloud compatibility and self-hosted requirements in early planning.
- Treat version compatibility as part of a sustainable product strategy.

</LearningObjectives>

# Understanding Extension Types: App, Plugin, and Theme

Before you build an extension, you need to choose the right technical foundation. This decision affects where the extension can run, how deeply it can integrate with Shopware, how it is maintained, and which merchants can use it.

Shopware documentation describes two main extension types: apps and plugins. Themes are not a separate extension type in the same sense. A theme is a storefront-focused extension that is implemented as a plugin in self-hosted projects or delivered through an app in cloud environments.

In this unit, you will learn how to distinguish apps, plugins, and themes and how to choose the right model before development starts.

## Why the Extension Type Matters

The extension type is not only a technical detail. It defines the boundaries of your product.

If you choose the wrong model, you may run into problems later:

- The extension may not be usable in Shopware Cloud.
- The implementation may require access that the chosen model does not provide.
- The extension may become harder to maintain across Shopware versions.
- Merchants may misunderstand where the extension can be installed.

The goal is to choose the model that fits the use case and the target environment from the beginning.

The extension fundamentals documentation gives a useful starting point: apps are based on an HTTP API and run externally, while plugins run inside the Shopware system and provide deeper access. Themes focus on storefront presentation.

## Apps: Cloud-Compatible Remote Extensions

Apps are designed for Shopware's cloud-ready extension model. They do not run PHP code directly inside the shop system. Instead, they communicate with Shopware through APIs, webhooks, app scripts, and external services.

According to the apps documentation, apps are suitable for use cases such as:

- integrating external systems, for example ERP, CRM, marketing, payment, or analytics tools
- reacting to Shopware events through webhooks
- extending checkout, payment, shipping, or tax behavior through supported app mechanisms
- adding storefront or administration customizations
- delivering theme-related functionality in cloud environments

The important mental model is this:

> An app is the right direction when the extension should be cloud-compatible and can work through APIs, events, app scripts, or external services.

Apps are less intrusive than plugins because they do not run directly inside the Shopware core process. That is useful for cloud compatibility and long-term boundaries, but it also means that partners must design their logic around the supported app extension points.

## Plugins: Deep Integration for Self-Hosted Shops

Plugins are Shopware's PHP-based, server-side extension type. They run directly inside the Shopware environment and can integrate deeply with the platform.

The plugins documentation describes plugins as suitable when you need access to areas such as:

- Symfony services and dependency injection
- events and subscribers
- database migrations
- custom entities or data structures
- CLI commands and scheduled tasks
- administration and storefront extensions
- deeper backend logic inside the Shopware runtime

The important mental model is this:

> A plugin is the right direction when the extension needs deep server-side integration in a self-hosted Shopware environment.

This power also creates responsibility. A plugin can affect the shop more directly than an app. Partners need to think carefully about update-safety, supported extension points, testing, and compatibility with future Shopware versions.

Plugins are not the right choice if the target is Shopware Cloud compatibility. If cloud compatibility is required, the app model must be considered from the start.

## Themes: Storefront Presentation, Not Backend Logic

Themes are focused on the visual appearance of the storefront. They are used for styling, templates, layout behavior, configurable design settings, and storefront presentation.

The storefront themes documentation explains that themes are not a separate extension type in the same way as apps and plugins. A theme is implemented as a plugin in self-hosted projects or delivered through an app in cloud environments.

Themes are suitable when the main goal is to change how the storefront looks and behaves visually, for example:

- overriding Twig templates
- adding custom SCSS or CSS
- defining theme configuration values
- changing typography, spacing, colors, images, or layout details
- assigning a visual design per sales channel

The important mental model is this:

> A theme is the right direction when the extension is mainly about storefront presentation and does not require backend business logic.

If the extension needs custom backend logic, commands, services, or database changes, a theme alone is not enough. In that case, partners need to consider whether the use case belongs in a plugin or an app.

## Choosing the Right Model

The decision usually starts with three questions:

1. Does the extension need to run in Shopware Cloud?
2. Does the extension need deep server-side access inside Shopware?
3. Is the extension mainly about storefront presentation?

Use this table as a first orientation:

| Requirement                                            | Better Starting Point       |
|--------------------------------------------------------|-----------------------------|
| Cloud-compatible extension                             | App                         |
| External service integration                           | App                         |
| Deep backend logic in a self-hosted shop               | Plugin                      |
| Database migrations or custom entities inside Shopware | Plugin                      |
| Storefront design and layout changes                   | Theme                       |
| Theme functionality for Cloud shops                    | App with theme capabilities |
| Theme functionality for self-hosted shops              | Plugin-based theme          |

This table is not a replacement for technical discovery. It helps you ask the right questions early, before the implementation path becomes expensive to change.

## Include Compatibility in the Product Strategy

Choosing the extension type is also a compatibility decision.

In the Shopware Account, the extensions documentation distinguishes between Shopware 6 extensions based on the app system and extensions based on the plugin system. It also describes compatibility-related options such as automatic compatibility with minor version releases and the Compatibility Wizard.

For partners, this means version compatibility should not be treated as an upload detail at the end. It should be planned as part of the product strategy.

Before development starts, partners should already ask:

- Which Shopware versions do we want to support?
- Do we want to support Shopware Cloud, self-hosted shops, or both?
- Does the extension depend on APIs or extension points that are stable for the target versions?
- How will we test compatibility when Shopware releases a new minor version?
- Who is responsible for updating the extension when compatibility changes?

Compatibility is part of merchant trust. If merchants cannot install or update the extension reliably, the product experience suffers even if the feature itself is useful.

## Example: Choosing a Model for a First Extension

Imagine a partner wants to build an extension that connects Shopware to an external warehouse system.

If the integration mainly exchanges data through APIs and should work in Shopware Cloud, an app is the better starting point. The partner can design the extension around external services, authentication, webhooks, and API communication.

If the integration needs deep custom database structures, internal services, and scheduled tasks inside a self-hosted Shopware project, a plugin may be the better fit. The partner then needs to plan more carefully around update-safety and self-hosted compatibility.

If the partner only wants to adjust the storefront design for a specific brand experience, a theme may be enough. But if that visual change also needs backend logic, a pure theme is no longer the full solution.

The key is not to choose the most powerful model. The key is to choose the model that matches the product, the target merchants, and the long-term maintenance plan.

## Common Pitfalls

### Choosing a Plugin When Cloud Compatibility Is Required

Plugins are powerful, but they are not the right model for Shopware Cloud. If cloud compatibility is a requirement, start with the app model.

### Treating a Theme Like a Full Backend Extension

A theme is mainly for storefront presentation. If the extension needs backend logic, custom services, commands, or database changes, a theme alone is not enough.

### Looking Only at the First Release

An extension type may look suitable for version one, but become difficult later if compatibility, updates, or target environments were not considered.

### Describing the Extension Too Generically

Merchants need to understand whether an extension is cloud-compatible, self-hosted only, or storefront-focused. The technical model should also be reflected clearly in the Store listing and documentation.

## Summary

- Apps are cloud-compatible extensions that work through APIs, events, app scripts, and external services.
- Plugins run inside the Shopware system and are suited for deeper self-hosted integrations.
- Themes focus on storefront presentation and are implemented as plugin-based themes or through apps in cloud environments.
- The right extension type depends on the use case, target environment, integration depth, and long-term maintenance strategy.
- Version compatibility should be planned early, not only when the extension is uploaded.

Next, you will look at the Store Review process and the quality expectations that apply before an extension can be approved for the Shopware Store.
