Maps

Which map provider draws your maps, how visitors' locations are detected, and the distances customers may search.

Admin → Settings → APIs → Maps & Live Tracking

Three map providers

ProviderNeedsSuits
OpenStreetMapNo key.Everyone at the start. It works the moment you install.
MapboxAn access token.A particular look, or heavier traffic.
Google MapsAn API key.Familiarity, and the addresses customers recognise.
OpenStreetMap needs nothing and is the sensible default. Choose a paid provider when you have a reason — the map itself is not what makes deliveries work. If you select one and do not add its key, the screen tells you so and storefront maps keep showing OpenStreetMap rather than breaking.

Getting a Mapbox token

  1. Create an account at mapbox.com.
  2. Open Account → Tokens. A Default public token is already there — copy that, or create a new public one.
  3. Paste it into Settings → APIs → Mapbox access token.
  4. Back at Mapbox, restrict the token to your own domain under URL restrictions.

A public token begins pk. and is meant to be visible — it runs in the visitor's browser. That is exactly why the domain restriction matters.

Getting a Google Maps key

  1. In the Google Cloud console, create or pick a project.
  2. Enable the Maps JavaScript API and the Geocoding API — the first draws the maps, the second turns addresses into coordinates.
  3. Under APIs & Services → Credentials, choose Create credentials → API key, and copy it.
  4. Restrict key: set an HTTP referrer restriction to your domain, and limit it to those two APIs.
  5. Enable billing on the project. Google refuses map requests on a project without it.

Live tracking

Maps live tracking is the switch that puts a rider on the customer's map during a delivery. It needs the rider's app to be sending positions, which needs their delivery page left open — see Working a delivery.

Location detection

How the storefront works out where a visitor is, so it can show what delivers to them:

ModeHowTrade-off
Ask the browser (GPS)A permission prompt.Accurate, but some visitors refuse and see nothing local.
Look up by IP addressSilent, via a lookup service you configure.No prompt, roughly city-accurate, and costs a request per visitor.
Do not detectVisitors choose their area themselves.No surprises. Right for a single-city platform.

Configuring IP lookup

Two fields: an https endpoint containing {ip} — and {key} if your provider needs one — and the key itself. Leave the endpoint empty to disable IP lookup entirely.

The service is yours to choose and yours to pay for; nothing is bundled.

Detecting location is processing personal data. A GPS prompt asks permission; an IP lookup does not, and sends a visitor's address to a third party. Say so in your privacy policy and cookie banner — see GDPR & privacy.

Search distances

The smallest and largest distances a customer may search within. Set them to your actual geography: a city platform offering a 100-mile radius returns nothing useful, and a national one capped at 2 miles is unusable outside the centre.

Your own contact location

Separate, under Admin → Settings → Contact: latitude, longitude and zoom for the map on your contact page. Drag the pin or click the map to fill the coordinates rather than typing them, and it uses whichever provider you selected here.

What maps affect

  • Restaurant positions and the storefront's distance browsing.
  • Delivery zones, which restaurants draw on a map.
  • Live delivery tracking on the customer's tracking page.
  • The map on your contact page.

When it doesn't work

"Saved — but the provider needs an API key"

Go to Admin → Settings → APIs → Maps & Live Tracking and paste the key into the field for the provider you chose — Mapbox access token or Google Maps API key — then Save Maps. If you do not have a key yet, set Map provider back to OpenStreetMap, which needs none. Storefront maps keep working on OpenStreetMap until you do either.

Restaurants are not appearing by distance

Those restaurants have no coordinates. An address alone is not a position — something has to put a pin on the map.

The restaurant fixes it at Restaurant → Settings → Charges & delivery: drag the pin on the delivery map to their premises and save. You can do it for them from Admin → Restaurants by opening the restaurant and editing the same panel.

The delivery map on a customer's tracking page is blank

Three separate causes. Work through them in this order, because each one makes the next irrelevant:

  1. Live tracking is off. Check Maps live tracking at Admin → Settings → APIs → Maps & Live Tracking and switch it on.
  2. No rider is assigned. Open the order at Admin → Orders (or the restaurant's own Restaurant → Orders) and check the rider column. Only drivers currently marked available can be assigned — see Orders.
  3. The rider's page is closed. Positions are only sent while the rider has Driver → Deliveries open on their phone, with location permission granted. Ask them to reopen it; the pin reappears within a few seconds. See Working a delivery.

Visitors see restaurants from the wrong city

IP lookup is approximate and will place some visitors in the wrong place. At Admin → Settings → APIs → Maps & Live Tracking, set Location detection to Ask the browser (GPS) for accuracy, or to Do not detect so visitors pick their own area with the location control in the header — see Header, Navigation and Footer.

Nothing is detected at all

At Admin → Settings → APIs → Maps & Live Tracking, check Location detection. If it reads Do not detect, that is the answer. If it reads Look up by IP address, the IP lookup endpoint field is empty — an empty endpoint disables IP lookup even with the mode selected. Paste your provider's https address including {ip}, add the key if it needs one, and Save Maps.