Salta al contenuto principale
Versione: 1.x

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.

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

AreaEsempi di endpointAdminShop ManagerCashierNote
Indice impostazioniGET /wcpos/v1/settingsIndice delle impostazioni POS pubbliche/leggibili
NegoziGET /wcpos/v1/storesDati di avvio del POS
Profilo cassiereGET /wcpos/v1/cashier/{id}Dati del proprio cassiere
Negozi del cassiereGET /wcpos/v1/cashier/{id}/storesAccesso ai negozi per il cassiere corrente
ProdottiGET /wcpos/v1/productsNavigazione del catalogo
VariazioniGET /wcpos/v1/products/variationsNavigazione del catalogo
CategorieGET /wcpos/v1/products/categoriesFiltri del catalogo
TagGET /wcpos/v1/products/tagsFiltri del catalogo
MarchiGET /wcpos/v1/products/brandsFiltri del catalogo
CouponGET /wcpos/v1/couponsRicerca coupon nel POS
Lettura ordiniGET /wcpos/v1/ordersCronologia ordini del POS
Creazione ordiniPOST /wcpos/v1/ordersFlusso di vendita
Aggiornamento ordiniPATCH /wcpos/v1/orders/{id}Completamento/aggiornamento degli ordini POS
Lettura/creazione checkout/wcpos/v1/orders/{id}/checkoutFlusso di pagamento
RicevuteGET /wcpos/v1/receipts/{order_id}Rendering delle ricevute
Stati degli ordiniGET /wcpos/v1/data/order_statusesDati sugli stati del POS
Lettura clientiGET /wcpos/v1/customersRicerca/elenco clienti
Creazione clientiPOST /wcpos/v1/customersCrea cliente nel POS
Aggiornamento clientiPATCH /wcpos/v1/customers/{id}Modifica cliente nel POS
TasseGET /wcpos/v1/taxesDati di calcolo checkout/tasse
Classi di tasseGET /wcpos/v1/taxes/classesDati di calcolo checkout/tasse
Metodi di spedizioneGET /wcpos/v1/shipping_methodsDati checkout/spedizione
Gateway di pagamentoGET /wcpos/v1/payment-gatewaysOpzioni di pagamento
Bootstrap gatewayPOST /wcpos/v1/payment-gateways/{id}/bootstrapConfigurazione del pagamento
ModelliGET /wcpos/v1/templatesLetture ricevute/modelli
Modello attivoGET /wcpos/v1/templates/activeLetture ricevute/modelli
Galleria modelliGET /wcpos/v1/templates/galleryLetture dei modelli
Impostazioni generaliGET /wcpos/v1/settings/generalSolo gestione
Impostazioni checkoutGET /wcpos/v1/settings/checkoutSolo gestione
Impostazioni ID fiscaliGET /wcpos/v1/settings/tax_idsSolo gestione
Impostazioni gateway di pagamentoGET /wcpos/v1/settings/payment-gatewaysSolo gestione
Catalogo/admin estensioniGET /wcpos/v1/extensionsSolo gestione
LogGET /wcpos/v1/logsSolo gestione

Matrice di accesso agli endpoint del plugin Pro

AreaEsempi di endpointAdminShop ManagerCashierNote
Dati di modifica del negozioGET /wcpos/v1/stores/{id}/editGestione del negozio
Creazione negozioPOST /wcpos/v1/storesGestione del negozio
Aggiornamento negozioPATCH /wcpos/v1/stores/{id}Gestione del negozio
Aggiornamento impostazioni licenzaPOST /wcpos/v1/settings/licenseGestione Pro
Azioni estensionePOST /wcpos/v1/extensions/actionRichiede la capacità di installare/gestire i plugin
Rimborsi ordiniPOST /wcpos/v1/orders/{id}/refundsTrattato come operazione POS

Copertura della scadenza dei token

ScenarioAdminShop ManagerCashierRisultato atteso
Token di accesso valido✅ testato✅ testato✅ testatoGli endpoint consentiti non restituiscono 401 o 403
Token di accesso scaduto✅ testato✅ testato✅ testatoLa richiesta fallisce al gate di autenticazione WCPOS con utente 0
Token di aggiornamento valido dopo accesso scaduto✅ testato✅ testato✅ testatoViene emesso un nuovo token di accesso e l'accesso viene ripristinato
Token di aggiornamento scaduto✅ testato✅ testato✅ testatoImpossibile 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:

  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

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.