What does the store customer gain?
- One place to find a location: the customer browses addresses and contact details without having to search for them across many separate materials.
- Searching for specific locations: they can enter a city, postal code, street, or company name and combine the phrase with filters for country, location type, and service.
- Nearby search: after granting location access, they choose a radius from 1 to 500 kilometers or miles, and the results are sorted from the nearest location.
- Contact with the selected location: correctly completed phone numbers and email address become links for calling or sending a message; a separate link leads to the location’s website.
- Information before the visit: the location card may display the logo, type, services, an additional note, and expandable opening hours for individual days of the week.
- Access to directions: the “Directions” link opens external Google Maps with the location or address of the point, also when using the OpenFreeMap map.
OpenStreetMap map, Google Maps, or just the list
OpenFreeMap — map without a Google key
The module uses the public OpenFreeMap service and OpenStreetMap data, while the MapLibre library is included locally. Displaying this map does not require an account or API key. OpenFreeMap provides a public service with no display fees; however, it is an external service, not infrastructure maintained by the module. The current terms are described by the OpenFreeMap provider.
Google Maps — option with your own key
If you choose Google Maps, you provide a browser key for the Maps JavaScript API. An optional map ID allows the use of Google advanced markers. Project configuration and any fees remain the responsibility of the Google account owner; the module does not manage billing. The requirements are described in the Google Maps configuration documentation.
List independent of map display
The map loads only after clicking “Show map”. Markers correspond to locations from the current results page — up to 20 — and update after a search or page change. Clicking a marker shows the name, address, and directions link, and the map view adjusts to the displayed locations. You can disable the map and leave the directory with the search engine; the basic list, filters, and pagination also work without JavaScript.
An address does not replace coordinates. A location without latitude and longitude may be visible in the list, but it will not receive a marker and will not appear in radius search results. You enter coordinates manually, import them from CSV, or fill them in on demand in the location form using a separate Google Geocoding API key. Free map display does not mean built-in free geocoding.
Managing locations in the PrestaShop panel
- Adding and editing locations: the form includes the company name, country, street, city, postal code, contact details, website, note, hours, and coordinates.
- Publication control: a location can be activated or hidden without deleting its data. The admin list can be filtered and sorted; record deletion is also available.
- Custom types and services: you will create classifications suitable for your network, for example showroom, pickup point, consulting, or installation. A location may have one optional type and multiple services.
- Multilingual classification names: type and service names can be provided in the store languages. If a translation is missing, the name from the default language is used; the descriptive data of the location itself does not have separate language versions.
- Location logos: the form accepts PNG, JPEG, and WebP up to 2 MiB, provided the server supports the given format. The image is processed and saved as PNG; it can later be replaced or removed.
- Clear panel structure: a shared header with configuration status information leads to settings, the distributor list, types and services, and CSV import and export.
- Separate visibility settings: enabling the directory and its presence on the homepage have separate switches, and the form contains Polish hints and instructions for launching without Google.
CSV import and export with change control
Import supports UTF-8 CSV files up to 2 MiB in size and containing up to 1000 data rows. You can choose semicolon, comma, or tab as the separator. In the panel, you can download an empty template or a sample file, and existing locations are matched by the fixed external_id identifier, not by company name or address.
- Load the file: the module will check supported headers, field values, identifiers, country codes, and type and service assignments.
- Review the preview: you will see records to be created and updated, unchanged items, errors, and a comparison of values before and after the change. The preview does not save changes to locations.
- Approve valid data: even a single error blocks the file import. A valid preview can be approved within 30 minutes, in the same store and by the same employee. Data changes since the preview may require reloading the file.
During an update, an omitted column keeps its current value, and an empty cell may clear an optional field. Records not present in the CSV are not deleted. Saving locations and relations takes place in a transaction; a save error rolls back its changes. Types and services must be created in the panel beforehand — the import refers to their codes.
Export from the CSV tab includes active and inactive locations of the current store, contact fields, hours, coordinates, and classification codes. The same limits apply: 1000 locations and 2 MiB. The format includes protection of cells against interpretation as spreadsheet formulas and can be loaded back into the module. It is not a full module backup: it does not include logo files, settings, dictionary translations, or store assignments.
Multistore — locations assigned to selected stores
Locations, types, and services have explicit store assignments. A new location belongs by default only to the currently selected store; in the form, it can also be assigned to other available stores with the module installed. The front-end list, map, search results, and export take the current store into account. Enabling the directory, the homepage block, the map provider, and API keys are configured per store.
Sharing a location does not create independent copies. The name, address, contacts, logo, activity status, and classification of the same record are shared across the assigned stores. Saving requires selecting a single store, and editing a shared location requires access to all its stores. New locations from CSV go to the current store, while an update preserves existing assignments.
Directory presentation and technical SEO elements
- Separate directory page: the module provides a link that can be used in the store menu. The optional homepage block requires the theme to display the
displayHomehook. - Layout adapted to smaller screens: the form and list have responsive rules, and opening hours can be expanded in the location card.
- Results without reloading the entire page: when JavaScript support is available, search and pagination update the list and markers via AJAX.
- Directory content rendered server-side: addresses and contacts are present in the list HTML, not only in map pop-ups.
- Directory page metadata: the controller provides the title, description, breadcrumb navigation, and canonical URL of the directory. Filtered results and subsequent pages receive the
noindex,followdirective.
The module does not create separate location subpages or LocalBusiness structured data. The mechanisms described are not a guarantee of rankings in Google or presence in AI answers.
How to launch the directory without Google keys?
- In multistore, select the store for which you want to configure the directory.
- Enable the directory and choose OpenFreeMap / OpenStreetMap as the map provider.
- Add active locations with real addresses and both coordinates; if needed, assign your own types and services.
- Open the directory from the panel and use the “Show map” button. Optionally enable the homepage block.
Important distinctions before implementation
Distributor Map Pro is an informational directory. It does not add location selection to the cart or order, does not link locations with products or their stock levels, and does not handle reservations. Hours are entered as text — without automatic “open now” status. Distance in the results is calculated as the crow flies, not according to the road route.
Geolocation requires user consent and a secure browser context, usually HTTPS. The interactive OpenFreeMap map requires WebGL2 support and a connection to the provider’s service. Loading the map causes the browser to contact the map provider; the button that launches it is not an integration with a consent management system. The directory itself remains available without