WooCommerce incluye por defecto un método de envío gratuito que puedes configurar, de forma independiente en cada zona de envío, utilizando como condición una compra mínima y/o un cupón descuento de envío gratuito.
Sin embargo a veces eso no es suficiente (ni de lejos) y necesitamos ofrecer en nuestra tienda online envío gratuito con otros condicionantes, como por ejemplo el producto comprado. Es un caso muy típico, así que vamos a ver cómo ofrecer en WooCommerce envío gratuito para ciertos productos concretos.
Tabla de contenidos
Envío gratuito con otras condiciones
Como decía, el envío gratuito de WooCommerce es bastante limitado: puedes ofrecerlo por un mínimo de compra y/o al afortunado poseedor de un cupón de envío gratuito y (afortunadamente) desde la versión 2.6 se pueden establecer estas condiciones de forma independiente por cada zona de envío.
Pero hay muchas situaciones en las que esto no es suficiente. Y no hablo de situaciones rebuscadas, con extraños modelos de negocio: me refiero a situaciones bastante habituales en las que se necesita establecer envío gratuito en función de múltiples condiciones.
El cliente final paga envío pero el distribuidor goza de envío gratuito, el envío es gratis a partir de cierta cantidad de pedido, excepto si la compra supera un peso determinado, una categoría de productos cuenta con envío gratis, pero si la compra incluye un producto de otra categoría entonces no…
En fin, hay cientos de situaciones, y la mayoría de ellas dependen de los productos. De hecho, de los ejemplos que he mencionado, sólo el primero no depende de los productos (dependería, en este caso, del rol de usuario).
Así que vamos a ver en este artículo cómo resolver todas esas situaciones con ejemplos concretos.
Envío gratuito avanzado
Todas las condiciones que se te puedan ocurrir (al menos todas las que tengan cierto sentido) quedan cubiertas con un sólo plugin, que además es gratuito y en español: WooCommerce Advanced Free Shipping.
Este plugin nos permite crear grupos de condiciones «Y» y «O» (si no entiendes lo que esto significa lo explico enseguida) que servirán para ofrecer o no el descuento gratuito. No te preocupes, porque vamos a ver varios ejemplos prácticos.
Cuando activas el plugin podrás configurar este método de envío en WooCommerce > Ajustes > Envío > Envío Gratis Avanzado. Y ojo, porque este método no se aplica por zonas: los diferentes envíos gratuitos que configures en él, se aplicarán a todas las zonas de envío.
Afortunadamente, eso tiene fácil solución, ya que entre las condiciones puedes establecer los países, provincias (departamentos) o códigos postales a los que se aplica, así que no hay problema. Pero no olvides añadirlo a cada uno de los grupos de condiciones.
Configuración de envío gratis avanzado para ofrecer envío gratuito por compra mínima de 50€ a la península y 100€ a Baleares
Envío gratuito en función de los productos comprados
Porque, como decía, funciona con grupos de condiciones, y puedes crear tantos métodos de envío gratuito, con tantos grupos de condiciones como quieras:
- Grupos «Y»: deben cumplirse todas las condiciones del grupo para que esté disponible el envío gratuito (quedan todos dentro de una box de color gris)
- Grupos «O»: debe cumplirse una o más de las condiciones para poder disfrutar del envío gratuito
- Combinación de grupos «Y» y «O»: deben cumplirse, al menos, todas las condiciones incluidas dentro de alguno de los diferentes grupos «Y»
Además cuentas con todo tipo de condiciones referentes no sólo a las cantidades (en precio) o productos comprados, sino también al usuario (rol, dirección de envío) o a los productos (categoría, peso, medidas o situación del inventario).
Como siempre, la mejor forma de verlo es con algunos ejemplos.
Envío gratuito cuando se compra un determinado producto o categoría de producto
Éste es uno de los más típicos, y además sería muy sencillo de configurar:
- Contiene producto
- Igual a
- El producto en cuestión
o bien
- Categoría
- Igual a
- La categoría que quieras
Y si son varios productos:
- Contiene producto
- Igual a
- El producto A
- Añadir grupo ‘O’
- Contiene producto
- Igual a
- El producto B
Por supuesto, también puedes ofrecer envío gratuito siempre que no se compre un producto o categoría determinada:
- Contiene producto
- No es igual a
- Producto que invalida el envío gratuito
Envío gratuito a partir de una compra mínima, siempre y cuando el peso no supere un máximo establecido
Ya vamos complicando la cosa, pero sería igualmente fácil de configurar:
- Subtotal
- Mayor o igual a
- Cantidad compra mínima
- [Añadimos línea «Y»]
- Peso
- Menor o igual a
- Peso máximo que quieras establecer
Conclusiones
Como ves no hay límites y con este plugin puedes configurar envíos gratuitos con las condiciones que quieras, combinadas entre ellas de cualquier forma que necesites. Por supuesto, siempre puedes añadir a las condiciones el uso de un cupón específico o excluir un país/provincia/código postal concretos, o un grupo de ellos.
Como ves, no hay por qué limitarse al sencillo envío gratuito (mínimo de compra y/o cupón) que nos ofrece WooCommerce. Siempre hay alternativas cuando nuestras necesidades van más allá.
Vicenç dice
Hola Enrique, como siempre gracias por todo lo que publicas y la ayuda que ofreces.
Gestiono una tienda online y he instalado este plugin para configurar una oferta que desea ofrecer mi cliente en función de un precio mínimo: envío gratuito >>> compra igual o superior a 50€ para una categoría determinada. Se ocultan los demás métodos de envío si está disponible Envio Gratuito Avanzado.
Todo funciona perfectamente, pero..
El problema surge cuando el comprador, además de un producto susceptible de envío gratuito porque cumple las condiciones estipuladas de Categoría y precio mínimo, compra otro más de otra categoría.
Desaparece el envío gratuito que se ofrece para la categoría agraciada y se cargan los gastos de envío normales de Woocommerce para el segundo producto añadido al carrito, aun cuando el precio de éste último sea muy inferior al agraciado!
He configurado «Ocultar otros métodos de envío cuando Envío Gratis Avanzado está disponible» y nada. He añadido snippets al uso para este tema y nada.
Help me, please?
Gracias en cualquier caso Enrique y felicitaciones por compartir tu sapiencia.
Saludos.
Vicenç dice
Ah, también he probado añadir condiciones Y y O que me parecen totalmente funcionalmente lógicas, pero nada.
Saludos.
Enrique J. Ros dice
Hola Vicenç
Pide soporte al autor del plugin, es quien mejor podrá ayudarte
Un saludo
Vicenç dice
Gracias!
nacho dice
hola! encontraste solución a este problema? me esta pasando este problema
DANIEL ERAZO dice
A mi me pasa que en el carrito cuando solo esta el producto específico con free shipping aparece la opcion de envio, pero si en el carrito esta ese producto junto a otros productos que no tienen free shipping igualmente me aparece la opción de free shipping para todo lo que tenga en el carrito.
No logro hacer que el wordpress detecte de alguna manera que si el producto tiene free shipping y esta junto a otros productos que no tienen esta opción activida, solo cobre el envio de los productos que no llevan free shipping, el wordpres me cobra todo lo que tiene en el carrito tenga o no tenga free shipping.
HELP ME!!
Enrique J. Ros dice
Hola Daniel
WooCommerce no establece los métodos de envío por producto, sino por zona de envío. Si estás usando el plugin del que hablo en el artículo o algún otro para esa funcionalidad, contacta directamente con el desarrollador del plugin, es quien mejor te puede ayudar.
Un saludo
Carlos Ceron dice
Hola Enrique,
Sabes si con este plugin puedo configurar que el envío gratuito se aplique para compras superiores a $100 pero que ninguno de los productos del carrito esté en descuento?
Gracias por tu ayuda