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:
administratorshop_managercashier
Per la configurazione dei ruoli e delle capacità rivolta agli utenti, vedi Accesso al POS.
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
| 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
| 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
| 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
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:
- Corruzione di ruoli/capacità specifica del sito.
- Un endpoint non coperto dalla matrice.
- Comportamento di ritentativo con token di accesso obsoleto o scaduto nel client.
- Interferenza di plugin di sicurezza o autenticazione di terze parti.
- Regole di accesso Pro o specifiche del negozio, oppure codice personalizzato.
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.