# Plugins

Das **Shopware 6 Plugin System** ist ein flexibles und modular aufgebautes System, mit dem Entwickler Funktionalitäten zur Shopware-Plattform hinzufügen oder bestehende Features erweitern können. Es basiert auf dem Symfony-Framework und verwendet moderne PHP-Standards.

### Zielsysteme

Shopware Plugins können sowohl in selbst gehosteten Shopware Shops als auch für PaaS (Cloud) Shops verwendet werden. SaaS (Cloud) eignet sich hierfür nicht.

### **Kernmerkmale des Shopware 6 Plugin Systems**:

1. **Modularität**
   * Plugins können unabhängig entwickelt, installiert und aktualisiert werden.
   * Erweiterungen beeinflussen den Shop nicht direkt, sondern ergänzen oder verändern bestimmte Bereiche.
2. **Zwei Hauptarten von Erweiterungen**
   * **Apps**: Plattformunabhängige Erweiterungen, die per API mit Shopware interagieren und keine direkten Code-Änderungen vornehmen.
   * **Plugins**: PHP-basierte Erweiterungen, die tief in das System integriert sind und die Core-Funktionalität direkt verändern können.
3. **Symfony Event System & Hooks**
   * Plugins nutzen das **Event-Listener-System**, um bestehende Prozesse zu beeinflussen oder eigene Logik hinzuzufügen.
   * **Subscriber** können sich an Events binden, um beispielsweise Bestellprozesse oder das Frontend zu erweitern.
4. **Dependency Injection (DI)**
   * Das Plugin-System nutzt Symfony's DI-Container für die Verwaltung von Services, wodurch Erweiterungen effizient und flexibel eingebunden werden.
5. **Datenbankerweiterung mit Migrations**
   * Plugins können eigene Datenbanktabellen oder Felder über **Migrations-Skripte** hinzufügen.
6. **Theme-Erweiterung & Twig-Templates**
   * Plugins können das Frontend durch eigene Templates, Blöcke oder Erweiterungen in Twig anpassen.
7. **Verwaltung über das Shopware Admin Panel**
   * Plugins lassen sich bequem über den **Admin-Bereich** installieren, aktivieren und konfigurieren.
