Ir al contenido principal
Versión: 1.x

Acceso a Endpoints por Rol

Esta página documenta qué endpoints REST de WCPOS son accesibles para cada uno de los tres roles predeterminados utilizados en los flujos de trabajo del POS:

  • administrator
  • shop_manager
  • cashier

Para la configuración de roles y capacidades orientada al usuario, consulta Acceso al POS.

Resumen​

El modelo de acceso predeterminado es:

  • administrator — acceso completo al POS y a la gestión.
  • shop_manager — acceso completo al POS y a la gestión, excepto las acciones de extensión de plugins que requieren capacidades de instalación de plugins.
  • cashier — acceso normal al flujo de trabajo de venta del POS, pero sin acceso a la gestión, los ajustes, los registros ni la administración de la tienda.

La matriz de endpoints es verificada por pruebas de integración que ejercitan la misma ruta de autenticación que la aplicación POS (tokens de acceso de portador de WCPOS, no solo wp_set_current_user()). Las afirmaciones de endpoints permitidos confirman que un rol no recibe 401 o 403. Algunos endpoints aún pueden devolver datos normales o errores de negocio como 400 o 404 cuando la prueba utiliza fixtures mínimas — esas respuestas aún prueban que el usuario superó la capa de autenticación/permisos.

Matriz de Acceso a Endpoints del Plugin Gratuito​

ÁreaEjemplos de endpointAdminShop ManagerCashierNotas
Índice de ajustesGET /wcpos/v1/settings✅✅✅Índice de ajustes del POS público/legible
TiendasGET /wcpos/v1/stores✅✅✅Datos de inicio del POS
Perfil de cajeroGET /wcpos/v1/cashier/{id}✅✅✅Datos propios del cajero
Tiendas del cajeroGET /wcpos/v1/cashier/{id}/stores✅✅✅Acceso a tiendas para el cajero actual
ProductosGET /wcpos/v1/products✅✅✅Navegación del catálogo
VariacionesGET /wcpos/v1/products/variations✅✅✅Navegación del catálogo
CategoríasGET /wcpos/v1/products/categories✅✅✅Filtros del catálogo
EtiquetasGET /wcpos/v1/products/tags✅✅✅Filtros del catálogo
MarcasGET /wcpos/v1/products/brands✅✅✅Filtros del catálogo
CuponesGET /wcpos/v1/coupons✅✅✅Búsqueda de cupones del POS
Lectura de pedidosGET /wcpos/v1/orders✅✅✅Historial de pedidos del POS
Creación de pedidosPOST /wcpos/v1/orders✅✅✅Flujo de trabajo de venta
Actualización de pedidosPATCH /wcpos/v1/orders/{id}✅✅✅Completar/actualizar pedidos del POS
Lectura/creación de pago/wcpos/v1/orders/{id}/checkout✅✅✅Flujo de pago
RecibosGET /wcpos/v1/receipts/{order_id}✅✅✅Renderizado de recibos
Estados de pedidoGET /wcpos/v1/data/order_statuses✅✅✅Datos de estado del POS
Lectura de clientesGET /wcpos/v1/customers✅✅✅Búsqueda/lista de clientes
Creación de clientesPOST /wcpos/v1/customers✅✅✅Crear cliente en el POS
Actualización de clientesPATCH /wcpos/v1/customers/{id}✅✅✅Editar cliente en el POS
ImpuestosGET /wcpos/v1/taxes✅✅✅Datos de cálculo de pago/impuestos
Clases de impuestosGET /wcpos/v1/taxes/classes✅✅✅Datos de cálculo de pago/impuestos
Métodos de envíoGET /wcpos/v1/shipping_methods✅✅✅Datos de pago/envío
Pasarelas de pagoGET /wcpos/v1/payment-gateways✅✅✅Opciones de pago
Bootstrap de pasarelaPOST /wcpos/v1/payment-gateways/{id}/bootstrap✅✅✅Configuración de pago
PlantillasGET /wcpos/v1/templates✅✅✅Lecturas de recibo/plantilla
Plantilla activaGET /wcpos/v1/templates/active✅✅✅Lecturas de recibo/plantilla
Galería de plantillasGET /wcpos/v1/templates/gallery✅✅✅Lecturas de plantillas
Ajustes generalesGET /wcpos/v1/settings/general✅✅❌Solo gestión
Ajustes de pagoGET /wcpos/v1/settings/checkout✅✅❌Solo gestión
Ajustes de ID fiscalGET /wcpos/v1/settings/tax_ids✅✅❌Solo gestión
Ajustes de pasarela de pagoGET /wcpos/v1/settings/payment-gateways✅✅❌Solo gestión
Catálogo/administración de extensionesGET /wcpos/v1/extensions✅✅❌Solo gestión
RegistrosGET /wcpos/v1/logs✅✅❌Solo gestión

Matriz de Acceso a Endpoints del Plugin Pro​

ÁreaEjemplos de endpointAdminShop ManagerCashierNotas
Datos de edición de tiendaGET /wcpos/v1/stores/{id}/edit✅✅❌Gestión de tienda
Creación de tiendaPOST /wcpos/v1/stores✅✅❌Gestión de tienda
Actualización de tiendaPATCH /wcpos/v1/stores/{id}✅✅❌Gestión de tienda
Actualización de ajustes de licenciaPOST /wcpos/v1/settings/license✅✅❌Gestión Pro
Acciones de extensiónPOST /wcpos/v1/extensions/action✅❌❌Requiere capacidad de instalar/gestionar plugins
Reembolsos de pedidosPOST /wcpos/v1/orders/{id}/refunds✅✅✅Tratado como operación del POS

Cobertura de Expiración de Tokens​

EscenarioAdminShop ManagerCashierResultado esperado
Token de acceso válido✅ probado✅ probado✅ probadoLos endpoints permitidos no devuelven 401 o 403
Token de acceso expirado✅ probado✅ probado✅ probadoLa solicitud falla en la puerta de autenticación de WCPOS con usuario 0
Token de actualización válido tras acceso expirado✅ probado✅ probado✅ probadoSe emite un nuevo token de acceso y se restaura el acceso
Token de actualización expirado✅ probado✅ probado✅ probadoNo se puede generar un nuevo token de acceso

Diagnóstico de Fallos​

Si un shop_manager predeterminado ve un error como:

Request still unauthorized after token refresh - please log in again

La matriz de endpoints indica que esto no se debe a que el rol shop_manager predeterminado carezca fundamentalmente de acceso al POS. Causas probables a investigar:

  1. Corrupción de roles/capacidades específica del sitio.
  2. Un endpoint no cubierto por la matriz.
  3. Comportamiento de reintento con token de acceso obsoleto o expirado en el cliente.
  4. Interferencia de un plugin de seguridad o autenticación de terceros.
  5. Reglas de acceso Pro o específicas de la tienda, o código personalizado.

Fallo de permiso vs. fallo de token​

El frontend del POS puede mostrar el mismo error de actualización de token en ambos casos después de recibir un 401 o 403, intentar una actualización de token y que el reintento siga sin estar autorizado. Los dos modos de fallo se ven diferentes en el lado del servidor:

Un fallo real de rol/capacidad generalmente se ve así:

status: 403
current_user: <actual user id>
access token expired: false

Un fallo de token/autenticación generalmente se ve así:

status: 403
current_user: 0
access token expired: true or invalid

Usa esta distinción al clasificar problemas de acceso al POS — un current_user distinto de cero apunta a las capacidades, mientras que current_user: 0 apunta a la capa de autenticación/token.