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/settings✅✅✅Index des paramètres POS publics/lisibles
BoutiquesGET /wcpos/v1/stores✅✅✅Donné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}/stores✅✅✅Accès aux boutiques pour le caissier actuel
ProduitsGET /wcpos/v1/products✅✅✅Navigation dans le catalogue
VariationsGET /wcpos/v1/products/variations✅✅✅Navigation dans le catalogue
CatégoriesGET /wcpos/v1/products/categories✅✅✅Filtres du catalogue
TagsGET /wcpos/v1/products/tags✅✅✅Filtres du catalogue
MarquesGET /wcpos/v1/products/brands✅✅✅Filtres du catalogue
CouponsGET /wcpos/v1/coupons✅✅✅Recherche de coupons POS
Lecture des commandesGET /wcpos/v1/orders✅✅✅Historique des commandes POS
Création de commandesPOST /wcpos/v1/orders✅✅✅Flux 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}/checkout✅✅✅Flux de paiement
ReçusGET /wcpos/v1/receipts/{order_id}✅✅✅Rendu des reçus
Statuts de commandeGET /wcpos/v1/data/order_statuses✅✅✅Données de statut POS
Lecture des clientsGET /wcpos/v1/customers✅✅✅Recherche/liste des clients
Création de clientsPOST /wcpos/v1/customers✅✅✅Créer un client dans le POS
Mise à jour des clientsPATCH /wcpos/v1/customers/{id}✅✅✅Modifier un client dans le POS
TaxesGET /wcpos/v1/taxes✅✅✅Données de calcul de paiement/taxe
Classes de taxeGET /wcpos/v1/taxes/classes✅✅✅Données de calcul de paiement/taxe
Méthodes de livraisonGET /wcpos/v1/shipping_methods✅✅✅Données de paiement/livraison
Passerelles de paiementGET /wcpos/v1/payment-gateways✅✅✅Options de paiement
Initialisation de passerellePOST /wcpos/v1/payment-gateways/{id}/bootstrap✅✅✅Configuration du paiement
ModèlesGET /wcpos/v1/templates✅✅✅Lecture des reçus/modèles
Modèle actifGET /wcpos/v1/templates/active✅✅✅Lecture des reçus/modèles
Galerie de modèlesGET /wcpos/v1/templates/gallery✅✅✅Lecture des modèles
Paramètres générauxGET /wcpos/v1/settings/general✅✅❌Gestion uniquement
Paramètres de paiementGET /wcpos/v1/settings/checkout✅✅❌Gestion uniquement
Paramètres d'ID fiscalGET /wcpos/v1/settings/tax_ids✅✅❌Gestion uniquement
Paramètres des passerelles de paiementGET /wcpos/v1/settings/payment-gateways✅✅❌Gestion uniquement
Catalogue/admin des extensionsGET /wcpos/v1/extensions✅✅❌Gestion uniquement
JournauxGET /wcpos/v1/logs✅✅❌Gestion 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}/edit✅✅❌Gestion des boutiques
Création de boutiquePOST /wcpos/v1/stores✅✅❌Gestion des boutiques
Mise à jour de boutiquePATCH /wcpos/v1/stores/{id}✅✅❌Gestion des boutiques
Mise à jour des paramètres de licencePOST /wcpos/v1/settings/license✅✅❌Gestion Pro
Actions d'extensionPOST /wcpos/v1/extensions/action✅❌❌Nécessite la capacité d'installer/gérer des plugins
Remboursements de commandePOST /wcpos/v1/orders/{id}/refunds✅✅✅Traité 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.