SHOPWARE-APP-ARCHITEKTUR: STRUKTUR UND KOMPONENTEN EINER SHOPWARE-APP VERSTEHEN.

SHOPWARE-APP-ARCHITEKTUR: STRUKTUR UND KOMPONENTEN EINER SHOPWARE-APP VERSTEHEN.

Das Shopware-App-System bietet eine nahtlose und mühelose Möglichkeit, die Plattform zu erweitern und anzupassen und ermöglicht Entwicklern die Nutzung klar definierter Erweiterungspunkte. Mit Shopware haben Sie die Freiheit, sich auf die Schnittstelle zwischen Ihrer App und der Plattform zu konzentrieren, ohne sich auf die Komplexität des zugrunde liegenden Systems einzulassen. Unabhängig davon, ob Sie eine bestimmte Programmiersprache oder ein bestimmtes Framework bevorzugen, können Sie Ihr vorhandenes Fachwissen nutzen, um maßgeschneiderte Lösungen zu entwickeln.

Durch die Entkopplung von Shopware und Ihrer App ist eine hervorragende Kompatibilität mit dem mandantenfähigen Cloud-System gewährleistet. Durch die Nutzung der Admin-API und Webhooks für die Kommunikation kann Ihre App nahtlos in Shopware integriert werden, was einen effizienten Datenaustausch und die Ereignisabwicklung erleichtert. Dieser robuste Integrationsansatz stellt sicher, dass Ihre App skalierbar, zuverlässig und kompatibel mit zukünftigen Updates der Plattform bleibt. Die Sicherheit des Shopware-App- Systems steht an erster Stelle. Das System folgt einem berechtigungsbasierten Modell, das es Ihrer App ermöglicht, bestimmte Berechtigungen für den Zugriff auf Daten innerhalb der Shopware-Instanz anzufordern. Dadurch wird sichergestellt, dass Ihre App nur auf die erforderlichen Daten zugreift und vertrauliche Informationen nicht ohne entsprechende Autorisierung beeinträchtigen oder ändern kann. Darüber hinaus erzwingt das App-System eine strikte Trennung zwischen Ihrer App und dem Shopware-Kern und verhindert so unbefugte Änderungen oder Manipulationen am Kernsystem.

Shopware stellt außerdem sichere APIs wie die Admin API zur Verfügung, die eine sichere Kommunikation zwischen Ihrer App und der Plattform gewährleisten. Diese APIs entsprechen den Best Practices der Branche für Authentifizierung, Autorisierung und Verschlüsselung und gewährleisten die Vertraulichkeit und Integrität der zwischen Ihrer App und der Shopware-Instanz ausgetauschten Daten.

Insgesamt rationalisiert das Shopware-App-System den Entwicklungsprozess und ermöglicht Ihnen die Erstellung leistungsstarker und maßgeschneiderter Lösungen, die sich nahtlos in die Plattform integrieren. Indem Sie die umfangreichen Funktionen von Shopware nutzen, Ihre bevorzugte Programmiersprache verwenden und robuste Sicherheitsmaßnahmen integrieren, können Sie innovative und sichere Apps erstellen, die die Funktionalität und Benutzererfahrung von Shopware-basierten Online-Shops verbessern.

 

Kommunikation zwischen Shopware und Ihrer App

Shopware kommuniziert mit Ihrer App ausschließlich über HTTP-Anfragen, sodass Sie die Freiheit haben, einen Tech-Stack zu wählen, der solche Anfragen verarbeiten kann. Ihre App definiert HTTP-Endpunkte in der Manifestdatei, um Ereignisbenachrichtigungen von Shopware zu empfangen. Wenn im Shop ein relevantes Ereignis auftritt, sendet Shopware automatisch die entsprechenden Daten an Ihre angegebenen Endpunkte. Diese Echtzeitkommunikation ermöglicht es Ihrer App, auf dem neuesten Stand zu bleiben und zeitnah auf wichtige Ereignisse innerhalb des Shopware-Ökosystems zu reagieren.

Während der Verarbeitung dieser Ereignisse kann Ihre App die Shopware-API nutzen, um zusätzlich benötigte Daten abzurufen. Die Shopware-API bietet Zugriff auf eine Vielzahl von Informationen, darunter Lagerbestände, Kundendaten und Bestellungen. Durch die Nutzung der Shopware-API kann Ihre App ihre Funktionalität erweitern und Shopware-Benutzern maßgeschneiderte Funktionen bieten.

 

Dateistruktur

Erstellen Sie einen Ordner für Ihre Anwendung im Verzeichnis „custom/apps“ Ihrer Shopware-Entwicklungsinstallation. In diesem Ordner befinden sich alle Dateien und Ressourcen, die sich auf Ihre App beziehen. Fügen Sie im App-Ordner eine Manifestdatei ein, die die Details und Spezifikationen Ihrer App definiert.

Der Aufbau sieht so aus:

└── Benutzerdefiniert

├── Apps

│ └── MyExampleApp

│ └── manifest.xml

└── Plugins

 

Manifestdatei

Die Manifestdatei, die als zentraler Punkt Ihrer App dient, definiert die Schnittstelle zwischen Ihrer App und der Shopware-Instanz. Damit können Sie wichtige Informationen zu Ihrer App bereitstellen, wie z. B. den Namen, die Version und die Beschreibung. Wenn Sie einen App-Server verwenden, können Sie die Registrierungs-URL auch in der Manifestdatei angeben. Darüber hinaus können Sie mit dieser Datei verschiedene Aspekte Ihrer App definieren, einschließlich des Admin-Moduls, benutzerdefinierter Felder, Cookies und Berechtigungen. Als zentrale Konfigurationsdatei kapselt sie wichtige Details und Funktionalitäten Ihrer App innerhalb des Shopware-Ökosystems.
Weitere Informationen finden Sie in der Shopware-Manifest-Referenz .

 

App-Server

Der App-Server für das Shopware-App-System ist eine entscheidende Komponente, die eine nahtlose Integration von Drittanwendungen und Erweiterungen innerhalb des Shopware-Ökosystems ermöglicht. Es dient als Brücke zwischen Frontend und Backend, bearbeitet Anfragen von der Client-Seite und stellt die notwendigen Ressourcen und Funktionen bereit. Der App-Server kann mit verschiedenen Technologien wie Laravel, Node.js oder jedem anderen bevorzugten Framework erstellt werden. Shopware selbst stellt ein Symfony-Bundle bereit, eine Sammlung vorkonfigurierter Symfony-Komponenten, die den Entwicklungsprozess vereinfachen und die Kompatibilität mit der Shopware-Plattform gewährleisten. Durch die Nutzung des App-Servers können Entwickler die Funktionen von Shopware erweitern, benutzerdefinierte Funktionen erstellen und das Einkaufserlebnis für Benutzer insgesamt verbessern.

 

Registrierungsanfrage

Um den Registrierungsprozess für Ihre App zu starten, muss eine GET-Anfrage an eine bestimmte URL gestellt werden, die in der Manifestdatei Ihrer App angegeben ist. Die im XML-Format geschriebene Manifestdatei enthält wichtige Informationen zu Ihrer App und ihrer Konfiguration. Im Manifest finden Sie einen Abschnitt zur Einrichtung, in dem Sie die Registrierungs-URL definieren. Hier ist ein Beispielausschnitt aus der Manifestdatei:

<?xml version="1.0" encoding="UTF-8"?>

<manifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/shopware/platform/trunk/src/Core/Framework/App/Manifest/Schema/manifest-2.0.xsd">

<meta>

     ...

</meta>

<setup>

     <registrationUrl>https://my.example.com/registration</registrationUrl>

</setup>

</manifest>

Wenn die Registrierungsanfrage gestellt wird, handelt es sich um eine GET-Anfrage, die Abfrageparameter enthält. Diese Parameter können durch das von Shopware bereitgestellte Symfony Bundle automatisch verarbeitet und überprüft werden. Dieses Paket vereinfacht den Verifizierungsprozess und stellt sicher, dass die Registrierung sicher und rationalisiert ist.

Weitere Informationen finden Sie im offiziellen Symfony-Paket für App Server

Schaufenster

Einer der Vorteile des Shopware-App-Systems besteht darin, dass es den Storefront-Erstellungsprozess übernimmt und die Einrichtung eines externen Servers überflüssig macht. Stattdessen können Sie Ihre Änderungen mühelos in die Storefront integrieren, indem Sie Ihre benutzerdefinierten Dateien wie .html.twig, .js oder .scss im Ressourcenordner Ihrer App platzieren.

 

App-Skripte

Das Shopware-App-System bietet leistungsstarke Funktionen wie App Scripts und Script Hooks. App-Skripte ermöglichen die Einbindung benutzerdefinierter Logik, die im Shopware-Stack ausgeführt wird, und ermöglichen so umfangreichere und tief integrierte Erweiterungen. Script Hooks bieten die Flexibilität, Code an bestimmten Ausführungspunkten einzuschleusen und erweitern so die Funktionalität von Shopware. Zusammengenommen ermöglichen diese Funktionen Entwicklern, dynamische und maßgeschneiderte Erlebnisse zu schaffen, die sich nahtlos in Shopware integrieren lassen, das Benutzererlebnis verbessern und individuelle Geschäftsanforderungen erfüllen.

 

Skript-Hooks

Im Shopware-App-System werden Skripte durch „Hooks“ ausgelöst, die als Einstiegspunkt für jedes Skript dienen. Durch die Registrierung von Skripten in Ihrer App können Sie angeben, welche Hooks deren Ausführung auslösen sollen. Wenn ein Hook ausgelöst wird, erhält Ihr Skript Zugriff auf die relevanten Daten aus dem aktuellen Ausführungskontext, sodass Sie bei Bedarf darauf reagieren oder Datenmanipulationen durchführen können.

Informationen zur Verwendung von Skripten finden Sie in der Script-Hooks-Referenz .

 

Skripte

App-Skripte im Shopware-App-System sind im Wesentlichen Twig-Dateien, die in einer Sandbox-Umgebung ausgeführt werden. Diese Skripte werden bei bestimmten Hooks registriert und erhalten Zugriff auf die Daten und vordefinierten Dienste des zugehörigen Hooks. Auf diese Weise können Sie benutzerdefinierte Logik innerhalb des Skripts ausführen und dabei die verfügbaren Daten und Dienste nutzen. Dies ermöglicht eine nahtlose Integration und Anpassung, sodass Sie dynamisches App-Verhalten effizient erstellen können.

 

└── DemoApp

├── Ressourcen

│ └── Skripte // Alle Skripte werden in diesem Ordner gespeichert

│ ├── product-page-loaded // Jedes Skript in diesem Ordner wird ausgeführt, wenn der Hook „product-page-loaded“ ausgelöst wird

│ │ └── mein-erstes-skript.twig

│ ├── Warenkorb

│ │ ├── first-cart-script.twig

│ │ └── second-cart-script.twig // Sie können mehrere Skripte pro Hook ausführen

│ └── …

└── manifest.xml

 

Verwaltung

Um die Shopware-Administration zu erweitern, hat das einfache Überschreiben und Erweitern von Administrationskomponenten durch die Bereitstellung benutzerdefinierter JavaScript-Dateien im Namensraum Ressourcen/Administration keine Auswirkung. Stattdessen stehen spezielle Erweiterungspunkte zur Erweiterung der Administration mit alternativen Methoden zur Verfügung. Eine dieser Methoden ist das Hinzufügen benutzerdefinierter Module zur Verwaltung Ihrer App. Diese Module werden als Iframes eingebettet in die Shopware-Administration geladen, wo Ihre Website angezeigt wird. Mit diesem Ansatz können Sie Ihre benutzerdefinierten Funktionen nahtlos in die Verwaltung integrieren und so ein maßgeschneidertes Benutzererlebnis bieten.

<?xml version="1.0" encoding="UTF-8"?>

<manifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/shopware/platform/trunk/src/Core/Framework/App/Manifest/Schema/manifest-2.0.xsd">

<meta>

     ...

</meta>

<admin>

     <module name="exampleModule"

             source="https://example.com/promotion/view/promotion-module"

             parent="sw-marketing"

             position="50"

     >

         <label>Example module</label>

         <label lang="de-DE">Beispiel Modul</label>

     </module>

</admin>

</manifest>

Alternativ können Sie Admin Extension SDK verwenden, um Admin-Module zu erstellen. Weitere Informationen finden Sie in der Admin Extension SDK-Dokumentation

 

Webhooks

Über Webhooks im Shopware-App-System können Sie Veranstaltungen in Shopware abonnieren. Wenn ein Ereignis auftritt, wird eine POST-Anfrage an die angegebene URL für dieses Ereignis gesendet. Um Webhooks in Ihrer App zu verwenden, fügen Sie ein <webhooks>-Element in Ihre Manifestdatei ein, wie unten gezeigt:

<?xml version="1.0" encoding="UTF-8"?>

<manifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/shopware/platform/trunk/src/Core/Framework/App/Manifest/Schema/manifest-2.0.xsd">

<meta>

     ...

</meta>

<webhooks>

     <webhook name="product-changed" url="https://example.com/event/product-changed" event="product.written"/>

</webhooks>

</manifest>Das Shopware-App-System bietet Entwicklern die Flexibilität, die Plattform entsprechend ihren spezifischen Anforderungen zu erweitern und anzupassen. Durch die Entkopplung der Bereitstellung von Shopware und der App können Entwickler die Admin-API und Webhooks nutzen, um die Kommunikation zwischen beiden herzustellen. Die Struktur der App umfasst die Erstellung eines dedizierten Ordners mit einer Manifestdatei, die die Details und Spezifikationen der App definiert. Die Manifestdatei dient als zentraler Punkt der App und kapselt wichtige Informationen wie den Namen, die Version, die Beschreibung und die Funktionen der App. Durch die Freiheit, ihre bevorzugte Programmiersprache oder ihr bevorzugtes Framework zu wählen, können Entwickler ihr Fachwissen nutzen, um maßgeschneiderte Lösungen zu entwickeln, die sich nahtlos in Shopware integrieren lassen.

Leave a Reply

Your email address will not be published. Required fields are marked *