Guías

Añade el autocompletado por código postal a un formulario de envío

Un formulario de envío con campos separados para código postal, ciudad y región le pide al cliente que escriba información que un solo código postal a menudo ya implica.

Consultar el código

Cuando el cliente termine de escribir un código postal y seleccione un país, o si el país ya se conoce por su cuenta, envía ambos a /v1/postcode.

GET /v1/postcode?code=SW1A 1AA&country=GB
{
  "status": "ok",
  "postcode": "SW1A 1AA",
  "country_code": "GB",
  "results": [
    {"lat": 51.5014, "lon": -0.1419, "components": {"city": "London", "region": "Greater London", "country": "GB"}}
  ]
}

Rellenar los campos del formulario

Rellena los campos de ciudad y región directamente a partir del objeto components del resultado y deja que el cliente los confirme o corrija en lugar de bloquear los campos por completo, ya que un código postal a veces cruza un límite o abarca más de un nombre de lugar de uso habitual.

Un segundo ejemplo: rellenar de antemano una región de facturación a efectos fiscales

La misma consulta encaja en un formulario de registro o de facturación que necesite la región del cliente para calcular impuestos, no solo en un formulario de envío. Lanzar la misma consulta de código postal cuando se introduce un código postal de facturación rellena el campo de región de forma coherente en ambos contextos con la misma solicitud y la misma estructura de respuesta, de modo que el mismo código de gestión en el cliente y en el servidor puede servir a los dos formularios.

Lanzar la consulta en el momento adecuado

Lanza la consulta cuando el campo de código postal pierda el foco, o cuando alcance la longitud esperada para el país seleccionado, en lugar de con cada pulsación de tecla, ya que un código postal solo tiene sentido consultarlo cuando está completo. Así la función se queda en una solicitud por campo completado en lugar de una por carácter escrito.

Un error habitual que debes evitar

No fijes en el código una longitud esperada única para el formato de código postal de todos los países. Suponer cinco dígitos, algo que funciona para un país, lanzará la consulta demasiado pronto o nunca para un país que use otra longitud o un formato alfanumérico como el del ejemplo anterior. O bien lanza la consulta al perder el foco sin importar la longitud, o bien mantén una pequeña tabla de longitudes por país si quieres lanzarla antes para los países que atiendes con más frecuencia.

Gestionar un código no reconocido

Un array de resultados vacío significa que el código no se reconoció para ese país, casi siempre por una errata. Deja en blanco los campos de ciudad y región y permite que el cliente los rellene a mano en lugar de bloquear el envío del formulario, ya que rechazar el campo de plano por un fallo del autorrelleno es una experiencia peor que simplemente pedir que se introduzcan a mano en ese caso concreto.

Un caso límite: un código que abarca más de un nombre de lugar

Algunos códigos postales abarcan legítimamente una zona conocida localmente por más de un nombre, o están justo en el límite entre dos nombres de ciudad de uso habitual. Cuando esto ocurre, mostrar el valor devuelto como una sugerencia editable en lugar de una etiqueta fija permite al cliente corregirlo con el nombre que realmente usa, sin tratar ninguno de los dos como más o menos oficial que el otro.

Obtener coordenadas exactas cuando la dirección está completa

El autorrelleno a partir de un código postal da una ubicación a nivel de zona, suficiente para los campos de ciudad y región, pero cuando el cliente ya ha escrito además una dirección completa con la calle, pasar esa dirección completa por /v1/forward te da las coordenadas precisas que realmente necesita una etiqueta de envío o un sistema de rutas de reparto.

Lo que cuesta

Cada campo de código postal completado lanza una solicitud. Un formulario de envío que procesa muchos pedidos al día sigue usando esta función a un ritmo moderado, una consulta por pedido en lugar de por pulsación de tecla, lo que la mantiene muy dentro de las 2.500 solicitudes gratuitas al día incluidas con cada clave para la mayoría de las tiendas.

Rellenar automáticamente la ciudad y la región a partir de un código postal le quita dos campos a un formulario de envío para la gran mayoría de los clientes que escriben un código válido. Las definiciones completas de los campos están en la documentación de consulta de código postal.