Acceso al POS
Para controlar el acceso a las funcionalidades de WCPOS, se pueden utilizar las capacidades y los roles de usuario de WordPress. Al asignar roles específicos a los usuarios y configurar sus capacidades, se pueden adaptar los niveles de acceso para los distintos usuarios del POS. El plugin WCPOS se integra con los roles existentes de WordPress e introduce un rol específico para cajeros.
La siguiente tabla describe los principales roles de usuario en el POS y sus respectivas capacidades:
| Rol | Creado por | Descripción |
|---|---|---|
| Administrador | WordPress | El propietario del sitio, que tiene todas las capacidades habilitadas de forma predeterminada. |
| Gestor de la tienda | WooCommerce | Este rol está diseñado para usuarios que necesitan acceso al POS y la capacidad de gestionar la configuración del POS. Es posible que los gestores de la tienda no tengan permiso para instalar plugins ni realizar otras tareas administrativas. |
| Cajero | WCPOS | Este rol lo añade el plugin WCPOS y está destinado a los usuarios que utilizarán principalmente el POS. Los cajeros pueden operar la caja y, de forma predeterminada, crear y editar productos y clientes; sin embargo, no tienen acceso a WP Admin para modificar la configuración del POS, instalar plugins ni crear entradas de blog. Cualquiera de estos permisos puede restringirse o ampliarse por capacidad (consulte a continuación). |
A partir de la versión 1.10, al rol de Cajero se le conceden de forma predeterminada las capacidades de crear y editar productos, de modo que el personal pueda corregir un precio o añadir un producto sin necesidad de un administrador. La eliminación de productos sigue siendo opcional; no se concede de forma predeterminada. Cada escritura de productos y cupones se sigue comprobando en el servidor con las capacidades reales de WordPress del usuario; si el servidor rechaza una escritura, se revierte en el dispositivo y se muestra el motivo al cajero. Ajuste cualquiera de estas concesiones en la pantalla Acceso.
Para asignar y gestionar roles y capacidades de usuario, puede ir a WP Admin > POS > Access, donde los conmutadores de capacidades se agrupan por tarea (productos, pedidos, clientes, etc.) para facilitar la visualización del efecto de cada uno.
El conmutador Gestionar ajustes de POS (manage_woocommerce_pos) controla las páginas de ajustes en WP Admin > POS y la API de ajustes que las respalda. La pantalla Ajustes dentro de la ventana de POS es diferente: contiene preferencias por dispositivo, como la impresora, el escáner de códigos de barras, el tema y las opciones de visualización; se almacena únicamente en ese dispositivo y está disponible para cualquier usuario que pueda abrir el POS. Desactivar Gestionar ajustes de POS no la oculta, y ningún cambio realizado allí por un cajero llega al servidor.
La lista de clientes del POS muestra todos los usuarios de WordPress, incluido el personal, porque cualquier cuenta puede ser el cliente de un pedido. La edición es más limitada que la visualización: un usuario de POS que no sea administrador no puede editar ni eliminar una cuenta con capacidades de personal, independientemente de lo que indique el conmutador Gestionar clientes. El personal incluye administradores, gestores de tienda, otros cajeros y cualquier persona con una cuenta de autor en wp-admin, como editores, autores y colaboradores (las capacidades manage_options, manage_woocommerce, edit_users y edit_posts). Solo los administradores pueden modificar cuentas del personal desde el POS.
La siguiente tabla proporciona una descripción general de las capacidades de WordPress asociadas con el plugin WCPOS:
| Capacidad | Descripción | Ejemplo de uso |
|---|---|---|
access_woocommerce_pos | Permite acceder a la interfaz de WCPOS. | Activar esta opción concedería al cajero permiso para acceder y usar el POS, lo que le permitiría realizar transacciones en el punto de venta. |
manage_woocommerce_pos | Permite gestionar los ajustes y la configuración de WCPOS. | Activar esta opción permitiría al cajero modificar ajustes relacionados con el POS, como los métodos de pago o las plantillas de recibos. |
create_users | Permite al cajero crear nuevas cuentas de usuario de WordPress. | Desactivar esta opción impediría al cajero crear nuevas cuentas de clientes en el POS. |
edit_others_shop_orders | Permite editar pedidos de la tienda creados por otros cajeros. | Al desactivar esta opción, se impediría que un cajero modificara pedidos de la tienda creados por otro cajero en el POS. |
edit_product | Permite al cajero editar los detalles del producto. | Al desactivar esta opción, se impediría que el cajero modificara los detalles de los productos disponibles en el POS. |
edit_published_products | Permite al cajero editar productos publicados. | Al desactivar esta opción, se impediría que el cajero realizara cambios en productos ya publicados en el POS. |
edit_shop_orders | Permite al cajero editar pedidos de la tienda. | Al desactivar esta opción, se impediría que el cajero modificara los detalles de los pedidos de la tienda, como el estado del pedido o los datos del cliente, en el POS. |
edit_users | Permite al cajero editar cuentas de usuario existentes. | Al desactivar esta opción, se impediría que el cajero modificara los detalles de las cuentas de cliente, como la dirección de facturación, en el POS. |
list_users | Permite al cajero ver una lista de cuentas de usuario. | Al desactivar esta opción, se impediría que el cajero buscara o seleccionara clientes en el POS. |
manage_product_terms | Permite al cajero gestionar categorías y etiquetas de productos. | Al desactivar esta opción, se impediría que el cajero creara, editara o eliminara categorías o etiquetas de productos en el POS. |
publish_shop_orders | Permite al cajero publicar pedidos de la tienda. | Al desactivar esta opción, se impediría que el cajero finalizara y procesara nuevos pedidos de la tienda en el POS. |
read_private_products | Permite al cajero acceder a los detalles de productos privados. | Al desactivar esta opción, se impediría que el cajero viera los detalles de los productos privados disponibles en el POS. |
read_private_shop_coupons | Permite al cajero acceder a los detalles de cupones privados de la tienda. | Al desactivar esta opción, se impediría que el cajero viera los detalles de los cupones privados de la tienda en el POS. |
read_private_shop_orders | Permite al cajero acceder a los detalles de pedidos privados de la tienda. | Al desactivar esta opción, se impediría que el cajero viera los detalles de los pedidos privados de la tienda en el POS. |
read | Permite acceder a la administración de WordPress. | Al desactivar esta opción, se impediría que el cajero accediera al escritorio de WordPress y a la página de perfil de usuario. |
Al asignar las capacidades adecuadas a cada rol, es posible ajustar con precisión el acceso y los permisos de los distintos usuarios en el POS. Esto permite controlar quién puede realizar determinadas acciones, ver información confidencial y hacer cambios en la tienda.
Para obtener información más detallada sobre la gestión de roles de usuario y capacidades en WordPress, consulte el Codex de WordPress.
Resumen de lo que puede hacer cada rol predeterminado
Con las capacidades predeterminadas configuradas, los tres roles se comportan de la siguiente manera en el POS:
- Administrador — acceso completo al POS y a la gestión.
- Gestor de la tienda — acceso completo al POS y a la gestión, excepto a las acciones que requieren la capacidad de instalar plugins (como instalar o activar extensiones del POS).
- Cajero — el flujo de venta habitual del POS (examinar productos, tomar pedidos, procesar pagos, imprimir recibos y gestionar clientes) además de crear y editar productos de forma predeterminada (la eliminación es opcional), pero sin acceso a la configuración, los registros ni la administración de la tienda.
Para consultar el desglose completo por endpoint, incluidos los endpoints del plugin Pro, el comportamiento de expiración de tokens y consejos para distinguir los fallos de capacidades de los fallos de tokens, consulte la referencia de acceso a endpoints por rol.
Un usuario con más de un rol
WordPress permite que una cuenta tenga varios roles, aunque la pantalla de perfil solo muestra esto cuando un plugin como Members añade las casillas de verificación de roles. WordPress combina las capacidades de todos los roles que tiene la cuenta, por lo que un segundo rol por sí solo rara vez elimina algo. Los plugins de edición de roles cambian esto. Members incluye activada la opción Las capacidades denegadas siempre deben prevalecer sobre las capacidades concedidas, por lo que una capacidad marcada como Denegar en cualquiera de los roles de la cuenta prevalece sobre una concesión de todos los demás roles, independientemente del orden de los roles. Un Administrador que también sea Cliente hereda cada Denegar aplicado al rol de Cliente.
Lo que se muestra depende de la versión de WCPOS. Las versiones actuales de WCPOS rechazan el inicio de sesión en el POS e indican qué falta:
Por ejemplo, una cuenta de Administrador y Cliente con las denegaciones anteriores muestra:
Esta cuenta no puede usar el POS. Faltan las capacidades: publish_shop_orders, read_private_products, read_private_shop_orders, list_users. Tiene los roles Cliente y Administrador. Una capacidad denegada en un rol puede anular una concesión de otro, y los plugins de edición de roles como Members aplican primero esa denegación. Elimine el rol adicional o borre la denegación en el editor de roles.
Las versiones anteriores solo comprobaban access_woocommerce_pos al iniciar sesión, que las denegaciones mantienen intacta, por lo que la cuenta iniciaba sesión y después todas las pantallas fallaban: no había productos ni clientes, y los pedidos no se guardaban. En esas versiones, el registro del POS en Estado de la tienda → Registros del dispositivo afectado registra cada solicitud rechazada con el código del servidor. woocommerce_rest_cannot_view en productos significa que falta read_private_products; en clientes, que falta list_users; y woocommerce_rest_cannot_create en un pedido significa que falta publish_shop_orders. Las entradas se notifican como AUTH201.
Para el administrador del sitio: elimine el rol adicional de la cuenta (Usuarios → Todos los usuarios y, a continuación, edite la cuenta), o abra ese rol en el editor de roles y borre las marcas de Denegar de las capacidades indicadas. La pantalla Acceso de WP Admin muestra solo las concesiones; una marca de Denegar aplicada por un editor de roles no se muestra allí. Una vez corregidos los roles, un usuario con una sesión de POS existente debe cerrar sesión y volver a iniciarla; un usuario rechazado al iniciar sesión solo debe volver a iniciar sesión.