Zum Hauptinhalt springen
Version: 1.x

Rollen-Endpunkt-Zugriff

Diese Seite dokumentiert, welche WCPOS-REST-Endpunkte für jede der drei Standardrollen zugänglich sind, die in POS-Workflows verwendet werden:

  • administrator
  • shop_manager
  • cashier

Für die benutzerseitige Konfiguration von Rollen und Fähigkeiten siehe Zugriff auf das POS.

Zusammenfassung​

Das Standard-Zugriffsmodell ist:

  • administrator — voller POS- und Verwaltungszugriff.
  • shop_manager — voller POS- und Verwaltungszugriff, mit Ausnahme von Plugin-Erweiterungsaktionen, die Plugin-Installationsfähigkeiten erfordern.
  • cashier — normaler POS-Verkaufsworkflow-Zugriff, aber kein Zugriff auf Verwaltung, Einstellungen, Protokolle oder Filialadministration.

Die Endpunktmatrix wird durch Integrationstests verifiziert, die denselben Authentifizierungspfad wie die POS-App durchlaufen (WCPOS-Bearer-Zugriffstoken, nicht nur wp_set_current_user()). Die Assertions für erlaubte Endpunkte bestätigen, dass eine Rolle kein 401 oder 403 erhält. Einige Endpunkte können dennoch normale Daten oder geschäftliche Fehler wie 400 oder 404 zurückgeben, wenn der Test minimale Fixtures verwendet — diese Antworten beweisen dennoch, dass der Benutzer die Authentifizierungs-/Berechtigungsebene passiert hat.

Endpunkt-Zugriffsmatrix des kostenlosen Plugins​

BereichEndpunkt-BeispieleAdminShop-ManagerKassiererHinweise
EinstellungsindexGET /wcpos/v1/settings✅✅✅Öffentlich/lesbarer POS-Einstellungsindex
FilialenGET /wcpos/v1/stores✅✅✅POS-Boot-Daten
KassiererprofilGET /wcpos/v1/cashier/{id}✅✅✅Eigene Kassiererdaten
KassiererfilialenGET /wcpos/v1/cashier/{id}/stores✅✅✅Filialzugriff für den aktuellen Kassierer
ProdukteGET /wcpos/v1/products✅✅✅Katalog durchsuchen
VariationenGET /wcpos/v1/products/variations✅✅✅Katalog durchsuchen
KategorienGET /wcpos/v1/products/categories✅✅✅Katalogfilter
TagsGET /wcpos/v1/products/tags✅✅✅Katalogfilter
MarkenGET /wcpos/v1/products/brands✅✅✅Katalogfilter
GutscheineGET /wcpos/v1/coupons✅✅✅POS-Gutscheinsuche
Bestellungen lesenGET /wcpos/v1/orders✅✅✅POS-Bestellverlauf
Bestellungen erstellenPOST /wcpos/v1/orders✅✅✅Verkaufsworkflow
Bestellungen aktualisierenPATCH /wcpos/v1/orders/{id}✅✅✅POS-Bestellungen abschließen/aktualisieren
Checkout lesen/erstellen/wcpos/v1/orders/{id}/checkout✅✅✅Zahlungsablauf
BelegeGET /wcpos/v1/receipts/{order_id}✅✅✅Belegrendering
BestellstatusGET /wcpos/v1/data/order_statuses✅✅✅POS-Statusdaten
Kunden lesenGET /wcpos/v1/customers✅✅✅Kundensuche/-liste
Kunden erstellenPOST /wcpos/v1/customers✅✅✅Kunden im POS erstellen
Kunden aktualisierenPATCH /wcpos/v1/customers/{id}✅✅✅Kunden im POS bearbeiten
SteuernGET /wcpos/v1/taxes✅✅✅Daten für Checkout/Steuerberechnung
SteuerklassenGET /wcpos/v1/taxes/classes✅✅✅Daten für Checkout/Steuerberechnung
VersandmethodenGET /wcpos/v1/shipping_methods✅✅✅Checkout-/Versanddaten
ZahlungsgatewaysGET /wcpos/v1/payment-gateways✅✅✅Zahlungsoptionen
Gateway-BootstrapPOST /wcpos/v1/payment-gateways/{id}/bootstrap✅✅✅Zahlungseinrichtung
VorlagenGET /wcpos/v1/templates✅✅✅Beleg-/Vorlagenlesevorgänge
Aktive VorlageGET /wcpos/v1/templates/active✅✅✅Beleg-/Vorlagenlesevorgänge
VorlagengalerieGET /wcpos/v1/templates/gallery✅✅✅Vorlagenlesevorgänge
Allgemeine EinstellungenGET /wcpos/v1/settings/general✅✅❌Nur Verwaltung
Checkout-EinstellungenGET /wcpos/v1/settings/checkout✅✅❌Nur Verwaltung
Steuer-ID-EinstellungenGET /wcpos/v1/settings/tax_ids✅✅❌Nur Verwaltung
Zahlungsgateway-EinstellungenGET /wcpos/v1/settings/payment-gateways✅✅❌Nur Verwaltung
Erweiterungskatalog/-adminGET /wcpos/v1/extensions✅✅❌Nur Verwaltung
ProtokolleGET /wcpos/v1/logs✅✅❌Nur Verwaltung

Endpunkt-Zugriffsmatrix des Pro-Plugins​

BereichEndpunkt-BeispieleAdminShop-ManagerKassiererHinweise
Filial-BearbeitungsdatenGET /wcpos/v1/stores/{id}/edit✅✅❌Filialverwaltung
Filiale erstellenPOST /wcpos/v1/stores✅✅❌Filialverwaltung
Filiale aktualisierenPATCH /wcpos/v1/stores/{id}✅✅❌Filialverwaltung
Lizenzeinstellungen aktualisierenPOST /wcpos/v1/settings/license✅✅❌Pro-Verwaltung
ErweiterungsaktionenPOST /wcpos/v1/extensions/action✅❌❌Erfordert Plugin-Installations-/Verwaltungsfähigkeit
BestellerstattungenPOST /wcpos/v1/orders/{id}/refunds✅✅✅Wird als POS-Vorgang behandelt

Abdeckung des Token-Ablaufs​

SzenarioAdminShop-ManagerKassiererErwartetes Ergebnis
Gültiges Zugriffstoken✅ getestet✅ getestet✅ getestetErlaubte Endpunkte geben kein 401 oder 403 zurück
Abgelaufenes Zugriffstoken✅ getestet✅ getestet✅ getestetAnfrage schlägt am WCPOS-Auth-Gate mit Benutzer 0 fehl
Gültiges Refresh-Token nach abgelaufenem Zugriff✅ getestet✅ getestet✅ getestetNeues Zugriffstoken wird ausgestellt und der Zugriff wird wiederhergestellt
Abgelaufenes Refresh-Token✅ getestet✅ getestet✅ getestetEs kann kein neues Zugriffstoken erzeugt werden

Fehler diagnostizieren​

Wenn ein Standard-shop_manager einen Fehler wie diesen sieht:

Request still unauthorized after token refresh - please log in again

zeigt die Endpunktmatrix, dass dies nicht daran liegt, dass der Standardrolle shop_manager grundsätzlich der POS-Zugriff fehlt. Wahrscheinliche Ursachen, die untersucht werden sollten:

  1. Standortspezifische Beschädigung von Rollen/Fähigkeiten.
  2. Ein Endpunkt, der nicht von der Matrix abgedeckt wird.
  3. Verhalten beim Wiederholen veralteter oder abgelaufener Zugriffstoken im Client.
  4. Interferenz durch ein Sicherheits- oder Authentifizierungs-Plugin eines Drittanbieters.
  5. Pro- oder filialspezifische Zugriffsregeln oder benutzerdefinierter Code.

Berechtigungsfehler vs. Token-Fehler​

Das POS-Frontend zeigt möglicherweise für beide Fälle dieselbe Token-Aktualisierungsfehlermeldung an, nachdem es ein 401 oder 403 erhalten, einen Token-Refresh versucht hat und der Wiederholungsversuch immer noch nicht autorisiert war. Die beiden Fehlermodi sehen auf der Serverseite unterschiedlich aus:

Ein echter Rollen-/Fähigkeitsfehler sieht in der Regel so aus:

status: 403
current_user: <actual user id>
access token expired: false

Ein Token-/Auth-Fehler sieht in der Regel so aus:

status: 403
current_user: 0
access token expired: true or invalid

Verwenden Sie diese Unterscheidung beim Eingrenzen von POS-Zugriffsproblemen — ein current_user ungleich null deutet auf Fähigkeiten hin, während current_user: 0 auf die Auth-/Token-Ebene hinweist.