Una consulta recurrente en lo que respecta a WooCommerce es poder mostrar precios diferentes según el tipo de cliente.
Son varios los escenarios en los que esto es útil: un mismo ecommerce que vende tanto a distribuidores como a clientes finales, la necesidad de mostrar distintos precios en función del nivel de compras del cliente o, incluso, ocultar el precio a los visitantes que no sean clientes o a cualquiera de los tipos de clientes existentes.
Tabla de contenidos
Distintos precios según el rol de usuario
En realidad hacerlo no es complicado, y menos aún sabiendo ya cómo crear, editar y gestionar los roles de usuario en WordPress y en WooCommerce, algo que hemos ido viendo en diversos artículos:
Porque sí, lo has adivinado: vamos a hacer uso de los roles de usuario y sus diferentes capacidades para poder configurar diferentes precios que se mostrarán a distintos tipos de clientes. Pero no te preocupes porque no vamos a necesitar ensuciarnos demasiado, ya que la mayor parte del trabajo nos lo dará hecho un plugin. Y además gratuito.
WooCommerce Role Based Price
Se trata del plugin WooCommerce Role Based Price, un plugin que sirve precisamente para eso, y que entre otras cosas nos va a permitir:
- Mostrar diferentes precios a los usuarios, en función de su rol (tanto para productos simples como para productos variables)
- Ocultar tanto el precio como el botón Añadir al carrito a determinados roles de usuarios
- Mostrar el precio de un producto mediante un shortcode, que mostrará una u otra cantidad en función del rol del usuario que lo vea
Y más cosas, que vamos a ir viendo en este artículo.
Creando los tipos de cliente
El uso de este plugin es bastante sencillo e intuitivo. Lo primero que necesitamos es, obviamente, crear los distintos tipos de clientes en función de los tipos que queramos manejar. Si no sabes cómo hacer esto puedes echar un vistazo a este artículo en el que explico cómo hacerlo.
Como todos ellos van a ser clientes y no necesitarán capacidades adicionales, puedes crearlos utilizando como base el rol por defecto de WooCommerce, Customer.
Si, por ejemplo, vas a vender tanto a clientes como a distribuidores, puedes duplicar el rol Customer (cliente) y renombrarlo como distribuidor. Con ello ya tienes los dos roles necesarios con los que trabajar: en este ejemplo, mostrarías a Customer los precios de venta al público, mientras que Distribuidor vería los precios para mayoristas.
¿Estás construyendo tu tienda online o eres implementador WordPress?
¿Necesitas plugins de calidad y con soporte para implementar funcionalidades concretas?
Consigue todos los plugins a la venta en la sección de plugins de esta web y todos los que siga añadiendo. Acceso a los 96 plugins (y subiendo) con soporte directo del desarrollador, actualizaciones y uso ilimitado: úsalos en tantas webs como lo necesites.
Configurando los tipos de cliente
Ya he dicho que usar este plugin es muy sencillo. Al activarlo aparecerá una nueva pestaña en WooCommerce > Ajustes llamada, precisamente, WooCommerce Role Based Pricing.
En ella encontramos cuatro apartados, como puedes ver en la imagen:
- General
- User Role Rename
- Price Visibility
- Plugins
De ellas nos van a ser especialmente útiles el primero y el tercero. El apartado User Role Rename sólo sirve, como su propio nombre indica, para poner nombres alternativos a los roles de usuario (puedes aprovechar y cambiar Customer por Cliente o cualquier otro que te guste más, si quieres), de forma que puedas usar estos nombres como un alias. El último apartado (Plugins), por el contrario, es para el uso de add-ons premium.
General
Comencemos entonces por la configuración general. En ella vemos dos opciones: Allowed User Roles y Allowed Product Pricing. En la primera incluiremos los roles a los que el plugin tendrá acceso, mientras que en la segunda los precios (normal/rebajado) que podremos variar en función del rol.
No te preocupes si te cuesta seguir la explicación. En seguida vamos a ver un ejemplo real con un vídeo, así que no vas a tener ningún problema. 🙂
Price Visibility
En este apartado podemos configurar a qué roles queremos ocultar (si es que queremos hacerlo) los precios y/o el botón de Añadir al carrito. Puedes ocultarlo no sólo a clientes, sino también a los visitantes que no tengan cuenta seleccionando el rol Visitor/Logged out users.
Si vas a ocultar precios a alguno de los roles, recuerda decirle al plugin qué tipos de productos son los que no quieres que muestren el precio (simples y/o variables) en el apartado Products To Hide. Si ahí no seleccionas nada, las anteriores opciones (ocultar los precios y ocultar el botón Añadir al carrito) no tendrán efecto.
Por último, también puedes configurar cómo deberían comportarse los productos variables ante los roles a los que estás ocultando datos: si mostrar o no mostrar las variaciones.
Configurando los precios
Una vez hecho esto, ya está todo listo. Desde este momento cuando vayas a la página de edición del producto verás, bajo las casillas para introducir el precio, un botón que dice Add / Edit Role Pricing. Al pulsarlo se abre una ventana modal que te mostrará los distintos roles habilitados y los respectivos campos de introducción de precio.
Atento al interruptor que activa y desactiva el precio según roles de usuarios arriba del todo, junto a la frase Enable Role Based Pricing. Por defecto está desactivado (en gris) y puede pasar desapercibido. Si no lo activas no se mostrarán los precios según rol.
Vídeo: distintos precios según el tipo de cliente en WooCommerce
Como mejor puedes ver el proceso completo es mediante un vídeo en el que muestro la configuración completa, de principio a fin, combinando los dos escenarios más comunes en este tipo de casos:
- Ocultar los precios a los usuarios no registrados
- Mostrar diferentes precios a usuarios y a distribuidores
Para que no sea muy largo haré el ejemplo haciendo ambas cosas a la vez, es decir, los usuarios no registrados no podrán ver precios, y los clientes registrados verán precios distintos en función de si son clientes finales o distribuidores.
Conclusión
Ya has visto qué útil y flexible es el uso de los roles de usuario en WooCommerce, que nos permite hacer cosas como éstas. Si tienes cualquier duda, consulta o pregunta, ya sabes que tienes a tu disposición tanto los comentarios como el formulario de contacto.
Luca dice
Hola Enrique, gracias por la información es lo que estaba buscando, este plugin también permite mostrar/ocultar categorías dependiendo del rol del cliente?
Gracias, un saludo
Enrique J. Ros dice
Me alegra que te haya sido útil, Luca 🙂
No, este plugin sólo sirve para precios. Para lo que buscas puedes utilizar este otro.
Un saludo.
Luca dice
Vale, gracias le echaré un vistazo! buscando he dado con este Booster for WooCommerce que incluye las 2 opciones, se pueden activar sólo los módulos que se necesitan para evitar de cargar mucho WP. ¿Qué opinas?
Un saludo
Enrique J. Ros dice
No lo conocía, pero lo probaré a ver qué tal. No me gustan los plugins tipo Jetpack, porque si no están bien hechos (aunque no se activen módulos) llenan la base de datos, incluyen montones de CSS, y acaban afectando mucho al rendimiento. Lo dicho, lo probaré. Gracias por mostrarlo.
Un saludo.
Pere Pau dice
Hola Roberto, hay alguna manera de poder editar los precios masivamente para el rol de usuario. Estoy hablando de una tienda de mas de 22.000 productos . y solo veo la posibilidad de editarlos uno a uno con esto. Gracias por tus videos y articulos , me son siempre de mucha ayuda.
Luca dice
Ok, ya me dirás como te ha parecido, lo he encontrado en el blog de Raiola, como se dedican a eso de servidores imagino no será muy pesado, no se.. Lo estoy probando y veo que no tiene la posibilidad (o por lo menos no la he encontrado) de ocultar por cliente una categoría, pero sí por producto.
Un saludo
M dice
Hola! Sirve tambien para los grupos de usuarios (creados con el plugin groups)? Se puede limitar cantidad de productos tambien? Gracias!
Enrique J. Ros dice
Hola M. Se pueden establecer distintos precios en función del rol.
Un saludo.
Alejandro dice
Hola! Justo es lo que quiero hacer, pero mi pregunta es ¿se puede cargar la info de manera masiva agregando columnas al csv? Tengo más de 3000 productos y asignar el precio de manera manual me va a llevar toda la vida. Saludos!
Enrique J. Ros dice
Hola Alejandro
En principio no, pero si sabes PHP y SQL puedes hacer un script que haga un update de la base de datos.
Un saludo.
Claudio dice
Estoy utilizando el plugin, es muy bueno, pero como puedo hacer un update de los precios de los roles asignados a cada producto con el plugin woocommerce CSV importer? Ya que no me muestra el campo del role en el import.
Si tengo que hacer un update en php y mysql, cual es la tabla a leer en la base de datos y el campo correspondiente? El dato se guarda con un número en la base de datos o tiene una escritura específica en el campo?.
Gracias por tu ayuda.
Enrique Ros dice
Hola Claudio
¿Has probado a ponerte en contacto con los desarrolladores del plugin? Ellos son quienes conocen su código.
Un saludo.
Sixto dice
Activo el plugin y en woocommerce /ajustes no aparece nada
Enrique Ros dice
Hola Sixto
Debería aparecerte una nueva pestaña (junto a las de General, Productos, Envío, etc) llamada WooCommerce Role Base Pricing
Un saludo.
Sixto dice
Pero lo cierto es que no parece.
Cuando descargué el plugin salia un mensaje que decía » no probado en mi theme »
¿podría ser este el motivo?
Me extrañaría sobremanera que así fuese porque el theme es el Anthe que trae el instalador de Webempresa.
Otra cosa :
¿puedo con este plugin conseguir que el visitante pueda ver los precios y comprar sin más al tiempo que el distribuidor vea sus precios diferentes?
Enrique Ros dice
Sí, de hecho esa es la finalidad de este plugin, que cada uno vea los precios y compre en función del rol que tiene asignado.
Puedes comprobar si es causa del theme cambiando momentáneamente al theme por defecto (un twenty-loquesea) y comprobando si así aparece la pestaña. Si no es así lo más probable es que se trate de una incompatibilidad con algún otro plugin, tendrás que desactivar todos los plugins (excepto WooCommerce) e ir activando uno a uno para ver cuál es el culpable.
Nuria dice
Pudiste resolver este problema? me pasa exactamente lo mismo. no me aparecen esas pestañas, solo puedo elegir lo que quiero permitir y lo que no, pero no me deja acceder para cambiar el USER ROLE NAME ni el PRICE VISIBILITY…
José Piamba dice
Excelente aporte, me ha resultado muy útil. Pero quisiera soporte con lo siguiente: ya cree los tipos de clientes (mayorista, minorista, particular), ya tengo el formulario de registro (los campos del formulario los edito con Cimy) y ya asigne precios con el plugin para los tipos de cliente en concreto, pero ¿como hago para que en el formulario de registro el cliente me diga si es mayorista, minorista o particular? Hasta ahora puedo pedirlo como un campo de texto y se guarda en alguna parte del perfil del usuario pero no va a modificar el tipo del cliente que es lo que me interesa. Agradezco la ayuda prestada
Enrique J. Ros dice
Gracias por tu comentario, José.
Si realmente quieres que sea el usuario el que lo elija (ten en cuenta que así un particular podría abrir cuenta de mayorista para obtener mejores precios) puedes hacerlo con algún plugin que permita elegir el rol en el formulario de registro (hay varios que lo hacen).
De todos modos, en estos casos es normalmente el administrador el que asigna manualmente lo roles para evitar la situación que te mencionaba antes.
Un saludo.
David dice
Hola Enrique;
Como siempre un gran trabajo de ayuda. Acabo de instalar el plugin pero la apariencia no es igual que la que publicas en ti video. A mí dentro de ajustes no me creó nada pero sí me ha creado una pestaña denominada «Role Based Price Setting» pero dentro de esta no tengo la opción «Price Visibility» que aparece en tu video luego no puedo seguir configurándolo. ¿Cómo es posible?
Enrique J. Ros dice
Hola David
La nueva versión 3 del plugin ha cambiado un poco. Para activar esta opción tienes que ir a la pestaña Extensions y activar la extensión Price & Add To Cart Visibility. Desde ese momento ya tienes la opción disponible en la pestaña Extensions Options.
En breve actualizaré el artículo y el vídeo.
Un saludo.
David dice
Fantástico Enrique!
Muchas gracias, ya lo tengo activo y funcionando. Tengo un par de preguntas más si me lo permites:
1) Yo solo tengo dos tipos de clientes, Cliente Normal y Partner (mayorista). Me gustaría eliminar el precio y la posibilidad de comprar en un solo producto ya que este solo lo vendemos a los Partners (mayoristas). Hacer esto o eliminar el artículo de la tienda para los Clientes Normales, cualquiera de las dos opciones me satisface.
2) ¿Debo activar alguna de las otras dos extensiones que vienen en la nueva versión del plugin?
Son WooCommerce Product Export [V 1.0] y WooCommerce Product Importer [V 1.0] .
Muchísimas gracias por la gran ayuda!
Enrique J. Ros dice
Hola de nuevo David
Lo primero lo puedes hacer con el propio plugin. En cuanto a las extensiones, actívala sólo si las necesitas.
Un saludo.
David dice
Hola Enrique!
Veo que ya has actualizado el video, fantástico trabajo!
No he conseguido ocultar un solo producto a mis Clientes Normales. También me he encontrado con otro problema, ¿Cómo puedo añadir variaciones de producto pero que solo aparezcan para mis clientes registrados (partners)?
Los Partners tendrán un precio diferente por unidad y descuentos por cantidad, para lograr este descuento por cantidad se me ha ocurrido añadir precios variables pero al hacerlo los Clientes Normales también lo ven. ¿Cómo oculto este contenido de los Clientes Normales?
Enrique J. Ros dice
Hola de nuevo
Este plugin no es capaz de manejar variaciones, para eso tendrás que buscar un plugin que sí lo haga. Éste creo que te serviría, confírmalo primero con el autor.
Un saludo.
David dice
Muchas gracias Enrique; lo haré! Gracias por el enlace!
Joshua dice
¡Buenas Enrique! Sigues usando este plugin, yo lo estoy usando pero me falla en los productos variables.
En mi caso, me tacha el precio normal que he definido en el plugin y me sale el precio que especifique en las opciones de WooCoomerce.
¿Te ha sucedido?
Saludos
Enrique J. Ros dice
Hola Joshua
Quizá algún otro plugin está interfiriendo con su funcionalidad. Si tienes algún otro que pueda actuar sobre precios prueba desactivándolo.
Un saludo.
José Maria dice
Hola Enrique. Siguiendo tu tutorial he conseguido dar dos precios a los productos, uno de mayorista y otro PVP gracias por tu trabajo.
Por otro lado intento poner la frase «venta exclusiva profesionales» en los productos solo profesionales para 1ue se lea antes de lograrse. En Role Based Price tiene la casilla para tal acción, el problemail es que no funciona y por muchas vueltas que le he dado no encuentro el por qué. Me puedes ayudar?
Gracias y un saludo!
Enrique J. Ros dice
Hola José María
Lo mejor que puedes hacer es postearlo en el foro de soporte del plugin, nadie puede ayudarte mejor que el propio desarrollador del plugin.
Un saludo.
Manuel Martin dice
Hola Enrique! este es el unico plugin que existe para ello? es que lo intente activar y me sale un mensaje que dice » este plugin no tiene cabecera valida» o algo así, será que el plugin ya murio…
Un saludo y muchas gracias!!
Enrique J. Ros dice
Hola Manuel
El plugin sigue funcionando correctamente.
Un saludo
Daniel dice
Hola Enrique.
En primer lugar agradecerte toda la ayuda que nos proporcionas.
Ahora: En lugar de precio según cliente se puede hacer que según la categoría tenga un porcentaje a la hora de importar desde el csv?.
Me explico! cuando importo el csv con los 3000 productos mediante wp all import, le asigno un tanto por ciento que debería ser diferente según la categoría, pero no se como puedo llevar esto acabo. Conoces la forma de hacer esto? tienes algún plugin para esto? tu te encargarías de llevarlo a cabo?.
Gracias.
Enrique J. Ros dice
Hola Daniel
Lo más fácil es hacer la modificación antes de la importación, en el propio archivo, abriéndolo como hoja de cálculo.
Un saludo.
Germán dice
Hola
Me gustaría ocultar el precio en determinados productos, solo algunos, ¿como puedo hacerlo?
Gracias y un saludo
Enrique J. Ros dice
Hola Germán
Hay varias formas de hacerlo. Una de las más sencillas es usar CSS, aunque esto oculta el precio pero sigue viéndose si se mira el código fuente de la página. Si sabes programar, lo más eficiente es hacerlo mediante un hook aplicado de forma condicional. Si no, puedes usar un plugin como éste.
Un saludo.
Nelson dice
Hola. Muchas gracias por la información.
Una pregunta relacionado con el tema, es que estoy tratando de poner diferentes precios según paises o regiones, ya que en latinoamerica es muy diferente el poder adquisitivo, que el de un español al de alguien que trabajo en los Estados Unidos o Europa.
¿Que tipo de pluggin existe para diferenciar el precio por paises?
Gracias
Atte
Nelson
Enrique J. Ros dice
Hola Nelson
Puedes usar WooCommerce Price Based on Country.
Un saludo.
jp guzman dice
Desde luego las personas como tu son las que realmente ayudan a los inexpertos como yo.
Muchas gracias por tus aportes, de hecho te he comprado varios plugins y estoy muy contento con ellos.
Sigue así maestro.
Enrique J. Ros dice
Hola JP
Gracias por tus palabras, me alegra que mis contenidos y plugins te sean de utilidad en tus proyectos 🙂
Un saludo
jp guzman dice
una pregunta no dispones de ningun plugins que pueda descargar todos los productos de woocommerce a pdf mostrando la foto descripcion sku etc…?
Gracias. He visto que tiene uno pero lo hace en individual.
Enrique J. Ros dice
Hola jp
Echa un vistazo a WooCommerce Store Catalog PDF Download, quizá te sirva para lo que necesitas.
Un saludo
Angel dice
Hola Enrique,
Me parece muy interesante este artículo y por ello te doy mi más cordial felicitación.
Tengo una pequeña duda, lo que has expuesto está muy bien, pero … ¿es posible mostrar también el precio real del producto?, es decir, que los distribuidores vean cuál es su precio (PVD) y además que vean cuál es el precio de venta recomendado (PVPR)
Muchas gracias por tu ayuda.
Enrique J. Ros dice
Hola Ángel
Sí, pero depende de dónde quieras mostrarlo a lo mejor no encuentras un modo sencillo o un plugin que te lo facilite. Siempre puedes usar los atributos para que se muestre en la información adicional, pero si lo quieres por ejemplo bajo el precio de venta, supongo que habría que programarlo a medida.
Un saludo.
Ángel dice
Gracias Enrique,
Lo que quiero es que salga directamente al lado o debajo del precio del distribuidor.
La página de producto la tengo «maquetada» con Elementor Pro y me gustaría que quedara algo así:
PVD: 12,35€ PVPR: 18,00€
Muchas gracias.
Angel dice
Hola Enrique,
Al final lo he podido solucionar incluyendo este plugin del repositorio «MSRP for WooCommerce»
Gracias por todo.
Valentina dice
Hola Enrique, primero que todo muchas gracias por brindarnos tan buena información! Quería usar este pluggin para tener precios diferentes para clientes normales y suscriptores, pero me gustaría que los clientes pudieran ver el precio que pagan los suscriptores para que así se tienten a suscribirse ¿sabrías como hacerlo? Desde ya muchas gracias y bendiciones.
Enrique J. Ros dice
Hola Valentina
No veo forma de hacerlo si no es programándolo a medida.
Un saludo,
Luis Alberto dice
Enrique muy buen aporte…gracias.
Mi pregunta es puede el usuario visitante ver el REGULAR PRICE y el usuario logeado especial ver el precio de VENDEDOR (es decir el precio pero reducido) de forma que el publico general compre al precio regular y solo un grupo selecto pueda ver ese precio especial de vendedor…
Espero tus comentarios …muchas gracias de antemano por tu asesoría al respecto…
Ya agregué tu web a mis favoritos…tienes excelentes contenidos!!! Gracias por compartir!
Almudena dice
Hola Buenas tardes, yo tengo instalado el plugin y si me cambia el precio dependiendo del roll con el que acceda, el problema me surge cuando el precio no cambia en la pista previa del producto, que mantiene el precio normal si aparece en la parte inferior del producto y en la pagina del producto al igual que en el carrito, solo es la la vista previa.
Muchas gracias y si sabes porque me puede estar pasando esto….
Gracias por tu trabajo, nos ayudas mucho.
Enrique J. Ros dice
Hola Almudena
La vista previa no es una funcionalidad estándar de WooCommerce, así que posiblemente el plugin que estés usando para crearla (o la plantilla, en caso de que sea una funcionalidad de ésta) no es compatible con el plugin de precios por rol.
Un saludo
ester dice
Se puede controlar existencias por cada rol
Antonio Javier Martín Sánchez dice
El Plugin está disponible a fecha de hoy?
Laura dice
No parece estar disponible por que en la pagina pone: Este plugin ha sido cerrado el 9 de agosto de 2021 y no está disponible para descargar. Motivo: Problema de seguridad.
¿Alguien conoce una alternativa fiable?.
Gracias de antemano.
Gabriel Gutierrez dice
Que otro plugin remplaza esta función ya que no esta ya disponible