Enrique J. Ros

Los roles y las capacidades en WooCommerce

Para completar las entradas de la semana pasada sobre los roles de usuario en WordPress y cómo modificarlos, hoy vamos a ver cuáles son y qué capacidades tienen los roles de usuario específicos de WooCommerce, y cómo podemos modificar o crear nuevos roles de WooCommerce en el caso de tiendas online gestionadas por equipos.

Los roles de usuario de WooCommerce

Ya decía en el artículo sobre los roles de usuario en WordPress que muchos plugins añaden sus propios roles con capacidades específicas. Y uno de estos plugins es WooCommerce.

En lo que respecta a roles y capacidades, al activar WooCommerce realizamos los siguientes cambios en WordPress:

El cliente

El cliente es el usuario más básico que añade WooCommerce, prácticamente equivalente al suscriptor de WordPress ya que, como éste, puede ver el contenido público y modificar su propio perfil. La única diferencia es que tiene acceso (desde el área Mi cuenta) al histórico de sus pedidos, tanto los completados como los que están actualmente en trámite.

En fin, hay poco que explicar acerca de este rol y sus capacidades; como sabes, es el que tienen los usuarios que compran creando cuenta en nuestra tienda, porque ya sabes que WooCommerce permite la compra sin registro. En ese caso no hay rol de cliente sino de suscriptor, es decir, no puede ver los pedidos.

El gestor de tienda

El gestor de tienda es el rol que, como su nombre indica, puede gestionar la tienda. 🙂

Tiene dos nuevas capacidades que antes no existían (ahora veremos que no, que son más en realidad), y son las mismas que WooCommerce añade al rol de administrador, como mencionaba más arriba: manage_woocommerce y view_woocommerce_reports.

Y tú quizás digas: Pero Enrique, si el gestor de tienda tiene también capacidades relacionadas con la creación, edición y eliminación de productos. Sí, es cierto, pero no son capacidades nuevas proporcionadas por WooCommerce.

Ten en cuenta que los productos de WooCommerce no son un ente especial, sino que son custom post types (CPT, tipos de entrada personalizados). Es decir, como tipo de contenido están asimilados a una entrada normal y corriente, por lo que las capacidades necesarias para gestionarlas son las mismas que las de los posts, pero aplicadas a este CPT específico.

Las nuevas capacidades de WooCommerce

Vale, he hecho un poco de trampa. Cierto que las dos capacidades que te decía antes (manage_woocommerce y view_woocommerce_reports) son las únicas que registra WooCommerce, pero no las únicas nuevas que van a estar disponibles.

El asunto es un poco técnico, pero tiene que ver con los CPT: productos, cupones, pedidos… Todos esas características que WooCommerce añade son tratadas técnicamente como custom post types, y llevan asociadas sus propias capacidades de creación, edición, borrado, gestión de taxonomías (sólo en el caso de los productos), de comentarios (valoraciones), etc.

Así que, aunque es cierto que sólo las dos capacidades mencionadas se registran, encontramos decenas de nuevas capacidades disponibles que se crean al registrar todas estas nuevas características de WooCommerce: edit_shop_order, edit_others_shop_coupons, manage_ratings, delete_published_products, delete_shop_coupon_terms… En fin, decenas de ellos, como te decía.

¿Y por qué te cuento todo esto? Pues porque esto nos va a dar una libertad enorme a la hora de conceder acceso a las diferentes zonas de la tienda simplemente a quien lo necesita, en el caso de tiendas gestionadas por un equipo.

Añadiendo roles a WooCommerce

Porque, ¿qué ocurre en el caso de una tienda online gestionada por varias personas que necesitan distinto nivel de acceso?

Pues la solución es utilizar las mismas herramientas que ya vimos para crear y editar roles y capacidades en WordPress: Capability Manager Enhanced o User Role Editor.

Porque, una vez que conocemos las capacidades necesarias para gestionar WordPress y WooCommerce, ¿qué nos impide crear los roles que necesitemos para nuestro equipo, otorgándoles o denegándoles dichas capacidades? Ya sabes que dar acceso completo a todo el mundo (como Shop manager en este caso) no es lo más adecuado. Vamos a ver un par de ejemplos de lo que podemos hacer combinando capacidades de WordPress y de WooCommerce.

El contable

Por supuesto un contable necesita acceso completo a los informes (view_woocommerce_reports), una capacidad que por defecto sólo tienen el gestor de tienda y el administrador de la web, pero no tiene por qué tener acceso a los productos, stocks, cupones…

El responsable de almacén

Un responsable de almacén necesitará acceso de lectura de los pedidos individuales (read_shop_orders), puesto que necesita prepararlos, o a editarlos (edit_shop_orders), pero quizá no queramos que pueda borrarlos o crearlos.

También tendrá que tener acceso a la gestión de stocks (para la realización de inventarios), pero sin necesidad de permitirle crear o borrar productos.

Conclusión

Eso son sólo dos ejemplos, pero puede haber muchos más: un responsable de compras que puede crear y editar productos (conoce sus características y está en contacto directo con los proveedores) pero no publicarlos (no sabe qué PVP tendrán)… La granularidad de las capacidades hace posible prácticamente cualquier combinación.

Como ves, segmentar el acceso es muy importante en proyectos de equipo para que todo funcione como debe, y conseguirlo mediante en una tienda online con WooCommerce, basta con combinar las capacidades que otorga este plugin con las que da WordPress para crear nuestros roles a la medida de lo que necesitamos.

Como siempre, para cualquier duda, comentario, pregunta, o lo que quieras, me tienes a tu disposición tanto a través de los comentarios como del formulario de contacto.

Salir de la versión móvil