Enrique J. Ros

Personalizar las zonas de envío en WooCommerce

Una de las mayores carencias de WooCommerce es la rigidez a la hora de gestionar las zonas de envío: sólo puedes establecerlas en función de las divisiones territoriales que el propio WooCommerce impone, cuando están disponibles. Lo cual se limita a las provincias o departamentos en el caso de unos pocos países afortunados, y al país entero en el resto de caso.

Si necesitas algo diferente tienes que recurrir a plugins, cuando los hay disponibles. Sin embargo los pocos plugins que te permiten gestionar las zonas de envío se limitan a añadir las provincias para aquellos países cuya información territorial no está en WooCommerce, o para descartar algunas de ellas. Sin embargo, es evidente que es necesaria una gestión personalizada de las zonas de envío en WooCommerce.

Personalizar las zonas de envío en WooCommerce

El caso es que «aparentemente» puedes construir las zonas de envío como quieras. Y desde WooCommerce 2.6, sin necesidad de utilizar ningún plugin. Ya expliqué cómo en su día:

Sin embargo esa flexibilidad es, como digo, aparente. Sólo puedes crear zonas de envío de dos formas:

Pero si gestionas una tienda online, sabes bien que la realidad dista mucho de ser tan fácil. Para empezar (y sólo para empezar, el número de países de los que WooCommerce incluye las divisiones territoriales de primer nivel son limitados: Argentina, España, México, Perú, Estados Unidos y un puñado de países más.

En los casos que no las incluyen, la opción de los códigos postales es bastante farragosa, sin contar con que muchos países ni siquiera utilizan el código postal de manera práctica. A eso le añades la multiplicidad de tarifas de las empresas de logística y la diversidad de casuísticas en ecommerce, y comprenderás lo lógico de la necesidad de poder gestionar las zonas de envío de cada país de forma más flexible.

WooCommerce y los negocios con reparto local

Una de las situaciones en que esto es más evidente es en los negocios con venta online y reparto local: pequeños supermercados y tiendas locales, restaurantes, pizzerías…

Estos pequeños negocios locales tienen que hacer auténtico encaje de bolillos para poder establecer las zonas de envío. Aunque pudieran hacerlo mediante códigos postales (en los países en que se utilicen) después queda eliminar el resto de zonas del país y de su provincia, cambiar los textos del checkout y eliminar la opción Provincia para no dar lugar a errores…

La gestión ideal de las zonas de envío en WooCommerce

Evidentemente, la clave está en la flexibilidad. Así veo yo cómo sería necesario poder gestionar las zonas de envío en WooCommerce:

Incluir las divisiones territoriales de primer nivel de cada país

En la mayoría de los casos es la opción utilizada para establecer las zonas de envío en un ecommerce. Sin embargo, como decía antes, WooCommerce incluye la información territorial de muy pocos países, y la mayoría tienen que recurrir a plugins para poder utilizar las provincias o los departamentos en la gestión de sus envíos, como éste para Colombia, éste para Uruguay o éste otro para El Salvador.

Poder eliminar algunas de esas divisiones… o añadir otras

Esa es sólo la primera parte de la solución, ya que muchas veces una tienda no envía a todo el territorio de su país. Son muy típicos los casos de querer excluir los envíos a Canarias, Ceuta y Melilla en España, o de limitarlos al territorio continental en Estados Unidos.

Lo ideal sería poder eliminar esas zonas, de forma que desde ellas no puedan realizarse pedidos, tal como hacen este plugin para España, éste para México o éste otro para Argentina.

Del mismo modo, muchas veces es necesario añadir zonas de envío adicionales, como ciudades. Mi plugin para añadir los departamentos de Colombia a WooCommerce no sería muy útil si no incluyera Bogotá, D.C. de forma independiente al departamento de Cundinamarca.

Cambiar por completo las divisiones territoriales de tu país

A veces no es suficiente con eliminar algunas zonas de tu país o añadir algunas otras: a veces, simplemente, esa división no nos sirve en absoluto y hay que hacer tabula rasa, y crear las propias ex-novo. Es el caso, por ejemplo, de los negocios con reparto local que exponía más arriba.

Adaptar el checkout a nuestras zonas de envío o reparto

Y por último, otro paradigma de la rigidez es el modo en que WooCommerce trata el checkout de cara al usuario. ¿Qué pinta un selector de provincia si soy un negocio local que quiere aceptar pedidos online? ¿Por qué no puedo eliminar el campo Localidad / Ciudad si tengo un establecimiento de comida rápida que sólo hace entregas en mi ciudad?

Mi gestor de zonas de envío personalizadas

Todos esos problemas los conozco bien. Cada uno de mis clientes tiene unas necesidades específicas, y es raro el proyecto en el que no tengo que hacer personalizaciones a ese respecto. Tanto que, al final, he desarrollado mi propio plugin para gestionar de forma personalizada las zonas de envío en WooCommerce.

Este plugin transforma WooCommerce permitiendo hacer todo lo que he enumerado en el apartado anterior, y algunas otras cosas que también me han parecido útiles, añadiendo un sistema de gestión territorial totalmente personalizado.

De esta forma puedo ser más eficiente a la hora de desarrollar proyectos para mis clientes, ya que no tengo que no tengo que crear una solución personalizada cada vez: ésta es totalmente flexible y adaptable a casi cualquier necesidad.

Añadir zonas personalizadas a WooCommerce

Al activar el plugin cuentas con un completo gestor territorial, de forma que puedas crear, eliminar y modificar zonas de envío a WooCommerce de forma personalizada, creando una nueva opción Zonas de envío en el menú de administración. Este menú cuenta con varios submenús:

Las dos primeras opciones te permiten añadir, modificar y eliminar divisiones territoriales para el país que quieras. No es necesario que sean provincias: ciudades, barrios, regiones, islas… Da igual la que sea: cualquier división territorial que necesites, para cualquier país del mundo.

Ahí podrás crearlas y editarlas, así como eliminar las que tú hayas creado. No puedes, sin embargo, eliminar las que WooCommerce trae por defecto.

Eliminar las divisiones territoriales de WooCommerce

Para eso hay otra opción, el submenú Resetear países. En él puedes hacer que WooCommerce «olvide» las divisiones territoriales que tiene establecidas por defecto para un país, como las provincias españolas, las mexicanas o las argentinas.

Para ello basta con marcar en la lista el nombre del país y WooCommerce olvidará «automágicamente» todos los territorios asociados a él. Esto no es definitivo, claro, en realidad no estás borrando nada de WooCommerce: elimina el país de esa lista, y las divisiones territoriales que WooCommerce le asigna por defecto volverán a estar ahí.

Modificar los territorios por defecto de WooCommerce

A veces no es necesario eliminar todas las divisiones que WooCommerce incluye por defecto para un territorio, sino que sólo necesitamos modificarlas (quitar algunas y/o añadir otras). En este caso eliminarlas todas y volver a crear la mayoría de ellas sería un trabajo enojoso.

Pero no es necesario hacerlo, ya que podemos eliminar las que gestiona WooCommerce y pasar a gestionarlas nosotros mismos mediante el importador de divisiones territoriales (Zonas de envío > Importar zonas). Sólo tenemos que importar las del país que nos interesa y, desde ese momento, las tendremos disponibles en el gestor (Zonas de envío > Todas las zonas de envío) para eliminar las que no queremos que se incluyan o incluso editar los nombres de cualquiera de ellas.

Con esta opción no sólo puedes importar las divisiones territoriales incluidas en WooCommerce sino que, como puedes ver en la imagen, puedes importar también las provincias/departamentos de otros países que originalmente no están disponibles: Chile, China, Colombia, Alemania, República Dominicana, Ecuador, Egipto, Francia, Reino Unido, Guatemala, Kenia, Nigeria, Portugal, El Salvador y Uruguay son las que incluye de momento, pero paulatinamente iré añadiendo más.

Así si, por ejemplo, necesitas añadir a WooCommerce los departamentos de Colombia, basta con ejecutar el importador para ese país y listo, ya las tienes. Si además necesitas modificarlas añadiendo, editando o eliminando algunas, también puedes hacerlo.

Igualmente en España puedes eliminar los envíos a Canarias, Ceuta y Melilla «reseteando» los territorios que WooCommerce incluye para España (Zonas de envío > Resetear países), importando las provincias españolas mediante el importador y eliminando aquellas a las que no realizas envíos (Las Palmas, Santa Cruz de Tenerife, Ceuta y Melilla).

Edición del checkout

Por último en la opción Zonas de envío > Ajustes puedes cambiar algunos campos del checkout relacionados con la organización territorial:

Vídeo: gestión personalizada de los territorios en WooCommerce

En este vídeo puedes ver en detalle todas las funcionalidades del plugin:

Puedes descargar la documentación completa de este plugin aquí.

Caso práctico: zonas de envío personalizadas para un negocio con reparto local

Para terminar esta entrada, que ya va siendo muy larga, nada mejor que ver directamente un caso práctico, de una necesidad real que ya he comentado un par de veces en este artículo: el de un pequeño negocio con reparto local. Pongamos un supermercado, aunque igualmente sirve para una pizzería, un colmado o cualquier otro tipo de negocio.

Así que vamos a ver cómo puede organizar sus repartos un pequeño supermercado local que vende online de, digamos, el Barrio del Carmen, en el sur de Murcia. Da igual que no conozcas los nombres de los barrios y pedanías, seguro que puedes hacerte una idea y aplicarlo a tu ciudad y a tus necesidades igualmente.

Este pequeño supermercado tiene una furgoneta de reparto, y puede hacer entregas en su propio barrio (El Carmen) en un plazo de dos horas, en los barrios aledaños (pondré sólo Infante D. Juan Manuel y La Purísima por no alargarlo demasiado) cada doce horas, un reparto por la mañana y otro por la tarde, y a las pedanías algo más alejadas (Rincón de Seca, Nonduermas, La Raya, Era Alta) en una ruta diaria, cada 24 horas.

Que cobren o no por el reparto es indiferente, lo importante es que, al realizar su pedido, el cliente debe saber cuándo va a recibir su compra, así que tenemos que establecer diferentes zonas de envío, cada una de ella con sus métodos: recogida local y, en función de la zona de reparto en que viva el cliente, Entrega en 2 horas, Entrega en 12 horas y entrega en 24 horas.

Estableciendo las zonas de reparto

Para empezar es evidente que tenemos que eliminar todas las divisiones territoriales que WooCommerce trae por defecto para España. No queremos dar la posibilidad de elegir provincia cuando sólo repartimos un algunas zonas locales. Así que vamos Zonas de envío > Resetear países e introducimos España, para que WooCommerce se «olvide de las provincias».

Y ahora vamos a establecer las divisiones territoriales que realmente nos van a ser útiles, añadiéndolas a través de Zonas de envío > Nueva zona de envío, asignándolas a España. Desde este momento, a todos los efectos, para WooCommerce sólo existen esas divisiones territoriales en España.

Ahora ya, con esas divisiones territoriales establecidas, ya podemos ir a crear nuestras zonas de envío personalizadas, así que vamos a WooCommerce > Ajustes > Envío y creamos nuestras tres zonas de envío, cada una con sus métodos de envío:

Ya lo tenemos «casi» todo listo.

Últimos ajustes: afinando el checkout

Ya sólo queda cambiar algunos campos en el checkout, para no confundir a los clientes: si lo dejamos todo así, el cliente verá las zonas que hemos creado con los barrios y pedanías a los que repartimos con la etiqueta Provincias, además de tener otro campo solicitándole la Localidad / Ciudad.

Así que nos vamos a Zonas de envío > Opciones y cambiamos la etiqueta del desplegable Provincias por «Zona de reparto», «Barrio/Pedanía» o cualquier otra cosa que venga bien. El campo de Localidad / Ciudad no es necesario, así que marcamos la opción para ocultarlo.

Vídeo: configurar WooCommerce para repartos locales

En este vídeo puedes ver el proceso completo, aunque como podrás ver por las imágenes del artículo y en el vídeo anterior, he rediseñado completamente la interfaz de la opción para resetear los países, de forma que sea mucho más intuitiva y fácil de usar. La que se ve en este vídeo es anterior.

Además, ya no es necesario el paso extra para resetear el país tras importarlo, ya que en las nuevas versiones del plugin esto lo hace de forma automática cuando se realiza una importación de zonas.

Conclusiones

Como ves, este plugin convierte la gestión territorial de WooCommerce y la creación de zonas de envío en un sistema muy flexible y adaptable, que soluciona este aspecto en la gran mayoría de los casos, por específicas que sean las necesidades. Desde luego lo he hecho según lo que, basándome en mi experiencia, le falta a WooCommerce para servir para casi cualquier cosa.

Este plugin cuenta con mi soporte personal en todo lo relativo a su instalación, configuración y funcionamiento. Su precio es de 9,90€ y lo puedes descargar directamente a través del siguiente botón:

Descarga con seis meses de soporte - 9,90€

Descarga con soporte continuado - 9,90€/año

Salir de la versión móvil