Skip to content

How it works

How Nearby reads inventory from Shopify, ranks locations by distance, renders the map, and what each plan unlocks.

Nearby has two halves: an embedded admin app where you manage locations and appearance, and a product-page widget on your storefront. This page explains what each one does and how they stay in sync.

The product-page widget

The widget is a Shopify Theme App Extension block you place on your product template. When a shopper opens a product, the widget asks Nearby which of your locations have that product in stock and where they are, then renders them nearest-first.

Requests from the storefront go through Shopify's App Proxy, so they're same-origin with your shop — there's no third-party script call, no CORS, and each request is signed and rate-limited.

Live inventory from Shopify

Nearby never invents stock numbers. On install it imports your products, locations, and stock levels, then subscribes to Shopify webhooks so it stays current:

  • inventory_levels/update — stock moves at a location
  • products/update — a product or its variants change
  • locations/update — a location is added, edited, or deactivated
  • orders/create — used for verified in-store ROI analytics (Growth)

Because the widget reads back this synced data, a location only shows "in stock" when Shopify says it is. On Starter and up you can set a stock buffer so a location is treated as out a few units early, to avoid promising the last one.

Distance and the map

Each location is geocoded from its address to a latitude/longitude. The widget orders locations by distance from the shopper (or from a location they search for) and plots the in-stock ones on a map.

  • Free shows a compact, list-style widget with distances and directions — no map.
  • Starter and up show the full interactive map, rendered with MapLibre and MapTiler tiles.
  • Growth can switch the map to Google Maps, paste a custom MapLibre style.json, and add drive-time routes (via OpenRouteService) instead of straight-line distance.

Opening hours and CTAs

On Starter and up, each location can carry opening hours, and the widget shows an "open now" badge based on the current time. Calls-to-action escalate by plan:

  • Free — directions
  • Starter — directions + a contact CTA
  • Growth — pickup / buy-online, reserve, and back-in-stock alerts when a location is out

What each plan unlocks

Plans are cumulative — each tier includes everything below it.

CapabilityFreeStarterGrowth
Real-time in-stock widget
Directions
Google Business Profile import
Full interactive map
Full theming + remove branding
"Open now" hours + contact CTA
Stock buffer
Pickup & buy-online
Drive-time routes
Google Maps + custom map styles + custom CSS
Reserve + back-in-stock alerts
Intent, ROI & out-of-stock analytics
Locations shown325Unlimited

See Billing for prices, and the Settings reference for every control.

Was this helpful?