Das punchout.dev-Plugin für Shopware 6.7 gibt das Script-Tag aus, markiert die Warenkorbseite für punchout.dev und meldet Punchout-Einkäufer in ihrem Kundenkonto an.
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“| Voraussetzung | Wert |
|---|---|
| Shopware | 6.7 (>=6.7 <6.8) |
| PHP-Erweiterungen | sodium, json |
| Plugin | PunchoutDev, Version 2.0.1 oder neuer |
| Download | PunchoutDev-<version>.zip aus dem Tab Einbindung des Shops im Portal (Shopsystem: Shopware) |
Installieren
Abschnitt betitelt „Installieren“In der Administration
Abschnitt betitelt „In der Administration“- Laden Sie das Plugin im Tab Einbindung des Portals herunter.
- Laden Sie die Zip-Datei in der Shopware-Administration in der Erweiterungsverwaltung unter Erweiterungen hoch.
- Installieren und aktivieren Sie punchout.dev.
Auf der Kommandozeile
Abschnitt betitelt „Auf der Kommandozeile“Entpacken Sie die Zip-Datei nach custom/plugins. Sie enthält einen Ordner, das Plugin landet also in custom/plugins/PunchoutDev. Führen Sie dann aus:
bin/console plugin:refreshbin/console plugin:install --activate PunchoutDevbin/console cache:clearplugin:install führt die Migration des Plugins aus. Sie legt die Tabelle an, mit der das Plugin jedes Login-Token nur einmal annimmt. Ohne diese Tabelle schlägt jeder Auto-Login fehl, und der Einkäufer kauft als Gast ein.
Konfigurieren
Abschnitt betitelt „Konfigurieren“Öffnen Sie in der Administration Erweiterungen und wählen Sie beim Eintrag punchout.dev die Aktion Konfigurieren. Jede Einstellung lässt sich je Verkaufskanal setzen.
Karte „Snippet“
Abschnitt betitelt „Karte „Snippet““| Einstellung | Wert |
|---|---|
| Snippet einbinden | An (Standard). Bei Aus wird gar kein Script-Tag ausgegeben. |
| Snippet-URL | https://js.punchout.dev/pob.js, aus dem Tab Einbindung des Portals. Bleibt das Feld leer, wird nichts ausgegeben. |
| API-Basis-URL (optional) | Leer lassen. |
Karte „Auto-Login“
Abschnitt betitelt „Karte „Auto-Login““| Einstellung | Wert |
|---|---|
| Auto-Login aktivieren | An (Standard). |
| Shop-ID | Die Shop-ID aus dem Tab Einbindung des Portals. |
| Public-Key-Zeilen | Jede Zeile aus dem Tab Auto-Login des Portals, Abschnitt Öffentliche Schlüssel, eine je Zeile. Zeilen, die mit # beginnen, und leere Zeilen werden ignoriert. |
Dieselben Werte auf der Kommandozeile:
bin/console system:config:set PunchoutDev.config.snippetUrl https://js.punchout.dev/pob.jsbin/console system:config:set PunchoutDev.config.tenantId pob_live_…bin/console system:config:set PunchoutDev.config.publicKeys "k1=…"bin/console cache:clearDas Plugin gibt dieses Tag auf jeder Storefront-Seite im Block base_body_script aus:
<script async src="https://js.punchout.dev/pob.js" data-shop-id="pob_live_…"></script>Was das Plugin markiert
Abschnitt betitelt „Was das Plugin markiert“Auf der Warenkorbseite umschließt das Plugin den Twig-Block page_checkout_cart_product_table mit <div data-punchout-cart>. Dieser Block rendert die Tabelle der Positionen und sonst nichts: Die Bestellübersicht, das Formular für Aktionscodes und der Checkout-Button bleiben außerhalb. Das Plugin gibt den Marker auch aus, wenn Snippet einbinden aus ist. Für sich allein bewirkt der Marker nichts.
Auto-Login
Abschnitt betitelt „Auto-Login“Der Login-Endpunkt des Plugins ist GET /punchout-dev/login?token=…. Richten Sie die Portalseite im Tab Auto-Login des Shops ein:
| Portalfeld | Wert |
|---|---|
| Adapter | Shopware |
| Login-Pfad | /punchout-dev/login für einen Shop direkt auf der Domain. Ein Shop in einem Unterverzeichnis stellt dessen Pfad voran, zum Beispiel /shop/public/punchout-dev/login. |
| Kundenreferenz | Kunden-ID, Kundennummer oder E-Mail-Adresse. Unter Shopware funktionieren alle drei. |
Tragen Sie dann im Tab Einkäufer für jeden Einkäufer-Zugang die Shop-Kundenreferenz ein: die Kunden-ID, die Kundennummer oder die E-Mail-Adresse des Kunden, je nach Auswahl oben.
Nach der Anmeldung leitet das Plugin unverändert auf den Landing-Pfad weiter und setzt den Basispfad des Shops nicht davor. Liegt der Shop in einem Unterverzeichnis, muss der Landing-Pfad im Tab Allgemein das Unterverzeichnis enthalten, zum Beispiel /shop/public/checkout/cart.
Das Plugin meldet einen Kunden nur an, wenn genau ein aktiver Kunde passt. Gastkonten passen nie, und ein Kunde, der an einen anderen Verkaufskanal gebunden ist, passt ebenfalls nicht. Die Kunden-ID funktioniert mit und ohne Bindestriche. Der vollständige Ablauf steht auf der Seite Auto-Login.
Setup-Selbsttest
Abschnitt betitelt „Setup-Selbsttest“- Erzeugen Sie im Tab Einrichtung des Shops im Portal einen Setup-Link (standardmäßig 60 Minuten gültig).
- Legen Sie 2 oder 3 verschiedene Produkte in den Warenkorb.
- Öffnen Sie die Warenkorbseite mit dem Setup-Link.
Ist das Plugin aktiv, zeigt das Panel schon vor dem Klick „Shop-Plugin erkannt — der Warenkorb ist bereits markiert.“ Klicken Sie auf Warenkorb erkennen; das Ergebnis nennt die Quelle Shop-Plugin. Bestätigen Sie mit Ja, passt. Damit ist belegt, dass der Marker auf der Seite steht und das Tag mit der richtigen Shop-ID läuft, und der Schritt Warenkorb erkannt im Portal ist erledigt. Für den Warenkorb wird sonst nichts gespeichert, denn punchout.dev liest den Marker bei jedem Punchout neu.
Aktualisieren
Abschnitt betitelt „Aktualisieren“Laden Sie die neue Zip-Datei aus dem Tab Einbindung herunter, entpacken Sie sie über custom/plugins/PunchoutDev und führen Sie dann aus:
bin/console plugin:refreshbin/console plugin:update PunchoutDevbin/console cache:clearUmstieg von PunchoutNinja 1.x
Abschnitt betitelt „Umstieg von PunchoutNinja 1.x“Für Shopware ist Version 2.0.0 ein neues Plugin: Deinstallieren Sie PunchoutNinja und löschen Sie seinen Ordner, bevor Sie PunchoutDev installieren. Betreiben Sie nie beide. Es wird nichts übernommen: Tragen Sie beide Karten neu ein und ändern Sie den Login-Pfad im Tab Auto-Login des Portals auf /punchout-dev/login.
Fehlersuche
Abschnitt betitelt „Fehlersuche“| Symptom | Ursache | Lösung |
|---|---|---|
Kein pob.js-Tag im Seitenquelltext |
Snippet einbinden ist aus, oder Snippet-URL oder Shop-ID ist für diesen Verkaufskanal leer | Schalten Sie Snippet einbinden ein und tragen Sie beide Werte ein, dann bin/console cache:clear |
| Das Setup-Panel meldet Voreinstellung oder Automatisch erkannt statt Shop-Plugin | Der Marker kommt nicht auf der Seite an: Das Theme überschreibt page_checkout_cart_product_table, ohne parent() aufzurufen, oder der Storefront-Cache ist veraltet |
Rufen Sie im Block des Themes parent() auf, dann bin/console cache:clear |
Jeder Login wird mit dem Grund replay abgelehnt |
Die Tabelle des Plugins für verwendete Login-Tokens fehlt | bin/console plugin:update PunchoutDev |
Jeder Login wird mit dem Grund expired abgelehnt |
Die Uhr des Shops geht vor | Synchronisieren Sie die Serveruhr |
| Der Einkäufer landet auf einer 404-Seite | Der Login-Pfad im Portal passt nicht zur Route, oft nach dem Umstieg von 1.x | Setzen Sie ihn auf /punchout-dev/login, gegebenenfalls mit dem Präfix des Unterverzeichnisses |
| Auto-Login bewirkt nichts, der Einkäufer kauft als Gast ein | Auto-Login ist im Portal an, aber im Plugin ist Auto-Login aktivieren aus, oder Shop-ID / Public-Key-Zeilen sind leer (Grund disabled oder not_configured). Das Plugin leitet ohne Anmeldung auf die Landing-Seite weiter. |
Füllen Sie die Karte Auto-Login aus, oder schalten Sie Auto-Login im Tab Auto-Login des Portals aus |
Das Plugin schreibt je abgelehntem Login-Token eine Warnung mit einem Ablehnungsgrund ins Shopware-Log. Das Token und den Kunden protokolliert es nie. Die Ablehnungsgründe stehen auf der Seite Auto-Login.
Mehr unter Fehlersuche.
Vollständige README
Abschnitt betitelt „Vollständige README“Die englische README des Plugins beschreibt die Prüfungen des Tokens, die Sicherheitshinweise und den Selbsttest für die Entwicklung: README des Shopware-Plugins.
punchout.dev · hello@punchout.dev