Zum Inhalt springen

WooCommerce

Das punchout.dev-Plugin für WooCommerce gibt das Script-Tag aus, markiert den Block-Warenkorb und den klassischen Warenkorb für punchout.dev und meldet Punchout-Einkäufer in ihrem WordPress-Konto an.

Voraussetzung Wert
PHP 8.1 oder neuer, mit sodium
WordPress 6.5 oder neuer
WooCommerce 8.0 oder neuer
Plugin punchout-dev, Version 2.0.0, keine Composer-Abhängigkeiten
Download punchout-dev-<version>.zip aus dem Tab Einbindung des Shops im Portal (Shopsystem: WooCommerce)
  1. Laden Sie das Plugin im Tab Einbindung des Portals herunter.
  2. Öffnen Sie im WordPress-Backend Plugins, fügen Sie über Plugin hochladen ein neues Plugin hinzu, wählen Sie die Zip-Datei, installieren und aktivieren Sie es.

Alternativ entpacken Sie die Datei nach wp-content/plugins, wo der Ordner wp-content/plugins/punchout-dev entsteht, und aktivieren das Plugin in der Plugin-Liste.

Bei der Aktivierung legt das Plugin eine Tabelle für die Einmal-Login-Tokens und zwei Optionen an, punchout_dev_settings und punchout_dev_db_version. Beim Deaktivieren bleiben sie erhalten, beim Löschen des Plugins verschwinden alle drei.

Öffnen Sie WooCommerce → punchout.dev. Die Seite ist englisch und erfordert die Berechtigung manage_options; die Tabelle nennt die Beschriftung jeder Einstellung in Klammern.

Einstellung Wert
Snippet einbinden (Embed the snippet) An (Standard). Bei Aus wird kein Script-Tag ausgegeben.
Snippet-URL (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 (API base URL) Leer lassen.
Auto-Login aktivieren (Enable auto-login) An (Standard).
Shop-ID (Shop ID) Die Shop-ID aus dem Tab Einbindung des Portals. Wird auch als data-shop-id am Script-Tag ausgegeben.
Public-Key-Zeilen (Public key lines) 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.

Der Abschnitt Auto-login der Seite zeigt drei Statuszeilen:

  • Login path (enter it on the portal’s Auto-login tab): der genaue REST-Pfad dieser Installation, einschließlich Unterverzeichnis.
  • Configured key ids: die Schlüssel, die das Plugin aus den Public-Key-Zeilen lesen konnte, oder „none“, wenn jeder Login auf einen Gast-Punchout zurückfallen würde.
  • Single-use token table: „present“ oder „MISSING“. Fehlt die Tabelle, deaktivieren und aktivieren Sie das Plugin einmal.

Das Script-Tag steht im Footer jeder Frontend-Seite (wp_footer).

Warenkorb Wie er markiert wird
Block-Warenkorb (woocommerce/cart) Der ganze Block wird mit <div data-punchout-cart> umschlossen
Klassischer Warenkorb (Shortcode [woocommerce_cart]) Die Warenkorb-Tabelle wird umschlossen: die Positionen und ihre Spaltenköpfe. Die Warenkorbsummen und der Checkout-Button bleiben außerhalb.

Der Mini-Warenkorb, der Checkout und die Bestellbestätigungsseite werden nie markiert.

Der Block-Warenkorb kommt als leere Hülle an; WooCommerce füllt die Positionen erst nach dem Laden der Seite per JavaScript ein. Das Script-Tag liest den Warenkorb deshalb erst, wenn er fertig geladen ist, im Punchout wie im Setup-Modus. Ein leerer Warenkorb ist ein normaler Zustand.

Das Plugin registriert die REST-Route GET /wp-json/punchout-dev/v1/login?token=…. Eine Installation in einem Unterverzeichnis stellt ihren eigenen Pfad voran, zum Beispiel /shop/wp-json/punchout-dev/v1/login. Die Einstellungsseite zeigt den genauen Pfad.

Richten Sie die Portalseite im Tab Auto-Login des Shops ein:

Portalfeld Wert
Adapter WooCommerce
Login-Pfad Der Pfad von der Einstellungsseite des Plugins
Kundenreferenz Siehe die Tabelle unten

WooCommerce hat keine eigene Kundennummer. Die drei Arten werden so zugeordnet:

Kundenreferenz Abgeglichen mit
E-Mail-Adresse (empfohlen) Die E-Mail-Adresse des WordPress-Benutzers
Kundennummer Der WordPress-Anmeldename
Kunden-ID Die numerische WordPress-Benutzer-ID

Tragen Sie dann im Tab Einkäufer für jeden Einkäufer-Zugang die Shop-Kundenreferenz ein.

Bei Erfolg setzt das Plugin die WordPress-Anmeldung und löst wp_login aus; darüber führt WooCommerce den Gast-Warenkorb mit dem gespeicherten Warenkorb des Kunden zusammen. Bei jedem Fehler leitet das Plugin den Einkäufer als Gast auf die Landing-Seite weiter, nie auf eine Fehlerseite und nie auf wp-login.php.

Das Plugin leitet unverändert auf den Landing-Pfad weiter und setzt das Unterverzeichnis nicht davor. Setzen Sie den Landing-Pfad im Tab Allgemein auf den vollständigen Warenkorbpfad, zum Beispiel /cart/, oder /shop/cart/ bei einer Installation im Unterverzeichnis.

Der vollständige Ablauf steht auf der Seite Auto-Login.

  1. Erzeugen Sie im Tab Einrichtung des Shops im Portal einen Setup-Link (standardmäßig 60 Minuten gültig).
  2. Legen Sie 2 oder 3 verschiedene Produkte in den Warenkorb.
  3. Öffnen Sie die Warenkorbseite mit dem Setup-Link und klicken Sie auf Warenkorb erkennen.

Ist das Plugin aktiv, nennt das Ergebnis die Quelle Shop-Plugin. Bestätigen Sie mit Ja, passt. Damit sind Marker und Shop-ID bestätigt, und der Schritt Warenkorb erkannt im Portal ist erledigt.

Laden Sie die neue Zip-Datei aus dem Tab Einbindung herunter, laden Sie sie wie bei der Installation hoch und lassen Sie WordPress die installierte Version ersetzen. Entpacken Sie die Datei stattdessen über den alten Ordner, überspringt WordPress den Aktivierungsschritt. Das Plugin prüft dann beim nächsten Aufruf seine gespeicherte Tabellenversion und legt die Tabelle selbst an, wenn sich die Version geändert hat. Ob die Tabelle da ist, zeigt die Einstellungsseite.

WordPress installiert 2.0.0 als neues Plugin: Deaktivieren und löschen Sie zuerst das alte Plugin punchout-ninja und betreiben Sie nie beide. Tragen Sie die Einstellungen aus dem Portal neu ein und ändern Sie den Login-Pfad im Tab Auto-Login des Portals auf /wp-json/punchout-dev/v1/login, mit dem Präfix des Unterverzeichnisses, falls es eines gibt.

Symptom Ursache Lösung
Das Setup-Panel meldet Voreinstellung statt Shop-Plugin Die Warenkorbseite nutzt weder den Warenkorb-Block noch den Shortcode [woocommerce_cart], oder ein Seiten-Cache liefert eine ältere Kopie aus Nutzen Sie den Warenkorb-Block oder den Shortcode und leeren Sie den Seiten-Cache
Auto-Login bewirkt nichts, der Einkäufer kauft als Gast ein Auto-Login aktivieren ist aus, oder Shop-ID oder Public-Key-Zeilen sind falsch Vergleichen Sie Configured key ids mit dem Abschnitt Öffentliche Schlüssel im Portal und die Shop-ID mit dem Tab Einbindung
Der Einkäufer landet auf einer Fehlerseite statt im Shop Der Login-Pfad im Portal passt nicht zur Route, zum Beispiel fehlt das Unterverzeichnis Kopieren Sie den Login-Pfad von der Einstellungsseite in den Tab Auto-Login des Portals
Single-use token table zeigt „MISSING“ Der Aktivierungsschritt lief nicht Deaktivieren und aktivieren Sie das Plugin einmal
Der Einkäufer ist Gast, obwohl die Zuordnung stimmt Der zugeordnete Benutzer ist ein Administrator Ordnen Sie den Zugang einem gewöhnlichen Kundenkonto zu

Das Plugin schreibt je abgelehntem Login-Token eine Zeile mit einem Ablehnungsgrund ins PHP-Fehlerlog, und nur, wenn WP_DEBUG an ist. Das Token und den Kunden protokolliert es nie. Die Ablehnungsgründe stehen auf der Seite Auto-Login.

Mehr unter Fehlersuche.

Die englische README des Plugins beschreibt die Prüfungen des Tokens, die Sicherheitshinweise und den Selbsttest für die Entwicklung: README des WooCommerce-Plugins.