Passer au contenu principal
Version : 1.x

Accès aux points de terminaison par rôle

Cette page documente quels points de terminaison REST WCPOS sont accessibles à chacun des trois rôles par défaut utilisés dans les flux de travail du POS :

  • administrator
  • shop_manager
  • cashier

Pour la configuration des rôles et des capacités côté utilisateur, voir Accès au POS.

Résumé

Le modèle d'accès par défaut est le suivant :

  • administrator — accès complet au POS et à la gestion.
  • shop_manager — accès complet au POS et à la gestion, à l'exception des actions d'extension de plugin qui nécessitent des capacités d'installation de plugin.
  • cashier — accès au flux de vente normal du POS, mais aucun accès à la gestion, aux paramètres, aux journaux ou à l'administration de la boutique.

La matrice des points de terminaison est vérifiée par des tests d'intégration qui empruntent le même chemin d'authentification que l'application POS (jetons d'accès bearer WCPOS, et non simplement wp_set_current_user()). Les assertions de points de terminaison autorisés confirment qu'un rôle ne reçoit pas de 401 ou 403. Certains points de terminaison peuvent néanmoins renvoyer des données normales ou des erreurs métier telles que 400 ou 404 lorsque le test utilise des fixtures minimales — ces réponses prouvent tout de même que l'utilisateur a franchi la couche d'authentification/d'autorisation.

Matrice d'accès aux points de terminaison du plugin gratuit

DomaineExemples de points de terminaisonAdminShop ManagerCashierRemarques
Index des paramètresGET /wcpos/v1/settingsIndex des paramètres POS publics/lisibles
BoutiquesGET /wcpos/v1/storesDonnées de démarrage du POS
Profil du caissierGET /wcpos/v1/cashier/{id}Données propres au caissier
Boutiques du caissierGET /wcpos/v1/cashier/{id}/storesAccès aux boutiques pour le caissier actuel
ProduitsGET /wcpos/v1/productsNavigation dans le catalogue
VariationsGET /wcpos/v1/products/variationsNavigation dans le catalogue
CatégoriesGET /wcpos/v1/products/categoriesFiltres du catalogue
TagsGET /wcpos/v1/products/tagsFiltres du catalogue
MarquesGET /wcpos/v1/products/brandsFiltres du catalogue
CouponsGET /wcpos/v1/couponsRecherche de coupons POS
Lecture des commandesGET /wcpos/v1/ordersHistorique des commandes POS
Création de commandesPOST /wcpos/v1/ordersFlux de vente
Mise à jour des commandesPATCH /wcpos/v1/orders/{id}Finalisation/mise à jour des commandes POS
Lecture/création de paiement/wcpos/v1/orders/{id}/checkoutFlux de paiement
ReçusGET /wcpos/v1/receipts/{order_id}Rendu des reçus
Statuts de commandeGET /wcpos/v1/data/order_statusesDonnées de statut POS
Lecture des clientsGET /wcpos/v1/customersRecherche/liste des clients
Création de clientsPOST /wcpos/v1/customersCréer un client dans le POS
Mise à jour des clientsPATCH /wcpos/v1/customers/{id}Modifier un client dans le POS
TaxesGET /wcpos/v1/taxesDonnées de calcul de paiement/taxe
Classes de taxeGET /wcpos/v1/taxes/classesDonnées de calcul de paiement/taxe
Méthodes de livraisonGET /wcpos/v1/shipping_methodsDonnées de paiement/livraison
Passerelles de paiementGET /wcpos/v1/payment-gatewaysOptions de paiement
Initialisation de passerellePOST /wcpos/v1/payment-gateways/{id}/bootstrapConfiguration du paiement
ModèlesGET /wcpos/v1/templatesLecture des reçus/modèles
Modèle actifGET /wcpos/v1/templates/activeLecture des reçus/modèles
Galerie de modèlesGET /wcpos/v1/templates/galleryLecture des modèles
Paramètres générauxGET /wcpos/v1/settings/generalGestion uniquement
Paramètres de paiementGET /wcpos/v1/settings/checkoutGestion uniquement
Paramètres d'ID fiscalGET /wcpos/v1/settings/tax_idsGestion uniquement
Paramètres des passerelles de paiementGET /wcpos/v1/settings/payment-gatewaysGestion uniquement
Catalogue/admin des extensionsGET /wcpos/v1/extensionsGestion uniquement
JournauxGET /wcpos/v1/logsGestion uniquement

Matrice d'accès aux points de terminaison du plugin Pro

DomaineExemples de points de terminaisonAdminShop ManagerCashierRemarques
Données d'édition de boutiqueGET /wcpos/v1/stores/{id}/editGestion des boutiques
Création de boutiquePOST /wcpos/v1/storesGestion des boutiques
Mise à jour de boutiquePATCH /wcpos/v1/stores/{id}Gestion des boutiques
Mise à jour des paramètres de licencePOST /wcpos/v1/settings/licenseGestion Pro
Actions d'extensionPOST /wcpos/v1/extensions/actionNécessite la capacité d'installer/gérer des plugins
Remboursements de commandePOST /wcpos/v1/orders/{id}/refundsTraité comme une opération POS

Couverture de l'expiration des jetons

ScénarioAdminShop ManagerCashierRésultat attendu
Jeton d'accès valide✅ testé✅ testé✅ testéLes points de terminaison autorisés ne renvoient pas 401 ou 403
Jeton d'accès expiré✅ testé✅ testé✅ testéLa requête échoue à la barrière d'authentification WCPOS avec l'utilisateur 0
Jeton de rafraîchissement valide après accès expiré✅ testé✅ testé✅ testéUn nouveau jeton d'accès est émis et l'accès est rétabli
Jeton de rafraîchissement expiré✅ testé✅ testé✅ testéImpossible d'émettre un nouveau jeton d'accès

Diagnostic des échecs

Si un shop_manager par défaut voit une erreur telle que :

Request still unauthorized after token refresh - please log in again

La matrice des points de terminaison indique que ce n'est pas parce que le rôle shop_manager par défaut manque fondamentalement d'accès au POS. Causes probables à examiner :

  1. Corruption de rôle/capacité spécifique au site.
  2. Un point de terminaison non couvert par la matrice.
  3. Comportement de réessai avec un jeton d'accès périmé ou expiré dans le client.
  4. Interférence d'un plugin de sécurité ou d'authentification tiers.
  5. Règles d'accès Pro ou spécifiques à une boutique, ou code personnalisé.

Échec d'autorisation vs échec de jeton

L'interface du POS peut afficher la même erreur de rafraîchissement de jeton dans les deux cas, après avoir reçu un 401 ou 403, tenté un rafraîchissement de jeton, et que le réessai est toujours non autorisé. Les deux modes d'échec se distinguent côté serveur :

Un véritable échec de rôle/capacité ressemble généralement à :

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

Un échec de jeton/authentification ressemble généralement à :

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

Utilisez cette distinction lors du triage des problèmes d'accès au POS — un current_user non nul pointe vers les capacités, tandis que current_user: 0 pointe vers la couche d'authentification/de jeton.