Shopware ist die Standard-Wahl für ernsthaften E-Commerce in Deutschland, Österreich und der Schweiz. Die Plattform ist technisch stark: Verkaufskanäle, Multi-Währung, Symfony-basierte Architektur, richtige Message Queues. Aber wenige Chat-Tools integrieren auf der Produktkatalog-Ebene für Shopware. Die meisten bieten ein generisches Widget, das nicht weiß, was Sie verkaufen.
Ich habe ein Emporiqa-Plugin für Shopware 6 entwickelt, weil DACH-Shops spezifische Bedürfnisse haben: Multi-Währung-Unterstützung, Sales-Channel-Isolation und saubere Erweiterbarkeit durch Service-Decoration. Ein Chat-Assistent für diese Shops muss all das respektieren.
Was Ihre Kunden bekommen
Der Chat-Assistent verwaltet drei Arten von Konversationen:
- Produktentdeckung: Kunden suchen in natürlicher Sprache. "Warme Jacke zum Wandern" oder "Geschenk für Papa unter 50 Euro" gibt relevante Produkte mit hybrider Suche zurück (Vektor + Schlüsselwort). Funktioniert über 65+ Sprachen, so dass ein deutscher Kunde Produkte auf Englisch beschrieben finden kann.
- Kundensupport: Fragen zu Versand, Rückgaben und Shop-Policies werden von Ihren CMS-Landing-Seiten beantwortet. Der Assistent referenziert Ihren tatsächlichen Inhalt, nicht generische Antworten.
- Bestellverfolgung: Optional. Wenn aktiviert, können Kunden ihren Bestellstatus direkt im Chat überprüfen.
Wenn der Assistent nicht sicher ist, eskaliert er an Ihr Team mit vollem Konversations-Kontext.
Warum Webhook-Architektur für Shopware
Das Plugin verwendet Shopwares Event-Subscriber-System. ProductSubscriber lauscht auf Produkt-Schreib- und Lösch-Events. OrderSubscriber lauscht auf konfigurierbare Bestellzustands-Übergänge. Wenn ein Event auslöst, versendet das Plugin eine WebhookMessage an Shopwares Message Queue.
Das bedeutet Webhook-Lieferung ist vollständig async. Speichern eines Produkts im Admin ist instant. Der Message-Queue-Worker übernimmt das Event und liefert es asynchron an Emporiqa. Gescheiterte Nachrichten werden automatisch von der Queue erneut versucht.
Für die initiale Synchronisierung bietet das Plugin sowohl CLI-Befehle (bin/console emporiqa:sync:products) als auch ein Admin-Dashboard mit einem Sync-Button und Progress-Tracking.
Umgang mit Shopwares Komplexität
Sales-Channel-Isolation: Shopwares Sales-Channel-Architektur bedeutet das gleiche Produkt kann in mehreren Storefronts mit unterschiedlichen Preisen, Währungen und Sprachen erscheinen. Das Plugin erkennt automatisch Ihre Storefront-Sales-Channels und generiert Channel-Keys aus ihren Namen. Produkte und Seiten werden nach Channel gefiltert, so dass jedes Storefront-Chat-Widget nur über diesen Storefront-Katalog weiß.
Multi-Währung: Preise werden in allen Währungen, die für jeden Sales-Channel konfiguriert sind, synchronisiert. Das Widget übergibt die aktive Währung an den Assistenten, so dass ein Kunde im CHF-Modus Schweizer-Franken-Preise sieht, nicht Euro-Preise. Steuerdisplay-Modi (Brutto, Netto oder beide) sind konfigurierbar.
CMS-Seiten: Shopwares Content-Modell verwendet CMS-Seiten für Landing-Pages und Shop-Seiten. Das Plugin synchronisiert beides: Landing-Pages direkt, und Shop-Seiten (statische Content-Kategorien wie "Über uns" oder "Versandinformationen"), die CMS-Inhalt anhängen haben.
Mehrsprachig: Produkte werden mit Übersetzungen aus allen Channel-Sprachen synchronisiert, konsolidiert in eine Payload pro Produkt. Cross-Language-Suche funktioniert hier: eine Anfrage auf Französisch findet deutsche beschriebene Produkte, wenn die Bedeutung passt.
Kategorien: Produkt-Kategorien werden mit übersetzten hierarchischen Wegen synchronisiert. Ein Produkt in "Elektronik > Fernseher" auf Englisch erscheint als "Elektronik > Fernseher" auf Deutsch.
Anpassung
Alle Core-Services verwenden Interfaces und folgen Shopwares Standard-Decoration-Muster:
ProductFormatterInterface: modifizieren Sie Produktdaten bevor sie gesendet werdenCmsPageFormatterInterface: modifizieren Sie Seiten-DatenWebhookClientInterface: ersetzen Sie den HTTP-ClientConfigServiceInterface: überschreiben Sie KonfigurationsauflösungSyncServiceInterface: überschreiben Sie Sync-OrchestrierungChannelResolverInterface: passen Sie an wie Sales-Channels auf Emporiqa-Channel-Keys abbilden
Wenn Sie benutzerdefinierte Produktfelder hinzufügen müssen, ändern wie Preise formatiert sind, oder ändern die Sync-Logik für Ihr spezifisches Setup, schmücken Sie den relevanten Service in Ihrem eigenen Plugin. Keine Core-Modifizierungen erforderlich.
Das Plugin versendet auch Events an Key-Punkten: PreSyncEvent und PostSyncEvent um Full-Syncs, PostProductFormatEvent und PostPageFormatEvent nach Formatierung und PostOrderFormatEvent nach Bestellung-Payloads. Sie können diese lauschen, um Daten zu filtern, zu bereichern oder zu loggen ohne einen ganzen Service zu schmücken.
Warenkorb und Checkout
Mit aktivierten Warenkorb-Operationen können Kunden Produkte hinzufügen, Mengen aktualisieren, Items entfernen und direkt vom Chat auschecken. Das Plugin exposes Storefront-API-Endpunkte bei /emporiqa/api/cart/*, die das Widget über einen globalen EmporiqaCartHandler aufruft. Shopwares natives Warenkorb-Widget aktualisiert sich automatisch nach jeder Operation, so dass der Mini-Cart in Sync bleibt.
Für angemeldete Kunden bezieht das Widget einen signiertes Benutzer-Token, so dass der Assistent die Konversation personalisieren kann. Das Token wird Server-seitig mit HMAC-SHA256 generiert und in der Browser-Session gecacht.
Was dies nicht tut
Das Plugin verwaltet Produkt-Synchronisierung, Seiten-Synchronisierung, Warenkorb-Operationen, Bestellverfolgung, Conversion-Tracking und das Chat-Widget. Es tut nicht:
- Verlassene-Warenkorb-E-Mails oder SMS versenden
- Ersetze Ihr CRM oder Helpdesk
- Biete Sprach- oder Bildsuche
- Funktioniere unter Shopware 6.6.0 oder auf Shopware 5
Bestellverfolgung ist optional. Ohne es werden Kunden, die nach Bestellungen fragen, stattdessen vom Support-Agent verwaltet.
Ist dies die richtige Übereinstimmung?
Wenn Ihr Shopware-Shop Kunden über mehrere Sprachen oder Währungen dient, oder Ihr Team die gleichen Produkt- und Policy-Fragen wiederholt beantwortet, wird ein Chat-Assistent, der Ihren Katalog kennt, diese Zeit sparen. Das Conversion-Tracking-Dashboard zeigt, ob es Umsatz antreibt: Chat-Sitzungen zu Warenkorb-Adds zu Käufen.
Wenn Ihr Shop einen kleinen Katalog hat und Ihre Kunden immer direkt zu dem navigieren, was sie wollen, ist der Wert niedriger.
Erste Schritte
Erstellen Sie einen kostenlosen Sandbox-Shop (100 Produkte, 20 Seiten) zum Testen der Integration vor Festlegung. Installieren Sie das Plugin vom Shopware-Extension-Manager (oder via Composer für Self-Hosted-Shops), verbinden Sie es mit Ihrer Sandbox, führen Sie eine Synchronisierung durch und sehen Sie wie der Assistent Ihren Katalog verwaltet. Die Shopware-Dokumentation deckt das komplette Setup ab.
Siehe Emporiqa für Shopware 6 für die Übersicht, oder erstellen Sie eine kostenlose Sandbox und folgen Sie dem Shopware-Setup-Guide zum Starten.