Skip to content

Plugins

Plugins

Plugins are Shopware's server-side extension type, giving you deep integration with the e-commerce platform. They allow you to extend, overwrite, and modify Shopware’s core capabilities. Unlike apps and themes, plugins run directly inside the shop environment and can interact tightly with the system.

You will likely create a plugin when you need deep server-side integration or require complex functionalities such as:

  • Custom price calculation
  • Product imports
  • Custom content/product logic
  • Integrating third-party identity providers
  • Dynamic validations
  • Customer tracking or behavioral logic
GoalGuide
Create a new plugin from scratchPlugin base guide
Add Admin configuration fields (config.xml)Add plugin configuration
Read config in PHP, Admin JS, or StorefrontUse plugin configuration
React to domain eventsListening to events
Register services & DIDependency injection
Database changesDatabase migrations
Composer dependencies in a pluginAdding Composer dependencies
More topicsPlugin fundamentals (logging, cache, routes, …)

INFO

If your extension focuses primarily on Storefront design changes, a theme plugin is often the best choice.

Types of plugins

Shopware plugins differ in their folder structure and functionality.

Plugins

<shopware project root>/custom/plugins contains all plugins from the Shopware store. You install and manage these plugins via the Shopware Administration.

Static plugins

<shopware project root>/custom/static-plugins contains all project-specific plugins that are typically committed to the Git repository.

INFO

The Shopware Administration does not detect static plugins. The project must require them via Composer for them to be installable.

bash
# You can find the vendor/package name in the plugin's composer.json file under "name"
composer req <vendor>/<plugin-name>

Symfony bundle / Shopware bundle

You can also use Shopware/Symfony bundles instead of plugins. Bundles are installed bundles with Composer and offer full control over projects. They are not managed by the Shopware Administration, and are a good choice when you want to avoid plugin lifecycle handling or Administration management.

Feature comparison

FeaturePluginStatic PluginShopware BundleSymfony Bundle
InstallationVia Shopware AdminVia ComposerVia ComposerVia Composer
Repository Locationcustom/pluginscustom/static-pluginsvendor or inside src foldervendor or inside src folder
Lifecycle Events (install, update, uninstall)YesYesNoNo
Can be managed in AdministrationYesNoNoNo
Can be a ThemeYesYesYesNo
Can modify Admin / Storefront with JS/CSSYesYesYesNo
Was this page helpful?
UnsatisfiedSatisfied
Be the first to vote!
0.0 / 5  (0 votes)