¿Me ayudas a llegar a más gente?

De nuevo, y como ya ha ocurrido antes con otros artículos del blog, he decidido publicar esta entrada para resolver una duda que veo que se repite entre los lectores del blog y que surge de la necesidad de aplicar envío gratis a ciertos productos en WooCommerce.

No. No me estoy refiriendo a configurar el envío gratuito en WooCommerce, ese tema ya lo tratamos en su día en otro artículo.

En la página de ajustes de envíos de WooCommerce, sólo deja configurar el envío gratuito para que se aplique a partir de un gasto mínimo por pedido. Es decir, que el cliente debe hacer un pedido cuyo coste total sea igual o superior a ese mínimo establecido para que no se le cobren gastos de envío.

Pero ¿qué pasa si en nuestra tienda hay varios productos a los que no queremos aplicar gastos de envío independientemente del coste del pedido? Con los ajustes básicos de envío de WooCommerce no podrás hacerlo, necesitarás aplicar alguno de los dos métodos que te explico a continuación.

2 Técnicas para aplicar gastos de envío gratuitos con WooCommerce en determinados productos.

Como siempre suelo hacer, voy a explicar diferentes formas de hacerlo y tú eliges la que más te convenga. Eso no quiere decir que no se pueda conseguir usando otros métodos.

METODO 1 – Sin usar plugin

Este método es el menos “elegante” de los dos, pero sin duda es el más sencillo y rápido de aplicar. Además, tiene la gran ventaja de que no vas a necesitar instalar ningún plugin, ahorrando de nuevo recursos en tu hosting. (Ya sé que soy un poco pesado con este tema, pero cuantos menos plugins instalados tengas, mucho mejor. Sobre todo, si ya estás recibiendo un volumen de visitas considerable).

Este método consiste en marcar como virtuales los productos para los que no quieres cobrar los gastos de envío.

Simplemente entra en la página de edición de cada producto y en el apartado “Información del producto“, marca la opción “Virtual“.

No cobrar gastos envío producto WooCommerce

Al marcar un producto como virtual, lo que le estás diciendo a WooCommerce es que no se trata de un producto físico y como tal, no es necesario enviarlo físicamente. De esta forma, WooCommerce no mostrará ningún tipo de gasto de envío en el carrito ni en la página de pago.

Aunque tu producto realmente si sea físico y tenga unas dimensiones y un peso, lo que te interesa es que WooCommerce no le aplique gastos de envío. Punto.

De cara al proceso de compra, todo sigue igual. El cliente no notará nada.

La única particularidad, es que al interpretarlo WooCommerce como un producto virtual, no permitirá al cliente añadir una dirección de envío diferente a la de facturación en la página de pago. Para resolver esto, simplemente debes pegar el siguiente código al final del fichero functions.php de tu tema:

add_filter( 'woocommerce_cart_needs_shipping_address', '__return_true', 50 );

MÉTODO 2 – Usando el plugin WooCommerce Advanced Free Shipping

Este método se podría decir que es más óptimo en cuanto a la configuración, pero ya si requiere el uso de un plugin; el plugin WooCommerce Advanced Free Shipping.

Este plugin no sólo sirve para aplicar envíos gratuitos a determinados productos, sino que también te permite definir multitud de reglas para aplicar el envío gratuito basándase en otra información, como por ejemplo; la información del carrito (impuestos, subtotal, cantidad…), los datos del cliente (país, código postal, rol del usuario…) o incluso en los datos del producto (dimensiones, categoría, inventario…).

Para este caso, vamos a usar el plugin sólo para definir una regla que aplique el envío cuando ciertos productos estén en el carrito.

A continuación, te explico paso a paso cómo hacerlo:

  1. Una vez instalado y activado el plugin (lo puedes descargar desde el repositorio oficial de plugins de WordPress), debes ir a su panel de configuración entrando en “WooCommerce > Ajustes > Envío > Envío Gratis Avanzado”.
  2. Añade una nueva regla de envío haciendo clic en “Añadir método de envío gratis“.
  3. Ahora viene la parte más importante, definir las condiciones para que se aplique el envío gratuito.
    Hay que definir una condición por cada producto. Para ello, en el primer campo selecciona la opción “Contiene producto“, en el segundo campo selecciona “Igual a” y en el tercer y último campo, elige el producto que te interese dentro del listado. A continuación, te muestro una captura de ejemplo:
    Configurar envío gratis para algunos productos WooCommerce
  4. Escribe un título descriptivo para la regla de envío que acabas de crear -por ejemplo, “Envío gratuito para determinados productos”- y haz clic en “Publicar“.
  5. Por último, vuelve a la página de configuración de “Envío Gratis Avanzado” y marca las opciones “Habilitar/Deshabilitar” y “Ocultar otros envíos“. No olvides guardar los cambios, de lo contrario no se aplicará el envío gratuito.

En el caso de que decidas usar el plugin WooCommerce Advanced Free Shipping, para evitar que se aplique envío gratis a todo el carrito cuando haya productos que si tengan gastos de envío, deberás pegar el siguiente código en el fichero functions.php de tu tema.

Una vez pegado el código anterior, entra de nuevo en la página de configuración de tu regla de envío gratuito avanzado. Y ahora en cada condición, en lugar de escoger la opción “Contiene producto“, debes escoger una nueva opción disponible llamada “Only product in cart“.

Ambos métodos funcionan perfectamente, la única diferencia es que con este segundo método, cuando se añade el producto al carrito, en los detalles del pedido (justo debajo del subtotal) se muestra el texto “Envío gratis” y con el primer método, no se muestra ningún texto referente al envío.

Envío gratuito WooCommerce para determinados productos

Obviamente, si un cliente añade al carrito otros producto por los que si cobras gastos de envío, esos gastos se sumarán al coste total del pedido.

Mi recomendación es que si vas a aplicar los gastos de envío gratuitos en WooCommerce siempre a los mismos productos, utilices el primer método. En cambio, si cada cierto tiempo vas a añadir nuevos productos a tu lista de productos sin gastos de envío, entonces usa el método 2, ya que la gestión será mucho más sencilla.

NOTA: La solución que expongo en esta entrada sólo servirá para pedidos de un mismo producto. Es decir, si en el mismo pedido se incluyen productos con gastos de envío y productos con envío gratuito, entonces esta solución no es válida porque se aplicará envío gratis a todo el carrito. Este problema se soluciona con el código snippet anterior.

Si te ha gustado, por favor ayúdame a difundirlo. ¡Gracias!

Uso de cookies

Este sitio web utiliza cookies para que disfrutes de una mejor experiencia de usuario. Si continúas navegando estarás dando tu consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, clica en el enlace para mayor información.

ACEPTAR