TID Packstationen
Einführung
Das Packstationen Plugin erweitert den Shopware Storefront um Lieferungen an DHL Packstationen und Postfilialen. Kunden können bei der Registrierung, im Checkout und in der Adressverwaltung zwischen einer normalen Lieferadresse und einem DHL-Abholort wählen.
Ein responsiver Finder stellt die verfügbaren Abholorte als Liste und Karte dar. Gesucht werden kann über eine Adresse, Postleitzahl oder Stadt. Nach der Auswahl überträgt das Plugin den DHL-Abholort im erwarteten Adressformat in die Shopware Lieferadresse.
Funktionsweise
Die Packstation-Auswahl wird in die vorhandene Adressverwaltung von Shopware integriert:
- Auswahl zwischen
AdresseundPostfiliale oder Packstation - Suche nach Packstationen und Postfilialen über die DHL Location Finder API
- Darstellung der Ergebnisse als Liste und Karte
- Anzeige von Entfernung, Öffnungszeiten und Barrierefreiheit, sofern DHL diese Daten liefert
- Übernahme des ausgewählten Abholorts in die Lieferadresse
- Speicherung der Postnummer für eine spätere Wiederverwendung
Die DHL-Suche wird durch den Shop-Server ausgeführt.
Der konfigurierte DHL API Key wird deshalb nicht an den Browser des Kunden übertragen.
Packstationen und Postfilialen können ausschließlich als Lieferadresse verwendet werden. Sie können weder als Standard-Rechnungsadresse ausgewählt noch aus einer vorhandenen Standard-Rechnungsadresse erstellt werden.
Voraussetzungen
| Voraussetzung | Beschreibung |
|---|---|
Shopware | Unterstützt werden Shopware 6.6 und 6.7. |
PHP | Erforderlich ist PHP 8.2 oder neuer. |
DHL API Key | Erforderlich für Suchen über die DHL Location Finder API. |
LocationIQ API Key | Optional für die rote Markierung der gesuchten Kundenposition auf der Karte. |
Installation und Update
Das Plugin wird über den für den Shop vorgesehenen Deployment-Prozess mit dem technischen Namen TidPackstationen installiert.
Was nach der Installation gemacht werden sollte:
- DHL Entwicklerkonto erstellen: Im DHL API Developer Portal registrieren und die E-Mail-Adresse bestätigen.
- Zugriff auf den Location Finder beantragen: Unter
My Appseine Developer App anlegen, die Location Finder - Unified API hinzufügen und gegebenenfalls die Freigabe durch DHL abwarten. Die App ist verwendbar, sobald sie alsApprovedangezeigt wird. - DHL API Key übernehmen: In
My Appsdie App und anschließend unterCredentialsdie Location Finder API öffnen. ÜberShowdenConsumer Keyanzeigen und diesen Wert in der Plugin-Konfiguration unterDHL API Keyeintragen. Danach speichern und den DHL-Verbindungstest ausführen. - LocationIQ Access Token einrichten (optional): Bei LocationIQ ein Konto erstellen und bestätigen. Im Dashboard unter
API Access Tokensden vorhandenenAccess TokenüberShow Tokenanzeigen oder einen neuen Access Token erstellen. Diesen Wert unterLocationIQ API Keyeintragen, speichern und den LocationIQ-Verbindungstest ausführen. - Plugin-Einstellungen abschließen: Suchradius, Ergebnislimit, Suchlimit und Postnummer-Regel passend zum Shop konfigurieren. Wird LocationIQ verwendet, muss
LocationIQ-Anfragen pro Sekundezum gebuchten LocationIQ-Tarif passen.
LocationIQ bezeichnet den benötigten Schlüssel offiziell als Access Token.
Ein separater Reverse-Search-Token wird nicht benötigt; das Plugin verwendet den Access Token für die Suche nach den Koordinaten der eingegebenen Postleitzahl oder Stadt.
Konfiguration
Die Konfiguration kann pro Verkaufskanal vorgenommen werden.
DHL Packstationen
| Einstellung | Beschreibung |
|---|---|
DHL API Key | Zugangsschlüssel für die DHL Location Finder API. Der Schlüssel muss vor dem Verbindungstest gespeichert werden. |
Sandbox | Verwendet die DHL-Testumgebung statt der Produktivumgebung. Standardmäßig deaktiviert. |
Suchradius (km) | Umkreis für die DHL-Suche. Möglich sind 1 bis 25 km, Standardwert ist 10 km. |
DHL API Limit | Maximale Anzahl der dargestellten DHL-Abholorte. Standardwert ist 20, technisch werden höchstens 50 Ergebnisse verwendet. |
Suchlimit (pro 20 Sekunden) | Maximale Anzahl akzeptierter DHL-Suchen pro IP-Adresse innerhalb von 20 Sekunden. Möglich sind 2 bis 30, Standardwert ist 5. |
Postnummer-Regel | Legt fest, bei welchen DHL-Abholorten die Postnummer erforderlich ist. |
Warning
Bei aktivierter Sandbox müssen DHL-Sandbox-Zugangsdaten verwendet werden. Produktive Zugangsdaten funktionieren nur bei deaktivierter Sandbox.
Fehler der DHL API werden protokolliert und als kontrollierte Fehlermeldung im Storefront ausgegeben. Nach zu vielen Suchanfragen muss das konfigurierte 20-Sekunden-Zeitfenster abgewartet werden.
Optionale Kartenerweiterung mit LocationIQ
LocationIQ ermittelt die Koordinaten der vom Kunden eingegebenen Postleitzahl oder Stadt. Dadurch kann die gesuchte Position als separate rote Markierung auf der Karte angezeigt werden.
LocationIQ wird nicht für die DHL-Suche oder die von DHL gelieferten Entfernungsangaben benötigt. Schlägt eine LocationIQ-Anfrage fehl, werden die DHL-Ergebnisse weiterhin ohne zusätzliche Positionsmarkierung dargestellt.
| Einstellung | Beschreibung |
|---|---|
LocationIQ API Key | Optionaler Zugangsschlüssel für die Geokodierung der eingegebenen Kundenposition. |
LocationIQ-Verbindung | Prüft den zuvor gespeicherten LocationIQ API Key. |
LocationIQ-Anfragen pro Sekunde | Anfragelimit passend zum verwendeten LocationIQ-Tarif. Möglich sind 1 bis 40, Standardwert ist 2. |
Das LocationIQ-Limit gilt gemeinsam für den konfigurierten API Key und nicht einzeln pro Besucher.
Postnummer-Regel
Die DHL-Postnummer wird im Kunden-Custom-Field dhl_customer_number gespeichert und bei späteren Adressformularen wiederverwendet.
Eine Postnummer besteht immer aus genau 10 Ziffern.
| Einstellung | Beschreibung |
|---|---|
Optional | Die Postnummer kann leer bleiben. Ein angegebener Wert muss immer aus genau 10 Ziffern bestehen. |
Für Packstationen erforderlich | Die Postnummer ist nur bei einer Packstation verpflichtend und bei einer Postfiliale optional. |
Immer erforderlich | Die Postnummer ist für alle vom Plugin angebotenen DHL-Abholorte verpflichtend. |
Die Validierung erfolgt im Storefront und zusätzlich serverseitig bei der Registrierung und Adressverwaltung.
Anwendung
Der Kunde wählt im Lieferadressformular Postfiliale oder Packstation statt Adresse aus.
Anschließend wird:
- Eine Adresse, Postleitzahl oder Stadt eingegeben.
- Die Suche nach verfügbaren DHL-Abholorten gestartet.
- Ein Ergebnis in der Liste oder auf der Karte ausgewählt.
- Die Packstation oder Postfiliale in das Lieferadressformular übernommen.
- Falls erforderlich, die persönliche DHL-Postnummer eingetragen.
Die Suche verwendet das aktive Lieferland des Kunden. Welche Abholort-Typen in einem Land verfügbar sind, richtet sich nach der Antwort der DHL API.
Gespeichertes Adressformat
Der Typ und die Nummer des DHL-Abholorts werden im normalen Shopware Straßenfeld gespeichert:
Packstation 123
Postfiliale 45Postleitzahl, Stadt, Land und Empfänger werden in den zugehörigen Shopware Adressfeldern gespeichert.
Warning
Packstationen und Postfilialen sind immer Lieferadressen. Dass diese Adressen nicht als Rechnungsadresse ausgewählt werden können, ist beabsichtigt und wird zusätzlich über die Shopware Store API abgesichert.
Datenschutz und Einwilligung
Die Kartenbibliothek Leaflet ist im Plugin enthalten und wird lokal ausgeliefert.
Die eigentlichen Kartenkacheln werden jedoch durch den Browser des Besuchers von tile.openstreetmap.org geladen.
Dabei werden übliche Verbindungsdaten wie die IP-Adresse an den Kartenserver übertragen.
Die Option Einwilligung für den Packstation-Finder voraussetzen ist standardmäßig deaktiviert.
Bei deaktivierter Option wird:
- Kein zusätzlicher Packstation-Eintrag in Shopwares Cookie-Verwaltung angelegt
- Der Packstation-Finder ohne Einwilligungsprüfung angeboten
- Die OpenStreetMap-Karte beim Öffnen initialisiert
Bei aktivierter Option wird:
- Der Packstation-Finder bis zur Einwilligung ausgeblendet
- Keine Karte vor der Einwilligung initialisiert
- Bei Ablehnung oder Widerruf zu einer normalen Lieferadresse zurückgewechselt
- Eine bereits geöffnete Karte geschlossen
Die normale Lieferadressfunktion bleibt auch ohne Einwilligung verfügbar.
Shopware Cookie-Verwaltung
Bei aktivierter Einwilligungsoption fügt das Plugin automatisch folgenden Eintrag zu Shopwares Cookie-Verwaltung hinzu:
| Element | Wert |
|---|---|
| Gruppe | Packstation-Finder |
| Eintrag | OpenStreetMap-Karte |
| Einwilligungs-Cookie | tid-packstation-consent |
| Akzeptierter Wert | 1 |
| Gültigkeit | 30 Tage |
Bei Verwendung der nativen Shopware Cookie-Verwaltung ist keine weitere Einrichtung erforderlich.
Das Cookie tid-packstation-consent speichert ausschließlich die lokale Einwilligungsentscheidung des Plugins und ist kein OpenStreetMap-Cookie.
Usercentrics
Warning
Das Shopware Plugin kann keinen Datenverarbeitungsdienst im externen Usercentrics-Konto anlegen.
Wenn Usercentrics die Einwilligung steuern soll, muss OpenStreetMap manuell im Usercentrics Admin Interface eingerichtet und veröffentlicht werden.
Die manuelle Einrichtung ist erforderlich, wenn:
- Der Shop Usercentrics verwendet
- Die Option
Einwilligung für den Packstation-Finder voraussetzenaktiviert ist - Usercentrics die OpenStreetMap-Einwilligung steuern soll
Dafür wird:
- Das Usercentrics Admin Interface geöffnet.
- Ein Datenverarbeitungsdienst für
OpenStreetMaphinzugefügt oder erstellt. - Die
Template IDaus den Einstellungen des Dienstes kopiert. - In Shopware die Konfiguration des TID Packstationen Plugins geöffnet.
- Die ID in
Usercentrics-Template-ID oder Dienstnameeingefügt und gespeichert. - Die geänderte Usercentrics-Konfiguration veröffentlicht.
- Der Storefront einmal mit erteilter und einmal mit abgelehnter Einwilligung getestet.
Der exakte Dienstname kann alternativ verwendet werden.
Die Template ID wird empfohlen, da sie bei einer Umbenennung oder Übersetzung des sichtbaren Dienstnamens stabil bleibt.
Sobald Usercentrics erkannt wurde, ist dessen Entscheidung maßgeblich. Kann der konfigurierte Bezeichner keinem Dienst zugeordnet werden, behandelt das Plugin die Einwilligung als nicht erteilt und blendet den Packstation-Finder aus.
Externe Datenflüsse
| Dienst | Verbindung | Übertragene Daten |
|---|---|---|
DHL Location Finder | Shop-Server zu DHL | Lieferland und eingegebener Suchort. Der DHL API Key verbleibt auf dem Shop-Server. |
LocationIQ | Shop-Server zu LocationIQ | Eingegebene Postleitzahl oder Stadt. Der LocationIQ API Key verbleibt auf dem Shop-Server. |
OpenStreetMap | Browser des Besuchers zu OpenStreetMap | Kartenkachel-Anfragen mit üblichen Verbindungsdaten wie der IP-Adresse. |
Warning
Die Einwilligungsoption stellt eine technische Sperre bereit. Die rechtliche Bewertung und die Formulierung der Datenschutzerklärung bleiben Aufgabe des Shopbetreibers.
Rule Builder
Das Plugin fügt die Shopware Bedingung Lieferadresse ist ein DHL-Abholort hinzu.
Die Bedingung erkennt Lieferadressen, deren Straßenfeld mit Packstation oder Postfiliale beginnt.
Damit kann zum Beispiel:
- Eine Versandart nur für DHL-Abholorte angeboten werden
- Eine Versandart für Packstationen und Postfilialen ausgeschlossen werden
- Eine vorhandene Versandregel um DHL-Abholorte ergänzt werden
Die konkrete Wirkung richtet sich nach der Versand- und Regelkonfiguration des Shops.
Packstation Insights
Unterhalb der Bestellungen stellt die Administration den Bereich Packstation Insights bereit.
Für den Zugriff ist die Berechtigung order.viewer erforderlich.
Die Auswertung enthält:
- Gesamte Suchen sowie Suchen für heute, diese Woche und diesen Monat
- Vergleiche mit dem Vortag sowie dem vorherigen Wochen- und Monatszeitraum
- Anteil der Suchen mit mindestens einem Ergebnis
- Anzahl der Bestellungen an Packstationen und Postfilialen
- Aktivster Verkaufskanal
- Aufgetretene Suchlimit-Ereignisse
- Tagesdiagramm mit normalen Bestellungen und DHL-Abholort-Bestellungen für
7,14oder30Tage - Such- und sortierbare Bestelltabelle mit Empfänger, Abholort, Ziel, Status und Verkaufskanal
- Filter nach Verkaufskanal und Zeitraum
Für die Suchauswertung speichert das Plugin das Datum, die Verkaufskanal-ID sowie Zähler für Suchen, erfolgreiche Suchen und Suchlimit-Ereignisse. Der eingegebene Suchtext und die IP-Adresse des Besuchers werden nicht in der Analytics-Tabelle gespeichert.
Die Bestellübersicht verwendet die bereits vorhandenen Shopware Bestell- und Lieferadressen. Es wird keine zweite Kopie der Bestellungen angelegt.
Warning
Für die Suchauswertung ist keine automatische Aufbewahrungs- oder Löschfrist konfiguriert. Falls eine begrenzte Aufbewahrung erforderlich ist, muss diese durch den Shopbetreiber umgesetzt werden.
Plugin-Daten und Deinstallation
Das Plugin erstellt und verwendet folgende Daten:
| Element | Beschreibung |
|---|---|
dhl_customer_number | Kunden-Custom-Field für die wiederverwendbare DHL-Postnummer. |
packstationen_custom_fields | Custom-Field-Set des Plugins. |
tid_packstation_search_daily | Tabelle für die täglichen Such- und Suchlimit-Zähler der Packstation Insights. |
tid_packstationen<environment>.log | Rotierendes Plugin-Log mit maximal 10 Dateien. |
Bei der Deinstallation werden das Custom-Field-Set und die Analytics-Tabelle nur entfernt, wenn in Shopware nicht die Option zum Beibehalten der Plugin-Daten gewählt wurde.
Fehlerbehebung
Warum ist der Packstation-Finder nicht sichtbar?
- Prüfen, ob die Einwilligung für den Packstation-Finder aktiviert ist
- Bei Shopware Cookies prüfen, ob
Packstation-Finder / OpenStreetMap-Karteakzeptiert wurde - Bei Usercentrics prüfen, ob der OpenStreetMap-Dienst angelegt und veröffentlicht wurde
- Prüfen, ob die konfigurierte Template ID mit dem Usercentrics-Dienst übereinstimmt
- Bei abgelehnter Einwilligung ist das Ausblenden des Finders beabsichtigt
Warum liefert die DHL-Suche keine Ergebnisse?
- Den DHL API Key speichern und über den Verbindungstest prüfen
- Prüfen, ob Sandbox und verwendete DHL-Zugangsdaten zur selben Umgebung gehören
- Das aktive Lieferland, den Suchbegriff und den Suchradius prüfen
- Nach einer Suchlimit-Meldung das 20-Sekunden-Zeitfenster abwarten
- Die Plugin-Logs auf eine kontrollierte DHL-Fehlermeldung prüfen
Warum zeigt die Karte keine rote Positionsmarkierung?
Ohne konfigurierten LocationIQ API Key ist dieses Verhalten normal. Die DHL-Abholorte und deren Entfernungsangaben funktionieren weiterhin.
Wenn LocationIQ verwendet wird:
- Den LocationIQ API Key speichern und über den Verbindungstest prüfen
- Das konfigurierte Sekundenlimit mit dem verwendeten LocationIQ-Tarif vergleichen
Warum sind Änderungen nach einem Update nicht sichtbar?
- Administration und Storefront neu bauen, sofern erforderlich
- Das aktive Theme kompilieren
- Shopware- und Anwendungscaches nach dem verwendeten Deployment-Prozess leeren
Warum kann eine Packstation nicht als Rechnungsadresse ausgewählt werden?
Dieses Verhalten ist beabsichtigt. Packstationen und Postfilialen werden ausschließlich als Lieferadressen unterstützt.