โŒ˜K

Introduction

Last updated

SoftIcon Store Locator adds a Store Locator block to the block editor. Add your shops, branches or dealers right in the block, or import them from a CSV file, and the page shows them as a list with a map. Visitors type their town or postcode, or press Near me, and see the nearest stores first.

New to it? Watch Every setting, explained, a 2-minute video tutorial.

  • No Google Maps API key, no billing โ€“ the map uses OpenStreetMap. Nothing to sign up for, no key that stops working.
  • Build it in the editor โ€“ the block shows the real map and list while you edit. Add a store, press Find on map, and drag the pin to the exact spot.
  • Free CSV import and export โ€“ bring hundreds of stores from Excel or Google Sheets at once. Columns are matched for you, and stores without coordinates are placed on the map with one click.
  • Find the nearest store โ€“ visitors search by town, postcode or store name. Stores in your list are matched instantly; any other place is looked up and the stores are sorted by distance, in kilometres or miles, within the radius they choose.
  • Near me โ€“ the visitor’s location, given by their browser, sorts the stores by distance. It never leaves the browser.
  • Directions โ€“ a link under each store opens the route in Google Maps, Apple Maps or OpenStreetMap.
  • Privacy friendly โ€“ optional “load the map on click”: nothing is loaded from the map server before the visitor asks for it. No cookies, no tracking.
  • Works without JavaScript โ€“ the store list is real HTML with addresses, phone numbers and links, so search engines can read it and every visitor can see it.
  • Fast โ€“ the map’s code loads only on pages with the block, only when the block comes near the screen.
  • Your layout and colors โ€“ list left, right or below the map, or the map only; the map height; the starting zoom; marker, marker group and button colors; your own marker picture; and the background, text and link colors and text size from the block editor.
  • Clusters โ€“ stores close together are grouped into one numbered marker until visitors zoom in.
  • Phone friendly โ€“ on phones the list goes under the map and the search field never makes the page zoom.

Privacy

The plugin sets no cookies and stores nothing about visitors. Your stores are saved in the block, inside your post. The map and the place search use OpenStreetMap services, described under External services below. With Load the map on click turned on, visitors see a short note and a Show map button first, and nothing is loaded from the map server before they press it. Near me uses the location the visitor’s browser gives; it is used only in the browser and is never sent anywhere.

External services

This plugin connects to these outside services. It sends nothing else, and nothing at all when a page has no Store Locator block.

OpenStreetMap map tiles (tile.openstreetmap.org), run by the OpenStreetMap Foundation.
The map is made of small images (tiles) that the visitor’s browser loads from this server when a page shows the map, and in the block editor. The server receives the visitor’s IP address, their browser’s user agent and the address of the page (the Referer), as for any image from another website. With Load the map on click, this happens only after the visitor presses Show map. You can set another tile server in the block’s Map settings.
Tile usage policy: https://operations.osmfoundation.org/policies/tiles/ โ€“ Terms of use: https://osmfoundation.org/wiki/Terms_of_Use โ€“ Privacy policy: https://osmfoundation.org/wiki/Privacy_Policy

Nominatim place search (nominatim.openstreetmap.org), run by the OpenStreetMap Foundation.
It turns an address into a place on the map. It is asked only when a person presses a button, at most once a second:
* in the block editor, when you press Find on map or Find the places of โ€ฆ stores: the store’s address (street, postcode, town, country) is sent;
* on the page, when a visitor presses Search and nothing in your store list matches: the text they typed, the language of the page and the area of your stores are sent. Turn this off with Look up other places in the block’s Search settings.
The service receives the IP address of the person’s browser, as with any request.
Usage policy: https://operations.osmfoundation.org/policies/nominatim/ โ€“ Terms of use: https://osmfoundation.org/wiki/Terms_of_Use โ€“ Privacy policy: https://osmfoundation.org/wiki/Privacy_Policy

Directions links to Google Maps (google.com/maps), Apple Maps (maps.apple.com) or OpenStreetMap (openstreetmap.org) are plain links. Nothing is sent to these services unless the visitor clicks a link, which opens that service’s own website or app with the store’s coordinates. Google’s privacy policy: https://policies.google.com/privacy โ€“ Apple’s: https://www.apple.com/legal/privacy/ โ€“ OpenStreetMap’s: https://osmfoundation.org/wiki/Privacy_Policy

Third-party libraries

  • Leaflet 1.9.4 (npm package leaflet) by Volodymyr Agafonkin and contributors โ€“ leafletjs.com / github.com/Leaflet/Leaflet โ€“ BSD 2-Clause License. Bundled in build/leaflet.js and build/style-index.css; license in build/leaflet-LICENSE.txt.
  • Leaflet.markercluster 1.5.3 (npm package leaflet.markercluster) by Dave Leaver and contributors โ€“ github.com/Leaflet/Leaflet.markercluster โ€“ MIT License. Bundled in build/leaflet.markercluster.js and build/style-index.css; license in build/leaflet.markercluster-LICENSE.txt.
  • Papa Parse 5.7.0 (npm package papaparse) by Matthew Holt โ€“ papaparse.com / github.com/mholt/PapaParse โ€“ MIT License. Bundled in build/papaparse.js, used only in the block editor to read CSV files; license in build/papaparse-LICENSE.txt.

The unminified source of this plugin is in the src folder, with package.json and webpack.config.js. Build it with npm install and npm run build.

Still stuck? How can we help? Get Help