---
title: Extensibility | Shopware Community Hub
description: >-
  Explore Shopware’s comprehensive extensibility framework, from
  configuration-based customization to powerful plugin development. Learn how to
  choose the right…
canonical_url: 'https://hub.shopware.com/learn/unit/solutions-architect-extensibility'
---

# Extensibility

<LearningObjectives>

- Understand the different ways to **customize and extend** Shopware.
- Recognize the importance of choosing the **right approach** with the lightest footprint.
- Gain insights into the **various levels** of customization, from configuration to the plugin system.

</LearningObjectives>

# Introduction to Shopware Extensibility

Shopware offers a wide range of options for customizing and extending its functionalities. The platform encourages choosing the approach with the lightest footprint whenever possible to ensure stability and maintainability. Each method of customization comes with its own capabilities and limitations, making it essential to find the right balance based on project requirements.

## Configuration

At the most basic level, Shopware allows extensive customization through configuration settings. These settings cover various aspects of the platform, from shipping methods and tax settings to data schemas for different entities. The administration section under "Settings" is where most configurations can be found. These include simple feature flags and more complex setups.  

<img src="../../assets/images/SW6712_admin_settings_overview.png" width="705">  

Extensions installed on the platform, whether apps or plugins, also add their own configuration options.

Shopware's configuration system allows users to extend entities like customers, products, and orders with custom field sets. These fields can vary in type, providing the flexibility to make Shopware compatible with external systems like PIMs, CRMs, and other integrated applications.

The frontend can be customized through theme configuration, which influences styling, and through the CMS (Shopping Experiences), which adjusts layouts. Rule Builder adds a layer of business logic to these configurations. For instance, specific content or shipping methods can be displayed to particular customer segments based on rules. Flow Builder takes this further by enabling event-based manipulation, such as sending segmented emails or notifications when certain actions occur.

<img src="../../assets/images/customer-register-flow.png" width="305">

The primary benefit of using configuration settings is their inherent backward compatibility and reduced risk of conflicts, as the platform manages everything.

## Data-Oriented Extensibility

For more advanced data-oriented customization, Shopware offers several tools:

- **Flow Builder HTTP Calls and Webhooks**: These allow egress operations, sending data from Shopware to external systems when certain events occur.

- **RESTful APIs**: These provide ingress operations, allowing external systems to interact with Shopware by performing CRUD (Create, Read, Update, Delete) operations. The APIs are particularly useful for integrating with IPaaS solutions or other direct integrations. Detailed API schema definitions can be found [here](https://shopware.stoplight.io/).

It's important to note that settings, configurations, and extensions can augment the API schema with additional fields and endpoints, making each Shopware instance unique in its capabilities.

## Theme System

The Shopware theme system allows for extensive customization of the storefront's look and feel. Themes can control everything from color schemes and typography to layout structures and responsive behaviors. Developers can create custom themes by building on top of Shopware's base themes or starting from scratch.

**Summary of Capabilities:**

- **Styling**: Control over all visual aspects of the storefront, including CSS and JavaScript.

- **Layouts**: Custom page layouts can be defined to cater to specific design requirements.

- **Components**: Themes can include reusable components that can be applied across the storefront for consistency.

- **Extensibility**: Themes can be extended or overridden, allowing for deep customization without altering the core theme files.

Themes play a critical role in delivering a branded and cohesive user experience, aligning the visual presentation with the shop's unique identity.

## App Extensions

The App system was introduced as a more stable and less invasive way to extend Shopware. Unlike the plugin system, which allows for any kind of change, the app system is designed to minimize conflicts and breaking changes by enforcing a more controlled approach to customization.

**Key Features of App Extensions:**

- **Manifest.xml**: By using the manifest file, developers can declare the functionality and behavior of the app, reducing the chances of conflicts with other extensions or platform updates.

- **Administration Interfaces** using the [Meteor Admin SDK](https://developer.shopware.com/docs/guides/plugins/apps/administration/meteor-admin-sdk.html) rich admin interfaces can be built with ease.

- **Complex handlers**: Handlers to add tax calculations, payment functionality, custom pricing and discounts, new API endpoints, search functionality, and more.

- **External Logic**: Complex business logic can be handled outside the Shopware platform, with communication facilitated via HTTP APIs.

The app system represents a paradigm shift in how Shopware handles extensibility, prioritizing platform stability and robustness over unrestricted customization.

Read more: [Apps Concept](https://developer.shopware.com/docs/concepts/extensions/apps-concept.html).

## Plugin System

The Plugin system is the most traditional and powerful approach to extending Shopware. It leverages the Symfony bundle system combined with Shopware's modular platform architecture.

**Capabilities of the Plugin System:**

- **Full Control**: Plugins allow for deep customization of the platform, including business logic, database schema definitions, and more.

- **PHP-Based**: The primary language used in plugin development is PHP, allowing developers to write custom code to achieve almost any functionality.

- **Symfony Integration**: The plugin system integrates seamlessly with Symfony, allowing developers to use all of Symfony's powerful tools and features.

While the plugin system offers the most extensive customization options, it also carries the highest risk of conflicts and maintenance challenges. As such, it's important to use this approach judiciously, ensuring that plugins are well-designed and compatible with the overall platform architecture.

Read more: [Plugins Concept](https://developer.shopware.com/docs/concepts/extensions/plugins-concept.html).

## Conclusion

Shopware provides a rich set of tools for customization, ranging from simple configurations to powerful plugins. The key to effective extensibility is choosing the right approach based on the specific needs of the project. By leveraging the platform's built-in tools like configurations, APIs, themes, apps, and plugins, developers can create robust, customized ecommerce solutions while maintaining platform stability and performance.

Each layer of extensibility comes with its own benefits and trade-offs, and the right balance will ensure that the solution is both powerful and maintainable.
