CMS Woocommerce WordPress

Configurar métodos de envío en WooCommerce

Diseñado por Freepik

Personalizando envíos por volumen, provincias, peso…

WooCommerce cuenta con un sistema de configuración de envíos que nos permite aplicar diferentes tarifas para según qué zonas, por peso, por volumen o incluso aplicar descuentos o envíos gratuitos si se sobrepasa un límite determinado.

Sin embargo, tiene sus limitaciones como, por ejemplo, no ocultar las provincias a las que no vamos a realizar envíos por temas logísticos. ¡Pero incluso eso no nos va a suponer un problema! En Loopeando.com te vamos a explicar cómo configurar a fondo los envíos de WooCommerce y, por supuesto, cómo conseguir ir más allá de lo que permite la propia programación de esta potente suite de E-commerce.

 

Zonas de envío

Una vez instalado y activado WooCommerce, vamos a Woocommerce –> Ajustes –> Envío

Veremos que nos aparece seleccionada por defecto la opción Zonas de envío, que será el inicio de nuestra configuración:

Aquí vamos a definir tantas zonas como tarifas geográficas diferentes tengamos.

Por ejemplo:

  • Un precio para entrega local.
  • Otro para entrega peninsular
  • Un precio diferente para envío a Baleares
  • Otro diferente para envío a Ceuta y Melilla
  • Y finalmente, otra tarifa para envío a Canarias.

Para ello pulsamos en Añadir Zona de Envío y escribirmos:

  • Nombre de la zona: Nombre interno que usaremos para saber identificarla.
  • Región(es) de la zona: Podemos añadir países, provincias y/o rangos de códigos postales.

 

TIP DE LOOPEANDO:

Zonas restrictivas: En la imagen superior hemos seleccionado España, sin embargo el nombre del campo es península. ¿Qué ocurre con las islas, Ceuta y Melilla?

Cuando añadamos otra segunda o tercera zona con un coste de envío diferente, si estas zonas se encuentran dentro de un área mayor, se aplicará su tarifa por encima de la tarifa del área más global.

O dicho de otra forma, tendré que crear la Zona España con un precio X de envío, y luego crear las zonas Ceuta y Melilla, Baleares y como tercera zona, Canarias. Cada una de ellas con su tarifa correspondiente. Ésto hará que WooCommerce aplique a esas zonas el precio concreto en lugar de el global aplicable a la Zona España.

 

Tras ello pulsamos en Añadir método de envío, y podremos escoger entre:

  • Precio fijo: Se aplica el mismo coste en toda la zona, salvo que luego crees otras zonas más restrictivas.
  • Envío gratuíto: Para, por ejemplo, si estamos definiendo que será gratis si superamos un pedido mínimo o si tenemos un cupón descuento.
  • Recogida local
  • Table Rates: Un sistema para aplicar condicionales un poco más complejos.

Naturalmente, en una zona podemos añadir varios métodos de envío. Por ejemplo: Un precio fijo y otro gratuito para compras de más de 50€.

Para ello, cada vez que añadamos un método de envío, podremos editarlo para concretar cuándo se aplica:

 

Clases de envío

Ya hemos visto que podemos variar el precio según diferentes zonas o incluso en base al gasto realizado. Pero, ¿es lo mismo enviar un anillo que un piano?

En la opción Clases de envío podemos solucionar esto. Cuando pulsamos sobre esta opción y le damos a Añadir Clase de envío, podemos ir creando tipos diferentes de casos en los cuales nuestro envío se encarecerá.

Algunas ideas:

  • Envío muy frágil
  • Contenido vivo
  • Contenido refrigerado
  • Paquete de más de 2kgs
  • Paquete de más de 5 litros

 

Relacionar clases de envío con zonas de envío

Tras crear las clases de envío habrá que volver al punto 1 (Zonas de envío) y editarlas para establecer un precio concreto para cada una de las nuevas clases que hemos creado.

 

Relacionar clases de envío con productos

Y ahora sí, éste será el último paso que nos queda.

Vamos a Productos, buscamos los que queramos asignar a las clases creadas, los editamos y veremos que ahora nos aparece, en el desplegablede WooCommerce –> Envío, las clases creadas:

No es necesario realizar esta acción producto por producto. Lo ideal es crear clases únicamente para los productos que realmente necesiten envíos significativamente más costosos que el resto, y dejar todos los demás asignados a una tarifa plana.

 

¿Y si no voy a enviar a algunas zonas dentro de un mismo país?

Aquí es donde WooCommerce patina.

No contempla que, por ejemplo, no realicemos envíos a Canarias. Aunque creemos una zona especial para Canarias a la que no asignemos ningún tipo concreto de envío, WooCommerce seguirá mostrando Canarias en el listado de provincias del formulario de pago.

¿Cómo hago entonces para excluir determinadas zonas del formulario del checkout?

Editamos el archivo functions.php, que por defecto suele estar en:
http://www.nuestro_dominio.tld/wp-content/themes/nombre_del_tema/functions.php

Y añadimos un filtro listando todas las provincias que no deseamos mostrar:

function limita_envios ($provincias) {
   unset ($provincias ['ES'] ['TF']);
   unset ($provincias ['ES'] ['GC']);
  
   return $provincias;
   }
 
add_filter ('woocommerce_states', 'limita_envios');

En este ejemplo se suprimen Tenerife y Gran Canarias.

 

¿Y si lo que quiero es justo lo contrario, enviar solo a algunas zonas? Utilizamos el siguiente código:

function definir_provincias ($provincias) {
   $provincias ['ES'] = array(
      'MU' => 'Murcia',
      'A' => 'Alicante',
      );
   return $provincias;
}
add_filter ('woocommerce_states', 'definir_provincias');

Este ejemplo únicamente permitirá seleccionar Murcia y Alicante como destino.

 

¿Te ha resultado útil esta entrada? ¡No dudes en compartirla!

Cristian Sarabia Martínez

Desde que a principios de los 90 mi padre desempolvó su Spectrum, no he dejado de probar y experimentar con la tecnología.

Enamorado del mundo web, Full Stack Developer de profesión y diseñador por devoción.

Ahora hago mis pinitos en esto del blogging para compartir con vosotros un poquito de todo lo que la comunidad me ha dado.

2 Comentarios

Haz clic aquí para dejar tu comentario

Responder a Cristian Cancelar Respuesta

  • Hola, he probado lo que pones de que en las islas se envie con otro precio. He creado una zon de españa y luego he creado una zona de baleares y en el carrito me sale el precio de españa y no de baleares…

    • Hola Cristian,

      Bienvenido!
      El coste de envío aparece cuando estás finalizando la compra. Ya que es ahí donde, tras introducir la dirección donde recibirás el paquete, especificas en el desplegable la provincia, y ahí WooCommerce te recalcula el precio total alterando los datos de envío.

      Es decir, esa modificación de precio no te aparece en el carrito, sino en el último paso del proceso de compra, en el chekout.