# Accesso agli endpoint per ruolo

Questa pagina documenta quali endpoint REST di WCPOS sono accessibili a ciascuno dei tre ruoli predefiniti utilizzati nei flussi di lavoro del POS:

* `administrator`
* `shop_manager`
* `cashier`

Per la configurazione dei ruoli e delle capacità rivolta agli utenti, vedi [Accesso al POS](/it/settings/wp-admin/access.md).

## Riepilogo[​](#summary "Collegamento diretto a Riepilogo")

Il modello di accesso predefinito è:

* **`administrator`** — accesso completo al POS e alla gestione.
* **`shop_manager`** — accesso completo al POS e alla gestione, ad eccezione delle azioni di estensione del plugin che richiedono capacità di installazione dei plugin.
* **`cashier`** — accesso al normale flusso di vendita del POS, ma nessun accesso alla gestione, alle impostazioni, ai log o all'amministrazione del negozio.

La matrice degli endpoint è verificata da test di integrazione che esercitano lo stesso percorso di autenticazione dell'app POS (token di accesso bearer WCPOS, non solo `wp_set_current_user()`). Le asserzioni sugli endpoint consentiti confermano che un ruolo non riceve `401` o `403`. Alcuni endpoint possono comunque restituire dati normali o errori di business come `400` o `404` quando il test usa fixture minimali — quelle risposte dimostrano comunque che l'utente ha superato il livello di autenticazione/permessi.

## Matrice di accesso agli endpoint del plugin gratuito[​](#free-plugin-endpoint-access-matrix "Collegamento diretto a Matrice di accesso agli endpoint del plugin gratuito")

| Area                              | Esempi di endpoint                               | Admin | Shop Manager | Cashier | Note                                              |
| --------------------------------- | ------------------------------------------------ | ----- | ------------ | ------- | ------------------------------------------------- |
| Indice impostazioni               | `GET /wcpos/v1/settings`                         | ✅    | ✅           | ✅      | Indice delle impostazioni POS pubbliche/leggibili |
| Negozi                            | `GET /wcpos/v1/stores`                           | ✅    | ✅           | ✅      | Dati di avvio del POS                             |
| Profilo cassiere                  | `GET /wcpos/v1/cashier/{id}`                     | ✅    | ✅           | ✅      | Dati del proprio cassiere                         |
| Negozi del cassiere               | `GET /wcpos/v1/cashier/{id}/stores`              | ✅    | ✅           | ✅      | Accesso ai negozi per il cassiere corrente        |
| Prodotti                          | `GET /wcpos/v1/products`                         | ✅    | ✅           | ✅      | Navigazione del catalogo                          |
| Variazioni                        | `GET /wcpos/v1/products/variations`              | ✅    | ✅           | ✅      | Navigazione del catalogo                          |
| Categorie                         | `GET /wcpos/v1/products/categories`              | ✅    | ✅           | ✅      | Filtri del catalogo                               |
| Tag                               | `GET /wcpos/v1/products/tags`                    | ✅    | ✅           | ✅      | Filtri del catalogo                               |
| Marchi                            | `GET /wcpos/v1/products/brands`                  | ✅    | ✅           | ✅      | Filtri del catalogo                               |
| Coupon                            | `GET /wcpos/v1/coupons`                          | ✅    | ✅           | ✅      | Ricerca coupon nel POS                            |
| Lettura ordini                    | `GET /wcpos/v1/orders`                           | ✅    | ✅           | ✅      | Cronologia ordini del POS                         |
| Creazione ordini                  | `POST /wcpos/v1/orders`                          | ✅    | ✅           | ✅      | Flusso di vendita                                 |
| Aggiornamento ordini              | `PATCH /wcpos/v1/orders/{id}`                    | ✅    | ✅           | ✅      | Completamento/aggiornamento degli ordini POS      |
| Lettura/creazione checkout        | `/wcpos/v1/orders/{id}/checkout`                 | ✅    | ✅           | ✅      | Flusso di pagamento                               |
| Ricevute                          | `GET /wcpos/v1/receipts/{order_id}`              | ✅    | ✅           | ✅      | Rendering delle ricevute                          |
| Stati degli ordini                | `GET /wcpos/v1/data/order_statuses`              | ✅    | ✅           | ✅      | Dati sugli stati del POS                          |
| Lettura clienti                   | `GET /wcpos/v1/customers`                        | ✅    | ✅           | ✅      | Ricerca/elenco clienti                            |
| Creazione clienti                 | `POST /wcpos/v1/customers`                       | ✅    | ✅           | ✅      | Crea cliente nel POS                              |
| Aggiornamento clienti             | `PATCH /wcpos/v1/customers/{id}`                 | ✅    | ✅           | ✅      | Modifica cliente nel POS                          |
| Tasse                             | `GET /wcpos/v1/taxes`                            | ✅    | ✅           | ✅      | Dati di calcolo checkout/tasse                    |
| Classi di tasse                   | `GET /wcpos/v1/taxes/classes`                    | ✅    | ✅           | ✅      | Dati di calcolo checkout/tasse                    |
| Metodi di spedizione              | `GET /wcpos/v1/shipping_methods`                 | ✅    | ✅           | ✅      | Dati checkout/spedizione                          |
| Gateway di pagamento              | `GET /wcpos/v1/payment-gateways`                 | ✅    | ✅           | ✅      | Opzioni di pagamento                              |
| Bootstrap gateway                 | `POST /wcpos/v1/payment-gateways/{id}/bootstrap` | ✅    | ✅           | ✅      | Configurazione del pagamento                      |
| Modelli                           | `GET /wcpos/v1/templates`                        | ✅    | ✅           | ✅      | Letture ricevute/modelli                          |
| Modello attivo                    | `GET /wcpos/v1/templates/active`                 | ✅    | ✅           | ✅      | Letture ricevute/modelli                          |
| Galleria modelli                  | `GET /wcpos/v1/templates/gallery`                | ✅    | ✅           | ✅      | Letture dei modelli                               |
| Impostazioni generali             | `GET /wcpos/v1/settings/general`                 | ✅    | ✅           | ❌      | Solo gestione                                     |
| Impostazioni checkout             | `GET /wcpos/v1/settings/checkout`                | ✅    | ✅           | ❌      | Solo gestione                                     |
| Impostazioni ID fiscali           | `GET /wcpos/v1/settings/tax_ids`                 | ✅    | ✅           | ❌      | Solo gestione                                     |
| Impostazioni gateway di pagamento | `GET /wcpos/v1/settings/payment-gateways`        | ✅    | ✅           | ❌      | Solo gestione                                     |
| Catalogo/admin estensioni         | `GET /wcpos/v1/extensions`                       | ✅    | ✅           | ❌      | Solo gestione                                     |
| Log                               | `GET /wcpos/v1/logs`                             | ✅    | ✅           | ❌      | Solo gestione                                     |

## Matrice di accesso agli endpoint del plugin Pro[​](#pro-plugin-endpoint-access-matrix "Collegamento diretto a Matrice di accesso agli endpoint del plugin Pro")

| Area                               | Esempi di endpoint                   | Admin | Shop Manager | Cashier | Note                                                |
| ---------------------------------- | ------------------------------------ | ----- | ------------ | ------- | --------------------------------------------------- |
| Dati di modifica del negozio       | `GET /wcpos/v1/stores/{id}/edit`     | ✅    | ✅           | ❌      | Gestione del negozio                                |
| Creazione negozio                  | `POST /wcpos/v1/stores`              | ✅    | ✅           | ❌      | Gestione del negozio                                |
| Aggiornamento negozio              | `PATCH /wcpos/v1/stores/{id}`        | ✅    | ✅           | ❌      | Gestione del negozio                                |
| Aggiornamento impostazioni licenza | `POST /wcpos/v1/settings/license`    | ✅    | ✅           | ❌      | Gestione Pro                                        |
| Azioni estensione                  | `POST /wcpos/v1/extensions/action`   | ✅    | ❌           | ❌      | Richiede la capacità di installare/gestire i plugin |
| Rimborsi ordini                    | `POST /wcpos/v1/orders/{id}/refunds` | ✅    | ✅           | ✅      | Trattato come operazione POS                        |

## Copertura della scadenza dei token[​](#token-expiry-coverage "Collegamento diretto a Copertura della scadenza dei token")

| Scenario                                           | Admin      | Shop Manager | Cashier    | Risultato atteso                                                      |
| -------------------------------------------------- | ---------- | ------------ | ---------- | --------------------------------------------------------------------- |
| Token di accesso valido                            | ✅ testato | ✅ testato   | ✅ testato | Gli endpoint consentiti non restituiscono `401` o `403`               |
| Token di accesso scaduto                           | ✅ testato | ✅ testato   | ✅ testato | La richiesta fallisce al gate di autenticazione WCPOS con utente `0`  |
| Token di aggiornamento valido dopo accesso scaduto | ✅ testato | ✅ testato   | ✅ testato | Viene emesso un nuovo token di accesso e l'accesso viene ripristinato |
| Token di aggiornamento scaduto                     | ✅ testato | ✅ testato   | ✅ testato | Impossibile generare un nuovo token di accesso                        |

## Diagnosi dei guasti[​](#diagnosing-failures "Collegamento diretto a Diagnosi dei guasti")

Se un `shop_manager` predefinito vede un errore come:

> Request still unauthorized after token refresh - please log in again

La matrice degli endpoint indica che questo **non** è dovuto al fatto che il ruolo `shop_manager` predefinito manchi fondamentalmente dell'accesso al POS. Cause probabili da investigare:

1. Corruzione di ruoli/capacità specifica del sito.
2. Un endpoint non coperto dalla matrice.
3. Comportamento di ritentativo con token di accesso obsoleto o scaduto nel client.
4. Interferenza di plugin di sicurezza o autenticazione di terze parti.
5. Regole di accesso Pro o specifiche del negozio, oppure codice personalizzato.

### Errore di permesso vs. errore di token[​](#permission-failure-vs-token-failure "Collegamento diretto a Errore di permesso vs. errore di token")

Il frontend del POS può mostrare lo stesso errore di aggiornamento del token per entrambi i casi dopo aver ricevuto un `401` o `403`, aver tentato un aggiornamento del token e aver constatato che il ritentativo è ancora non autorizzato. Le due modalità di errore appaiono diverse sul lato server:

Un **vero errore di ruolo/capacità** di solito appare così:

```
status: 403

current_user: <actual user id>

access token expired: false
```

Un **errore di token/autenticazione** di solito appare così:

```
status: 403

current_user: 0

access token expired: true or invalid
```

Usa questa distinzione quando valuti i problemi di accesso al POS — un `current_user` diverso da zero indica le capacità, mentre `current_user: 0` indica il livello di autenticazione/token.
