# 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](/fr/settings/wp-admin/access.md).

## Résumé[​](#summary "Lien direct vers 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[​](#free-plugin-endpoint-access-matrix "Lien direct vers Matrice d'accès aux points de terminaison du plugin gratuit")

| Domaine                                | Exemples de points de terminaison                | Admin | Shop Manager | Cashier | Remarques                                   |
| -------------------------------------- | ------------------------------------------------ | ----- | ------------ | ------- | ------------------------------------------- |
| Index des paramètres                   | `GET /wcpos/v1/settings`                         | ✅    | ✅           | ✅      | Index des paramètres POS publics/lisibles   |
| Boutiques                              | `GET /wcpos/v1/stores`                           | ✅    | ✅           | ✅      | Données de démarrage du POS                 |
| Profil du caissier                     | `GET /wcpos/v1/cashier/{id}`                     | ✅    | ✅           | ✅      | Données propres au caissier                 |
| Boutiques du caissier                  | `GET /wcpos/v1/cashier/{id}/stores`              | ✅    | ✅           | ✅      | Accès aux boutiques pour le caissier actuel |
| Produits                               | `GET /wcpos/v1/products`                         | ✅    | ✅           | ✅      | Navigation dans le catalogue                |
| Variations                             | `GET /wcpos/v1/products/variations`              | ✅    | ✅           | ✅      | Navigation dans le catalogue                |
| Catégories                             | `GET /wcpos/v1/products/categories`              | ✅    | ✅           | ✅      | Filtres du catalogue                        |
| Tags                                   | `GET /wcpos/v1/products/tags`                    | ✅    | ✅           | ✅      | Filtres du catalogue                        |
| Marques                                | `GET /wcpos/v1/products/brands`                  | ✅    | ✅           | ✅      | Filtres du catalogue                        |
| Coupons                                | `GET /wcpos/v1/coupons`                          | ✅    | ✅           | ✅      | Recherche de coupons POS                    |
| Lecture des commandes                  | `GET /wcpos/v1/orders`                           | ✅    | ✅           | ✅      | Historique des commandes POS                |
| Création de commandes                  | `POST /wcpos/v1/orders`                          | ✅    | ✅           | ✅      | Flux de vente                               |
| Mise à jour des commandes              | `PATCH /wcpos/v1/orders/{id}`                    | ✅    | ✅           | ✅      | Finalisation/mise à jour des commandes POS  |
| Lecture/création de paiement           | `/wcpos/v1/orders/{id}/checkout`                 | ✅    | ✅           | ✅      | Flux de paiement                            |
| Reçus                                  | `GET /wcpos/v1/receipts/{order_id}`              | ✅    | ✅           | ✅      | Rendu des reçus                             |
| Statuts de commande                    | `GET /wcpos/v1/data/order_statuses`              | ✅    | ✅           | ✅      | Données de statut POS                       |
| Lecture des clients                    | `GET /wcpos/v1/customers`                        | ✅    | ✅           | ✅      | Recherche/liste des clients                 |
| Création de clients                    | `POST /wcpos/v1/customers`                       | ✅    | ✅           | ✅      | Créer un client dans le POS                 |
| Mise à jour des clients                | `PATCH /wcpos/v1/customers/{id}`                 | ✅    | ✅           | ✅      | Modifier un client dans le POS              |
| Taxes                                  | `GET /wcpos/v1/taxes`                            | ✅    | ✅           | ✅      | Données de calcul de paiement/taxe          |
| Classes de taxe                        | `GET /wcpos/v1/taxes/classes`                    | ✅    | ✅           | ✅      | Données de calcul de paiement/taxe          |
| Méthodes de livraison                  | `GET /wcpos/v1/shipping_methods`                 | ✅    | ✅           | ✅      | Données de paiement/livraison               |
| Passerelles de paiement                | `GET /wcpos/v1/payment-gateways`                 | ✅    | ✅           | ✅      | Options de paiement                         |
| Initialisation de passerelle           | `POST /wcpos/v1/payment-gateways/{id}/bootstrap` | ✅    | ✅           | ✅      | Configuration du paiement                   |
| Modèles                                | `GET /wcpos/v1/templates`                        | ✅    | ✅           | ✅      | Lecture des reçus/modèles                   |
| Modèle actif                           | `GET /wcpos/v1/templates/active`                 | ✅    | ✅           | ✅      | Lecture des reçus/modèles                   |
| Galerie de modèles                     | `GET /wcpos/v1/templates/gallery`                | ✅    | ✅           | ✅      | Lecture des modèles                         |
| Paramètres généraux                    | `GET /wcpos/v1/settings/general`                 | ✅    | ✅           | ❌      | Gestion uniquement                          |
| Paramètres de paiement                 | `GET /wcpos/v1/settings/checkout`                | ✅    | ✅           | ❌      | Gestion uniquement                          |
| Paramètres d'ID fiscal                 | `GET /wcpos/v1/settings/tax_ids`                 | ✅    | ✅           | ❌      | Gestion uniquement                          |
| Paramètres des passerelles de paiement | `GET /wcpos/v1/settings/payment-gateways`        | ✅    | ✅           | ❌      | Gestion uniquement                          |
| Catalogue/admin des extensions         | `GET /wcpos/v1/extensions`                       | ✅    | ✅           | ❌      | Gestion uniquement                          |
| Journaux                               | `GET /wcpos/v1/logs`                             | ✅    | ✅           | ❌      | Gestion uniquement                          |

## Matrice d'accès aux points de terminaison du plugin Pro[​](#pro-plugin-endpoint-access-matrix "Lien direct vers Matrice d'accès aux points de terminaison du plugin Pro")

| Domaine                               | Exemples de points de terminaison    | Admin | Shop Manager | Cashier | Remarques                                           |
| ------------------------------------- | ------------------------------------ | ----- | ------------ | ------- | --------------------------------------------------- |
| Données d'édition de boutique         | `GET /wcpos/v1/stores/{id}/edit`     | ✅    | ✅           | ❌      | Gestion des boutiques                               |
| Création de boutique                  | `POST /wcpos/v1/stores`              | ✅    | ✅           | ❌      | Gestion des boutiques                               |
| Mise à jour de boutique               | `PATCH /wcpos/v1/stores/{id}`        | ✅    | ✅           | ❌      | Gestion des boutiques                               |
| Mise à jour des paramètres de licence | `POST /wcpos/v1/settings/license`    | ✅    | ✅           | ❌      | Gestion Pro                                         |
| Actions d'extension                   | `POST /wcpos/v1/extensions/action`   | ✅    | ❌           | ❌      | Nécessite la capacité d'installer/gérer des plugins |
| Remboursements de commande            | `POST /wcpos/v1/orders/{id}/refunds` | ✅    | ✅           | ✅      | Traité comme une opération POS                      |

## Couverture de l'expiration des jetons[​](#token-expiry-coverage "Lien direct vers Couverture de l'expiration des jetons")

| Scénario                                            | Admin    | Shop Manager | Cashier  | Ré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[​](#diagnosing-failures "Lien direct vers 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[​](#permission-failure-vs-token-failure "Lien direct vers É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.
