Cómo configurar envío gratuito condicional en WooCommerce

Por , actualizado en

WooCommerce de origen ya trae cierto soporte de envío a través de su configuración de zonas y métodos, la cual es bastante eficiente para propósitos generales. Uno de los métodos de envío que trae predefinidos es el envío gratuito, y nativamente sólo tienes una condición disponible para dicho envío gratuito, que es cuando el monto de una orden llega a cierta cantidad, lo cual es un parámetro común que usan muchos negocios online. Sin embargo, hay necesidades mucho más complejas más allá de esta que trae por default WooCommerce, así que en este artículo veremos como configurar un envío gratuito condicional más robusto.

Para este sencillo tutorial sólo necesitaremos una instalación ya lista de WooCommerce, y que estés familiarizado con como crear zonas de envío y métodos de envío, aunque lo cubriremos igual en un pequeño repaso para tener todo claro.

Funcionamiento básico de los métodos de envío en WooCommerce

Como quizás ya sabes, los métodos de envío (el envío gratuito) se definen por zona de envío, es decir, están confinados a una zona geográfica en la cual puedes ofrecer tal tipo de envío. Para crear un método de envío sólo tenemos que hacer los siguientes pasos:

Crear la zona de envío en WooCommerce

Vamos a WooCommerce > Ajustes > Envío y haz clic en el botón de Añadir zona de envío:

Muestra los pasos para añadir una zona de envío en WooCommerce

Llena los valores de Nombre de zona y Región(es) de la zona; yo usé un estado de México, tu usarás algún valor distinto acorde a donde vivas, o bien el que quieras.

Añadir un método de envío en WooCommerce

Ahora hacemos clic en Añadir método de envío que está en la sección de Métodos de envío:

Muestra cual es el botón para añadir un método de envío en WooCommerce

Eso nos muestra el diálogo de Añadir método de envío que luce como se ve a continuación y ofrece tres opciones: precio fijo, envío gratuito y recogida local:

Muestra los métodos de envío disponibles por zona en WooCommerce

Elije Envío gratuito y haz clic en el botón azul (Añadir método de envío), con lo que aparece lo siguiente:

Muestra como configurar el envío gratuito condicional de WooCommerce

Opciones nativas de WooCommerce para configurar envío gratuito condicional

De vuelta a la pantalla original verás que ya está añadido el Envío gratuito como método de envío. Pon el cursor encima y verás un par de opciones para este tipo de envío, que son Editar y Borrar; haz clic en Editar:

Como puedes ver las opciones son cambiar el título y otra que dice “El envío gratuito requiere…” que tiene cinco opciones:

  • N/D: para no usar este parámetro adicional.
  • Un cupón válido de envío gratuito
  • Una cantidad mínima de pedido
  • Una cantidad mínima de pedido O un cupón
  • Una cantidad mínima de pedido Y un cupón

Cualquier opción que involucre una cantidad mínima de pedido ocasionará que tengas que meter tal límite, y también indicar si quieres aplicar la regla antes que un descuento por cupón, de modo que no cortes tus ganancias innecesariamente. Como puedes ver, las opciones no requieren mucha explicación. Otra observación es que WooCommerce se esfuerza por darnos cierto control sobre el envío gratuito (evidenciado por las conjunciones “O” e “Y” en las opciones) antes descritas, pero obviamente apenas son útiles. ¿Que pasa si quieres ofrecer el envío gratuito sólo a ciertos lugares dentro de la zona de envío? ¿qué tal sólo a ciertos productos? afortunadamente tenemos formas de hacerlo. Vamos a revisar como, pero antes borra el envío gratuito que creaste hace un momento.

Envío gratuito condicional con WooCommerce Advanced Free Shipping

Para tener un envío gratuito condicional más robusto usaremos el plugin WooCommerce Advanced Free Shipping, al que me referiré como WAFS de ahora en adelante para no escribir tanta palabra a cada rato. Vamos a instalarlo: en tu WordPress ve a Plugins > Añadir nuevo y busca el plugin por su nombre (el completo). Verás el plugin entre los resultados de búsqueda, instálalo y actívalo.

Nota sobre el plugin WooCommerce Advanced Free Shipping

Aquellos con ojos afilados se darán cuenta que el plugin que usaremos tiene un año sin ser actualizado y eso iría contra mis propias recomendaciones de como elegir plugins confiables; pero de acuerdo con el autor en un comentario de hace un par de meses, el plugin está al día y probado con las últimas versiones, por lo que no ha requerido actualización.

Otra nota es que no está enteramente en español, de lo cual me encargaré personalmente. 😉

Cómo funciona WooCommerce Advanced Free Shipping

Lo primero que tienes que saber es que el envío gratuito condicional que se configura por este plugin NO está ligado a una zona de envío específica, así que tienes que ser cuidadoso a la hora de crear un envío gratuito con este plugin, en el sentido de que debes ser específico para no crear una condición en la que no hayas pensado, y ofrezcas un envío gratuito donde no debas y termines perdiendo dinero.

Una vez instalado y configurado, encontrarás las opciones del plugin en WooCommerce > Ajustes > Envío, haciendo clic en la pestaña Envío gratis avanzado, donde encontrarás una pantalla como la que se ve a continuación:

Muestra las opciones del envío gratuito condicional de WAFS

Vamos a revisar que opciones hay:

  • Enable the Advanced Free Shipping rates: permite habilitar o deshabilitar el envío gratuito. Habilitado por default.
  • Ocultar otros métodos de envío cuando Envío Gratis Avanzado está disponible: tal cual lo explica, creo que no hace falta decir más.
  • Sección Free Shipping Rates: aquí verás todos los envíos que vayas añadiendo; ojo, puedes añadir más de uno.

Vamos a añadir un envío gratuito condicional, presiona el botón Add Free Shipping Rate, lo que nos lleva al editor:

Muestra el editor de envío gratuito condicional de WAFS

Notarás que hay un título y abajo otro parecido; el primero es para mostrarse en la interfaz de administración de envíos de WooCommerce, y el otro para mostrarse a la hora del checkout.

El editor de condiciones de envío gratuito avanzado

WFSA se basa en grupos de condiciones; cada grupo tiene una o más condiciones, y cada condición está formada por cuatro cosas: un campo, un operador (Equal, Not equal, Greater or equal to, y Less or equal to, que corresponden a Igual, Diferente, Mayor o igual a y Menor o igual a, respectivamente) y un valor a comparar. Puedes poner una o más condiciones, y dentro de un grupo todas las condiciones son de tipo “Y”, es decir “esta condición Y esta condición Y…”, o en otras palabras, significa que para que un grupo tenga el valor de verdadero, todas las condiciones del grupo tienen que serlo.

Puedes definir más de un grupo, y entre grupos sus resultados se encadenan con “O”, es decir, “este grupo O este grupo O…”, o lo que es o mismo, con que un grupo sea verdadero toda la evaluación será verdadera.

Cada grupo muestra un par de enlaces cuando pasas el mouse por la parte superior derecha; estos enlaces son Duplicate y Eliminar, que hacen precisamente eso que dicen.

Los campos que puedes elegir para las condiciones son bastantes a decir verdad; por categoría, estos son los campos disponibles que tendrás:

  • Carrito de compras
    • Subtotal
    • Subtotal excluidos impuestos
    • Impuesto
    • Cantidad
    • Contiene producto
    • Cupón
    • Peso
    • Contains shipping class
  • Información del usuario
    • Código postal
    • Ciudad
    • State
    • País
    • Rol de usuario
  • Producto
    • Ancho
    • Alto
    • Largo
    • Inventario
    • Estado del inventario
    • Categoría

Nuestro primer bloque de condiciones de envío

Ya tenemos toda la información sobre como funciona este plugin, vamos a hacer una prueba ahora: imagina que como política de negocio ofreces envío gratuito si el subtotal de la compra es $500, estén dentro del mismo estado y pidan 20 piezas o más (si ya sé que no tiene mucho sentido, pero sígueme la corriente). Todas estas condiciones entran un sólo grupo y quedarían más o menos así:

Muestra un grupo de condiciones para un envío gratuito

Después de esto, te invito a que hagas una prueba en tu carrito; te recomiendo que habilites la calculadora de envío (WooCommerce > Ajustes > Envío > Opciones de envío > Activar la calculadora de envíos en la página de compra), y juega con la cantidad y la dirección y verás que si se cumplen las condiciones, se activa el envío gratuito (aclaro que añadí un método de recogida local, por ello lo ves en las imágenes siguientes):

Muestra como se ve la sección de Total del Carrito al momento del checkout cuando NO se cumplen las condiciones del envío gratuito con dicional
No cumple las condiciones
Muestra como se ve la sección de Total del Carrito al momento del checkout cuando se cumplen las condiciones del envío gratuito con dicional
Sí cumple las condiciones

Precaución sobre las condiciones

Las condiciones sólo tienen significado unitario; es decir, si especificas dos condiciones, una que indique que se compruebe que existe el producto X en el carrito, y otra condición donde indiques que sean 20 productos o más, no quiere decir que estés comprando 20 productos X, sino que hayan 20 productos en el carro de cualquier tipo.

Un ejemplo de como usar dos grupos de condiciones puede ser, por ejemplo, si queremos ofrecer envío gratuito a todos los que compren más de $500 pesos O que pidan un producto de una categoría en particular, digamos “Promoción”. Nuestras condiciones quedarían así:

Muestra dos grupos de condiciones para poder ofrecer el envío gratuito

Nótese que quité la condición de Estado, pues sólo tengo una zona de envío, y deberá coindidir el estado de los datos de envío para que se muestre el envío gratuito, si es que se dan las condiciones. Si tuvieras más de una zona de envío, entonces si mejor meter como condición el estado, o el código postal.

Ahora bien, ¿puedes deducir que hará ese filtro? te adelanto que la condición Categoría significa que todos los productos del carro tengan esta categoría. Así que el filtro antes mencionado le dará envío gratis al cliente si pide más de $500 “O” si todos los productos del carrito son de la categoría “Correas”. Las únicas combinaciones válidas son tal cual las acabas de leer; si compras productos que totalicen $500 se activa, si compras productos que totalicen menos no, “O” si compras sólo una correa aunque cueste un peso, también se activa. Recuerda bien que dentro de un grupo todas las condiciones deben cumplirse para indicar que el grupo de estas también cumple y activar el envío gratuito, y de haber más de uno entre estos grupos de condiciones, cuando menos uno debe cumplir para que se active el envío gratuito.

Experimenta y prueba

Como puedes ver es muy sencillo usar el plugin, pero a la vez es fácil caer en un error; mi recomendación es que implementes tus grupos de condiciones y no olvides probar en diversos escenarios, recuerda que es fácil crear una condición que te permita ofrecer envío gratuito en donde no deba de ir, o también lo inverso, que sería que el envío gratuito no se active jamás.

Palabras finales

Este artículo te muestra una manera de hacer el envío gratuito condicional en WooCommerce, pero no es la única; incluso el plugin que uso aquí es todavía más versátil, sobre todo si estás dispuesto a ensuciarte las manos con algo de código. Y por supuesto hay otras opciones, algunas comerciales, que te permitirán tener mucho más control si es lo que necesitas.

Antes que te vayas…

Los siguientes son enlaces de afiliado a hosting, herramientas y temas que uso en este sitio. Son el único apoyo económico del sitio, que notarás no tiene anuncios de ningún tipo ni molestos popups. Si necesitas alguno de estos productos, te pido los adquieras haciendo clic en las imágenes que se muestran a continuación. ¡Gracias de antemano!

¡El mejor tema para WordPress, y el tema más rápido también! GeneratePress Premium es el mejor tema para tu WordPress

¡Comprime tus imágenes y mejora la velocidad de su sitio con el CDN gratuito de ShortPixel!
Orlando Alonzo

Orlando es un ingeniero en sistemas de 45 años de edad, apasionado del desarrollo de software y con un cariño especial por WordPress. Le encantan los libros, la música, la fotografía, los cómics y es un AFOL. De último pero no menos, esposo y padre de dos trolls.

3 comentarios en «Cómo configurar envío gratuito condicional en WooCommerce»

  1. Hola, gracias por compartir tan buena información.

    Me he descargado el plugin y, estoy intentando configurar un “envío gratuito por compras superiores a 29,90€ que solo se aplique a artículos sin descuento”.

    No veo que la versión free tenga esta opción o no sé hacerlo, al crear las condiciones en las funciones del “carrito” solo me da opción de ir metiendo producto por producto y eso sería una locura. Por categorías no me sirve porque en muchas categorías hay artículos con y sin descuento. Y las opciones de “inventario” no entiendo muy bien como funciona.

    ¿Podrías decirme si el plugin tiene esta opción y ayudarme a ver qué opción es la válida para esto?

    Muchas gracias de antemano y saludos

    Responder
  2. Muy bueno Orlando! Pero tengo una duda. En mi web tengo varias categorías de producto. En la de marisco tengo envio gratis a partir de 110€. Y en ”cocina” envio gratis a partir de 35 euros. El problema es que cuando añado al carrito esas dos categorías y las dos pasan de sus respectivos precios para que sea envio gratis, no me lo detecta y me sale coste de envio. ¿Como lo harías en este caso?

    Responder

Deja un comentario

Hazlo con WordPress

Centro de preferencias de privacidad

Necessary

Advertising

Analytics

Other