Guías

Resuelve por lotes los códigos postales de una lista de clientes

Una exportación de clientes con una columna de código postal pero sin coordenadas es un punto de partida habitual para cualquier cosa relacionada con zonas de envío, informes regionales o asignación de tiendas. Resolver toda la columna de una vez es más rápido que escribir un bucle.

Enviar el lote

Envía por POST un array de objetos con código y país a /v1/postcode. Cada elemento se resuelve de forma independiente y vuelve en el mismo orden.

POST /v1/postcode
Content-Type: application/json

[{"code": "10115", "country": "DE"}, {"code": "75001", "country": "FR"}]
{
  "status": "ok",
  "results": [
    {"postcode": "10115", "country_code": "DE", "results": [{"lat": 52.5300, "lon": 13.3800, "components": {"city": "Berlin", "region": "Berlin"}}]},
    {"postcode": "75001", "country_code": "FR", "results": [{"lat": 48.8630, "lon": 2.3360, "components": {"city": "Paris", "region": "Ile-de-France"}}]}
  ]
}

Asociar los resultados a las fichas de clientes

Guarda el índice de fila original o el ID del cliente junto a cada par de código y país antes de enviar la solicitud, y asocia los resultados a las fichas de clientes por esa misma posición, el mismo enfoque que funciona para la geocodificación directa o inversa en bloque.

Eliminar duplicados antes de enviar

Una lista de clientes de cualquier tamaño real suele tener muchos menos códigos postales distintos que filas, ya que muchos clientes comparten el mismo código en una ciudad o un barrio dados. Crea primero una lista única de pares de código y país, resuelve esa lista más pequeña en un solo lote y luego asigna los resultados a cada fila de cliente que comparta cada código, en lugar de enviar una entrada del array por cliente y pagar una y otra vez por el mismo par de código y país.

Gestionar los códigos que no se resuelven

Un array de resultados vacío para un elemento concreto suele significar que el par de código y país no existe, algo habitual en una exportación antigua con erratas o con un código postal desactualizado. Marca esas filas para revisión manual en lugar de eliminarlas en silencio de tu informe.

Un caso límite: diferencias de formato

Un código guardado como "SW1A1AA" sin espacio y otro guardado como "SW1A 1AA" con espacio pueden resolverse o no de la misma manera según lo coherente que sea el formato de los códigos en tu propia exportación, así que normalizar los espacios y las mayúsculas en tu exportación antes de construir el array del lote reduce el número de filas que no se resuelven solo por el formato y no porque el código sea realmente incorrecto.

Lo que cuesta

Un lote se factura a una solicitud por elemento, así que una lista de clientes de 2.000 filas cuesta 2.000 solicitudes, tanto si se envía como una sola llamada en bloque como si se envía en 2.000 llamadas separadas. Enviarlo en una sola llamada sigue valiendo la pena por la menor sobrecarga y por tener un único conjunto de cabeceras de cuota que revisar, aunque el número de solicitudes que se descuenta de tu cuota sea idéntico en ambos casos. Lo que realmente reduce el número de solicitudes es eliminar duplicados primero, como se explica arriba, no elegir entre llamadas en bloque o individuales.

Vigilar tu cuota a mitad del lote

Para una lista lo bastante grande como para superar las 2.500 solicitudes gratuitas al día, revisa X-Quota-Free-Remaining antes de lanzarla entera de una sola vez, o repártela en un par de días si no piensas pasar a crédito prepago para un trabajo puntual.

Resolver los códigos postales de toda una lista de clientes en una sola llamada convierte lo que antes era un lento trabajo en segundo plano en una solicitud sencilla. La documentación de consulta de código postal incluye la lista completa de campos.