Store Locator Pro Module for Magento 2
MageModule's Store Locator Pro extension is a professionally built, fully responsive, advanced location mapping module for the Magento 2 e-commerce platform. Built by a Magento 2 Certified Professional Developer, it follows Magento's published best practices for coding standards and functional efficiency. It supplies extended store information and works hand-in-hand with the Google API, the gold standard for location-based services. The module's architecture is EAV. Stores and Store Groups are full-fledged entities and all properties of those entities are attributes. This extension was built with a heavy emphasis on surviving platform upgrades and easy customization by other developers as needed.
Store Locator Pro allows for unlimited store locator groups, otherwise known as store locator pages. For example, if a merchant wants to have a separate store locator for electronics stores, book stores, and furniture stores, they can. To further this example, if a specific store actually carries all of those types of items, that store can be used on all three store locator pages.
Google Maps Search
Our extension provides a very powerful store location search. The vast majority of store location extensions on the market use an unimpressive plain text search or some over-complicated series of filters and buggy search methods. Not ours. When a user types anything into the search box, they are actually conducting a Google Maps search. The search query is sent to the Google Maps API and a set of latitude and longitude coordinates for that location are returned. With those coordinates, we can easily sort the entire list of stores by distance. In fact, a user can type just about anything into our search box. A zip code, a county, a landmark like the Statue of Liberty or the Taj Mahal. Anything that can be searched on Google Maps can be typed into our search box.
Interactive Map Markers
The map markers used in our extension are more than just simple pins on a map. They are indexed beacons that provide additional info about any given store. Each marker is labeled with an index number that matches the store in the list. Map markers can also have different colors to distinguish between a regular store, a flagship or standout store, and a store that has been "selected".
When a marker is clicked, the store is considered to be "selected" and the store list automatically scrolls that store into view. The map then centers on that store and provides a deeper zoom of the location. After that, the marker which represents the selected store turns red (or another color of the user's choosing), so that it stands out from any other markers on the map.
Whenever a marker is hovered with the mouse or tapped on a mobile device, an "info window" pops up above the store to display additional details. Below these details are three buttons that allow the user to immediately call the store, navigate to the store, or get view more in-depth information about the store.
Intelligent Store List
Store Locator Pro's list of stores is designed to take up minimal vertical real estate while providing the most commonly needed information to a user. By default, if the user has not yet conducted a search, the list will be sorted by distance from their location. The distance units can be toggled between miles and kilometers and the extension will remember the user's preference. Additionally, the store list uses ajax-based infinite scrolling to reduce clicks and improve user experience.
The extension knows what day it is and uses this to display today's hours for each store. Of course, if the user would like to see the full store schedule, they only need to click the "More Info" button. If the user clicks the "Call Store" button while on a mobile device, it will dial the store's phone number automatically. If the same button is clicked on a desktop device, the user will be asked which application they'd like to use to make the call. Again, if the user only wants to see the phone number but not actually make the call, they only need to click the "More Info" button. Finally, there is the "Go There" button. When the user clicks this button, it will open the Google Maps application on a mobile device or the web application on a desktop device. When Google Maps is opened, navigation from the user's location to the store will automatically begin without the need for any additional clicks or taps.
Store Details Slideout
The store details slideout is there for users who are looking for deeper store data. This window is accessed whenever the user clicks the "More Info" button in the store list or map marker info window.
The store info slideout modal can show the user:
- Essential contact information such as address, telephone number, fax number, e-mail address, website address, and more
- Additional buttons that enable the user to immediately call the store or navigate there
- Store schedule for the entire week with today's hours appearing in bold text
- The store's accepted payment methods. The extension includes 54 different payment icons which should be more than sufficient for most merchants
- Social media icons with links to the store's various social media pages including Facebook, Twitter, Instagram, Google+, LinkedIn, Yelp, and Pinterest. More may be added in future versions of the extension based on customer requests
- Store description, notes, and other relevant information
- Unlimited media gallery images
Geocoding is the process of converting geographical data into a set of latitude and longitude coordinates. These coordinates are necessary for the proper placement of map markers on the Google Map and sorting of stores by distance. Geocoding is accomplished by sending the store addresses to an external API either upon CSV import or manual creation of a store. The API response includes latitude and longitude coordinates which are stored in the Magento database. The only time that any particular store would need to be re-geocoded is if the address ever gets changed. The re-geocode will occur automatically.
Geocoding is also used whenever the user performs a location search on the frontend. Any location that a user searches needs to be converted into a set of lat/lng coordinates in order to facilitate a distance sort.
At the time of this writing, Google's API allows 2,500 geocoding requests per day and Bing's API allows 1M geocoding requests per year, for free. Our system is designed to first use Google's API for all geocoding requests. However, if the API calls start to fail, it automatically switches over to using Bing's API so that any file import or mass geocoding request does not fail. Additionally, each store has a Timezone attribute. Whenever a store is geocoded, an additional Google API call is made to obtain the timezone and automatically save that value as well.
Easy CSV Import
Easily import large CSVs to our Store Locator Pro extension using Magento's native data import functionality. Just as a website admin would import products or customers into Magento, they can import a CSV file of store locations in the same way using the same utility. A CSV can be imported to create new stores or it can be uploaded with as little as two columns to update values for existing stores. Upon import, extensive data validation takes place in order to inform the user of missing, malformed, or invalid data to ensure a successful and accurate file import. Additionally, stores can be automatically geocoded upon import. This prevents a user from needing to geocode their file before they begin the import.
One very important feature of the CSV import functionality is the ability to use external identifiers for stores. Normally, it would be a tedious and laborious task to determine which stores in a CSV match up to entity IDs within the Magento database. Fortunately, this is completely unnecessary with our extension. We assume that most, if not all, stores being imported have their own store number or some sort of identifier in the external system that they come from. A user simply needs to import the file with a column called external_id. This is a huge time saver and a major convenience for those that frequently import files.
RESTful API / Headless Store Locator
The term "headless Magento" has been thrown around quite a bit recently. With headless being all-the-rage these days, we thought it made sense to build out a full RESTful API so that Store Locator Pro can be used in external websites and applications. All of the calls necessary to build a store locator on any external platform are available.
Search Engine Optimization
- Site administrator can choose whether or not to use a canonical URL
- Site administrator can set a custom canonical URL
- Site administrator can set an option to set all external links to rel="nofollow"
- If a store locator page's URL key is changed, a 301 redirect is automatically created
- All hyperlinks have a title attribute
- All images have an alt attribute
- Site administrator can create unlimited store locator pages
- A CMS widget is included to allow for easy placement of links pointing to store locator pages
- Site administrator can add a custom page description with the use of a WYSIWYG editor
- Many values can be set at the Store View scope for easy adaptation to a multi-store environment
- User can toggle between kilometers and miles and their preference is memorized
- Sort stores by distance, name, city, country, or state/province
- Sort stores in ascending or descending order
- Click the "current location" button to revert from using search to using the user's current location
- Granular ACL permissions allow control over creating, editing, viewing, geocoding of stores and store groups
- Mass geocode stores from the grid in the admin panel as needed
Reviews: Store Locator Pro
So glad I found this one!This is the first store locator I have found that actually works as advrtised and with no customization needed, it just dropped right into my theme which was nice. It also has the best search functionality out of ANY of the two that I previously purchased and the many I have demoed. I couldn't possibly be happier. Thanks guys, very happy!