Anwendungsfälle

Eine Filialsuche aufbauen, die nach Entfernung sortiert

Die meisten Filialsuchen sind als Karten verkleidete Listen. Ein Kunde wählt ein Bundesland, dann eine Stadt und scrollt dann durch eine alphabetische Liste, die nichts damit zu tun hat, welcher Standort tatsächlich am nächsten liegt. Eine Kette für Haushaltswaren mit mehreren Dutzend Filialen fand das verkehrt herum und baute das Tool stattdessen rund um die Entfernung neu auf.

Der Neuaufbau begann bei der Eingabe. Statt den Kunden aus Dropdown-Menüs wählen zu lassen, konnte er in der neuen Suche einfach eine Adresse oder ein Viertel eintippen und erhielt dabei Vorschläge über /v1/autocomplete. Dieser Endpunkt nimmt eine unvollständige Adresse entgegen und liefert mögliche Treffer, die genau für diese Art von Live-Suchfeld aufbereitet sind. Ein Kunde, der „Oak“ eintippt, erhält also eine kurze Liste echter Straßen- und Ortsnamen zur Auswahl, statt eine vollständige Adresse einzugeben und zu hoffen, dass sie zu etwas in der Datenbank der Kette passt.

Sobald ein Kunde einen Vorschlag ausgewählt oder der Seite erlaubt hatte, seinen ungefähren Standort zu verwenden, brauchte die Kette noch eine Sache: einen Ausgangspunkt in Koordinaten. Bei Kunden, die eine Adresse eingaben, kam dieser aus der Geokodierung des gewählten Vorschlags über /v1/forward, das für eine Adresse einen Standorttreffer mit Feldern für Breiten- und Längengrad liefert. Bei Kunden, die gar nichts eingaben, griff die Website auf /v1/ip zurück, das die IP-Adresse des Besuchers ausliest und Koordinaten samt Stadt und Region zurückgibt, sodass die Suche einen vernünftigen Ausgangspunkt hatte, ohne nach etwas zu fragen.

Die Filialliste selbst wurde einmal geokodiert, in einem einzigen Stapel, da bei einer Bulk-Anfrage jede Filialadresse als ein abgerechneter Eintrag zählt. Mit den Koordinaten aller Filialen im Bestand wurde die Rangfolge zu einer Rechenaufgabe: Entfernung vom Punkt des Kunden zu jeder Filiale berechnen, sortieren, die fünf nächsten anzeigen. Keine Dropdown-Menüs, kein alphabetisches Scrollen, kein Raten, unter welchem Nachbarort eine Filiale aufgeführt sein könnte.

Die Kette achtete darauf, dass das Tool nicht mehr versprach, als es halten konnte. Da die Geokodierung (Adresse zu Koordinaten) einen Treffer für das Eingegebene liefert und keine Garantie, dass die Adresse genau so existiert, wie sie eingegeben wurde, kombinierte die Suche die Rangliste immer mit einem Bestätigungsschritt, in dem ein Kunde seinen Ausgangspunkt anpassen konnte, falls der vorgeschlagene Ort nicht ganz stimmte. Diese kleine Prüfung war wichtiger als jeder Teil der Rangfolgelogik, denn ein falscher Ausgangspunkt macht selbst eine perfekte Entfernungsberechnung nutzlos.

Der Traffic auf der Suche war moderat, einige tausend Abfragen pro Monat für Autovervollständigung und Geokodierung zusammen, was deutlich innerhalb des kostenlosen Tageskontingents lag, das zu einem My Geocode-Schlüssel gehört. Die Kette musste sich im Alltag nie Gedanken über das Preismodell machen, denn gewöhnlicher Einzelhandels-Traffic auf einer Filialsuche erreicht selten den Punkt, an dem Prepaid-Guthaben oder ein Unlimited-Schlüssel die bessere Wahl wird. Zu wissen, dass es diesen Spielraum zu 0,0001 € pro Anfrage gibt, bedeutete aber, dass eine Marketingaktion oder die Ankündigung einer Filialeröffnung nichts kaputt machen würde.

Eine Filialsuche ist eine kleine Funktion, aber oft der letzte Schritt eines Kunden, bevor er sich entscheidet, irgendwohin zu fahren, und eine richtige Rangfolge entscheidet darüber, welche Filiale den Besuch bekommt. Details zu beiden Endpunkten, einschließlich Feldstrukturen und Ratenlimits, finden Sie unter /docs/address-autocomplete/, /docs/forward-geocoding/ und /docs/rate-limits/.