What It Does
The Store Locator section displays an interactive Google Maps showing your physical store locations with pins, detailed store information, and search functionality. Customers can view store addresses, hours, contact info, and get directions—perfect for brick-and-mortar retailers with multiple locations. Each store location is a “Pin” block with customizable details (name, address, image, phone, hours, coordinates). The section offers three layout modes: interactive map with sidebar, static images with sidebar, or map-only display. Search functionality helps customers find nearest locations.Getting Started
Get Google Maps API Key
Create a free Google Maps API key at Google Cloud Console. Enable Maps JavaScript API and paste key in section settings.
Add Store Pin Blocks
Add a Pin block for each location. Section includes 2 sample pins by default—edit or delete them.
Configure Store Details
For each pin, add store name, address, phone, hours, and image. Find latitude/longitude coordinates using Google Maps (right-click location → coordinates).
Settings
- Section Settings
- Pin Blocks (Stores)
Google Maps API Key
Google Maps API Key
Type: Textarea
Required: Yes (for map display)
Info: “You should create a Google Maps API key and add it here to display the map. Learn more”API key authenticates your site with Google Maps to display interactive maps.
Required: Yes (for map display)
Info: “You should create a Google Maps API key and add it here to display the map. Learn more”API key authenticates your site with Google Maps to display interactive maps.
How to Get API Key
Step 1: Google Cloud Console- Go to Google Cloud Console
- Sign in with Google account (free)
- Create new project or select existing one
- Navigate to “APIs & Services” → “Library”
- Search for “Maps JavaScript API”
- Click “Enable”
- Go to “APIs & Services” → “Credentials”
- Click “Create credentials” → “API key”
- Copy the generated API key
- Click “Edit API key”
- Under “Application restrictions,” select “HTTP referrers”
- Add your store domain:
yourdomain.com/* - Add Shopify CDN:
*.myshopify.com/* - Save restrictions
- Paste API key in “Google Maps API Key” field
- Save section
- Map should now display
- $200 monthly credit (covers ~28,000 map loads)
- Most small-medium stores stay within free tier
- No credit card required initially (but recommended)
- Maps JavaScript API: $7 per 1,000 loads
- Rarely exceeded unless high traffic
- Check Google Cloud Console → “Billing”
- Set up budget alerts
Without API Key
If left empty:- Map won’t display (empty gray box or error message)
- Store info sidebar still works (addresses, hours, images)
- Consider using “Image and sidebar” layout if no API key
Troubleshooting
Map not showing:- Verify API key copied correctly (no extra spaces)
- Check Maps JavaScript API is enabled
- Confirm domain restrictions include your store URL
- Check browser console for API errors
- API key restrictions too strict (temporarily remove restrictions to test)
- Billing not enabled (add credit card to Google Cloud account)
- Daily quota exceeded (check Google Cloud Console usage)
Zoom Level
Zoom Level
Type: Range slider
Range: 0-21 (step: 1)
Default: 4Controls initial map zoom when section loads. Lower numbers show wider geographic area, higher numbers show closer street-level detail.
Range: 0-21 (step: 1)
Default: 4Controls initial map zoom when section loads. Lower numbers show wider geographic area, higher numbers show closer street-level detail.
Zoom Level Guide
0-3: World/Continent (Very zoomed out)- 0: Entire world visible
- 1: Continent-level view
- 2: Large countries/regions
- 3: Multiple countries
- 4: Large country (USA, China, Brazil)
- 5: Multiple states/provinces
- 6: Single state/large region
- 7: Metropolitan area
- 8: City + suburbs
- 9: Single city
- 10: Large neighborhood
- 11: District
- 12: Small neighborhood
- 13: Few blocks
- 14-15: Street view
- 16-18: Building level
- 19-21: Extreme close-up (rarely used)
Choosing Optimal Zoom
Multiple far-apart locations:- Zoom: 4-7 (shows all pins on initial load)
- Example: Stores across entire country
- Zoom: 8-10 (city/metro area visible)
- Example: 3 stores in Chicago metro area
- Zoom: 14-16 (street-level detail)
- Example: Only one flagship location
Section Width
Section Width
Type: Select dropdown
Options: Full width, Page width
Default: Full widthControls maximum width of the store locator section.
Options: Full width, Page width
Default: Full widthControls maximum width of the store locator section.
Full Width (Default)
- Section spans entire viewport width (edge to edge with global margins)
- Map fills maximum space
- Best for: Interactive map layouts (map + sidebar, map only)
- Rationale: Maps benefit from wider space for better browsing
Page Width
- Constrained to standard page content width (~1000-1400px depending on theme)
- Creates more contained, focused appearance
- Best for: Image + sidebar layout, single store
- Rationale: Matches width of other page sections for consistency
Choosing Width
Use Full Width when:- Layout is “Map and sidebar” or “Map” only
- Multiple stores (large area to display)
- Map is primary feature
- Want immersive, full-screen map experience
- Layout is “Image and sidebar”
- Single store (no need for wide map)
- Other page sections are page-width (maintains consistency)
- Prefer more traditional page structure
Height
Height
Type: Range slider
Range: 55-100vh (step: 5vh)
Default: 100vh
Note: Desktop onlyControls vertical height of the store locator section using viewport height (vh) units.
Range: 55-100vh (step: 5vh)
Default: 100vh
Note: Desktop onlyControls vertical height of the store locator section using viewport height (vh) units.
Understanding “vh” Units
1vh = 1% of viewport (browser window) height- 100vh = Full screen height
- 50vh = Half screen height
- 75vh = Three-quarters screen height
- Adjusts to user’s screen size automatically
- Tall monitor = taller section
- Short monitor = shorter section
Height Options
100vh (Full screen) ← Default- Section fills entire browser window height
- Pro: Immersive, app-like experience
- Con: Hides content below fold
- Best for: Dedicated store locator page, map is primary content
- Shows top of next section (hints at more content below)
- Pro: Immersive but signals scroll-ability
- Best for: Map is main feature but other content exists below
- Balanced—significant presence without dominating
- Pro: Room for content above/below without scrolling
- Best for: Multi-section pages (hero, store locator, testimonials, footer)
- More compact, leaves substantial space for other sections
- Pro: Integrates well with content-heavy pages
- Best for: Homepage with multiple sections
- Smallest allowed, still functional
- Pro: Doesn’t dominate page, more like standard section
- Best for: Store locator as supporting feature, not main content
Desktop Only Note
Mobile behavior:- Height setting ignored on mobile (under 768px typically)
- Mobile uses auto height based on content and screen size
- Map typically ~400-500px on mobile
- Sidebar scrolls independently
- Mobile screens vary widely (iPhone SE vs iPad)
- Fixed vh on mobile creates usability issues (too tall or too short)
- Auto height ensures optimal mobile experience
Choosing Height
Dedicated “Store Locator” page:- Height: 90-100vh (full/nearly full screen)
- Map is the page (like Google Maps app)
- Height: 60-75vh (significant but not dominating)
- Allows room for hero, products, etc.
- Height: 55-65vh (compact integration)
- Part of larger content mix
Section Layout
Section Layout
Type: Select dropdown
Options: Map and sidebar, Image and sidebar, Map
Default: Image and sidebarControls the primary layout configuration of the store locator section.
Options: Map and sidebar, Image and sidebar, Map
Default: Image and sidebarControls the primary layout configuration of the store locator section.
Image and Sidebar (Default)
Desktop layout:- Left: Scrollable sidebar with store cards (images, addresses, hours)
- Right: Interactive Google Map with pins
- Showcasing store aesthetics (photos of locations)
- Visual browsing experience
- Businesses where store ambiance matters (cafes, boutiques, showrooms)
- Sidebar still works (customers can browse store info)
- Map area empty (graceful degradation)
Map and Sidebar
Desktop layout:- Left: Scrollable list of store information (no large images, more compact)
- Right: Interactive Google Map with pins
- Functional/utility focus (find nearest store fast)
- Many locations (list format handles more stores)
- Faster loading (fewer/smaller images)
- Professional/corporate aesthetic
- No prominent store images (images smaller or absent)
- More stores visible in sidebar without scrolling
- Less visual, more informational
Map (Full width)
Desktop layout:- Map occupies entire section
- No sidebar visible initially
- Click pins to see store info in map tooltip/popup
- Many locations (50+)
- Focus on geographic distribution
- Clean, uncluttered interface
- Customers prefer exploring map directly vs scrolling list
- Click map pins opens info window (name, address, directions link)
- Hover/click shows tooltip
Mobile Behavior (All Layouts)
All layouts on mobile:- Stacked vertically (map above or below store list)
- Store list becomes swipeable carousel (if 2+ stores)
- Map height reduced (~400px)
- Layout setting has minimal visual effect (mobile optimizes automatically)
Choosing Layout
Image and sidebar when:- Store aesthetics are important (design-forward retail, hospitality)
- Under 10-15 locations (sidebar remains scannable)
- You have high-quality store photos
- Visual browsing preferred over map-based searching
- You have many locations (15+)
- Function over form (customers just need address/hours)
- Limited or no store photos
- Faster page load priority (fewer images)
- You have many locations (20+)
- Customers know what they’re looking for (browse map, not list)
- Clean, minimal interface preferred
- Geographic distribution is key selling point (“We’re everywhere!”)
Spacing - Desktop
Spacing - Desktop
Type: Select dropdown
Options: Default, Medium, Compact, None
Default: DefaultControls vertical spacing (padding) above and below the section on desktop.
Options: Default, Medium, Compact, None
Default: DefaultControls vertical spacing (padding) above and below the section on desktop.
- None: No spacing (section touches adjacent sections edge-to-edge)
- Compact: Minimal spacing (~20-30px)
- Default: Standard spacing (~40-60px) ← Recommended
- Medium: Generous spacing (~80-100px)
When to Adjust
Default (most cases):- Balanced spacing between sections
- Professional appearance
- Breathes without feeling disconnected
- When map is part of dense content flow
- Faster vertical page scanning
- More content visible without scrolling
- Store locator is featured/hero section
- Standalone page (only section)
- Dramatic, separated presentation
- Edge-to-edge layout (rare)
- Custom designs where spacing handled elsewhere
- Map immediately follows hero with no gap
Spacing - Mobile
Spacing - Mobile
Type: Select dropdown
Options: Default, Compact, None
Default: CompactControls vertical spacing on mobile devices.
Options: Default, Compact, None
Default: CompactControls vertical spacing on mobile devices.
- None: No spacing
- Compact: Minimal spacing (~15-20px) ← Default
- Default: Standard spacing (~30-40px)
- Default: More breathing room on mobile (use if section feels cramped)
- None: Edge-to-edge mobile design (rare)
Best practices
Secure Your API Key
Always restrict API key to your domain(s) in Google Cloud Console. Unrestricted keys can be stolen and used, incurring charges to your account.
Accurate Coordinates
Use exact latitude/longitude from Google Maps (right-click location). Approximate coordinates place pin in wrong spot, confusing customers.
Complete Store Info
Fill all fields (name, address, phone, hours, image). Incomplete info frustrates customers trying to visit. Hours and phone are especially critical.
High-Quality Store Photos
Use clear, well-lit photos of storefront or interior (under 300KB). Helps customers recognize location and builds trust in brick-and-mortar presence.
Test Directions Links
Click “Directions” button for each store to verify link works. Auto-generated links usually work, but test custom links thoroughly.
Optimize Zoom Level
Set zoom to show all pins on initial load (4-7 for multi-location, 14+ for single store). Customers shouldn’t have to zoom out to find locations.
Mobile-Friendly Hours
Use simple, readable hour formats. “Mon-Fri: 10am-8pm” better than “Monday through Friday: 10:00 AM - 8:00 PM” (takes less space on mobile).
Monitor API Usage
Check Google Cloud Console monthly for map load count. Set budget alerts at $50 to catch unexpected usage before bills accumulate.
Common Use Cases
Multi-Location Retail Chain
Stores: 5-20 locations across state or region Setup:- Layout: “Map and sidebar” (efficient list + map)
- Zoom: 7-9 (shows city/metro area)
- Height: 75vh (significant presence on “Locations” page)
- Each pin: Store name, full address, phone, hours (M-Sat 10-8, Sun 12-6), storefront photo
Franchise/Quick-Service Restaurant
Stores: 10-50+ locations Setup:- Layout: “Map” only (many locations, list would be long)
- Zoom: 6-8 (regional view)
- Height: 100vh (full-screen map experience)
- Each pin: Restaurant name, address, phone, hours (daily 11am-10pm), no images (speeds up loading)
Single Flagship Store
Stores: 1 location Setup:- Layout: “Image and sidebar” (showcase beautiful storefront)
- Zoom: 15-16 (street-level detail, exact building visible)
- Height: 70vh (integrated on “Contact” or “Visit Us” page)
- Single pin: Store name, address, phone, detailed hours, high-quality store photo
Regional Business (Showrooms/Offices)
Stores: 3-8 locations across multiple cities Setup:- Layout: “Image and sidebar”
- Zoom: 5-7 (state/region level)
- Height: 80vh (prominent on “Locations” page)
- Each pin: Office name (e.g., “Seattle Showroom”), address, phone, hours (appointment-based: “By appointment: Call to schedule”), professional office photo
Hospitality/Multiple Properties
Stores: 2-10 properties (hotels, vacation rentals, venues) Setup:- Layout: “Image and sidebar” (showcase each property visually)
- Zoom: 8-10 (metro area if nearby, 5-7 if spread out)
- Height: 85vh (major page feature)
- Each pin: Property name, address, phone, check-in hours, hero photo of property
Pop-Up/Temporary Locations
Stores: 1-3 current pop-ups Setup:- Layout: “Map and sidebar” (simple, quick updates)
- Zoom: 9-11 (neighborhood level)
- Height: 70vh
- Each pin: “Pop-up: [City Name]”, address, hours (include dates: “Open Nov 1-30, Daily 10am-6pm”), phone, event photo
Layout Behavior
Desktop Layout by Mode
Image and Sidebar:- Sidebar: ~30-40% width, scrollable, prominent images
- Map: ~60-70% width, full height
- Click pin: Map pans to location, sidebar scrolls to matching card
- Sidebar: ~30-40% width, more stores visible (compact cards, smaller/no images)
- Map: ~60-70% width, full height
- Map: 100% width, full height
- No sidebar visible
- Click pin: Info window/tooltip shows store details
Mobile Layout (All Modes)
- Map: Full width, ~40-50vh height
- Store carousel: Full width, swipe to browse (if 2+ stores)
- Search: Above map or in collapsed dropdown
- All layout modes look similar on mobile (stack pattern)
Search Functionality
Search bar (appears when 2+ pins):- Desktop: Top of sidebar
- Mobile: Above map or in dropdown
- Function: Filters visible pins by location name/address
- Example: Type “Seattle” → only Seattle stores visible, map pans to Seattle area
- Autocomplete: May suggest store names as you type (theme-dependent)
Pin Interaction
Click pin behavior:- Map centers on clicked pin
- Sidebar scrolls to matching store card (highlights it)
- Info window/tooltip opens on map with store name + address
- “Directions” link in info window (opens Google Maps directions)
- Map pans to that store’s pin
- Pin bounces/highlights briefly
- Info window opens on pin
Related Sections
- Contact Form - Often paired with store locator on Contact page
- Footer - May include condensed store info or “Find a Store” link
- Rich Text - Use for additional location details or instructions above/below map
Technical Notes
Google Maps API
API used: Maps JavaScript API Required features:- Map rendering (basic map display)
- Markers (store location pins)
- Info windows (store details on pin click)
- Geocoding (address → coordinates, used for search)
- Directions API (custom routing)
- Places API (nearby POI, autocomplete)
Coordinate Precision
Decimal places significance:- 4 decimals (48.8585): ~11 meters accuracy (city block level)
- 6 decimals (48.858504): ~0.1 meters (building entrance exact)
- 8+ decimals: ~1mm (unnecessarily precise)
Performance Optimization
Image loading:- Store images lazy load (only visible sidebar cards)
- Compress images to under 300KB each
- Use WebP format if theme supports (smaller file size, faster)
- Map renders after page load (non-blocking)
- API script loads asynchronously
- Total section load: 500ms-2s depending on image count
- Client-side filtering (no server requests)
- Instant results as you type
- Scales to 50+ stores without performance issues
Browser Compatibility
Supported browsers:- Chrome, Firefox, Safari, Edge (latest 2 versions)
- Mobile Safari (iOS 12+)
- Chrome Mobile (Android 5+)
- No API key: Sidebar still works, map empty
- JavaScript disabled: Static list of stores (no map interaction)
- Old browsers: Fallback to basic map (no advanced features)
Accessibility
Keyboard navigation:- Tab through store cards in sidebar
- Enter to select store (pans map to pin)
- Arrow keys to pan map
- +/- keys to zoom
- Store cards have semantic HTML (
<address>,<time>, etc.) - Map pins have ARIA labels with store names
- “Get Directions” links clearly labeled
- Clicking pin brings focus to info window
- Clicking sidebar card brings focus to map pin
- Focus visible (outline on interactive elements)
Troubleshooting
Map not displaying (empty gray box):- Verify Google Maps API key is correct (copy/paste carefully)
- Check Maps JavaScript API is enabled in Google Cloud Console
- Confirm API key restrictions allow your domain
- Check browser console for API error messages (F12 → Console tab)
- Verify billing is enabled on Google Cloud account (even with free tier, card required after initial setup)
- Verify latitude/longitude coordinates are correct (swap lat/long by mistake?)
- Re-copy coordinates from Google Maps (right-click exact location)
- Check for typos in coordinates
- Use 6-8 decimal places (4 or fewer = imprecise)
- Search requires 2+ store pins (hidden with only 1 store)
- Clear browser cache and reload
- Check if store names/addresses contain searchable text
- Verify JavaScript isn’t blocked (some ad blockers affect search)
- If using “Custom Directions Link,” verify URL is valid (test in browser directly)
- If using auto-generated (field empty), verify coordinates are correct
- Check for special characters in address breaking URL encoding
- Test link by clicking “Directions” button in live preview
- Check image file sizes (keep under 500KB, ideally under 300KB)
- Try different image format (JPG vs PNG)
- Verify images uploaded successfully (re-upload if needed)
- Check if images are too large (browser may timeout loading)
- Verify you’re editing correct section (multiple store locator sections if on different pages?)
- Hard refresh browser after saving (Cmd/Ctrl + Shift + R)
- Clear theme cache if available in theme settings
- Test on live site (Theme Customizer may cache differently)
- Adjust “Height” setting (55-100vh range)
- Remember setting is desktop-only (mobile uses auto height)
- Preview on live site (editor may render differently)
- Check other CSS isn’t conflicting (contact theme support if section height locked)
- Test on actual device (not just browser resize)
- Clear mobile browser cache
- Check image sizes (very large images may cause layout issues on mobile)
- Verify theme JavaScript isn’t conflicting (disable other sections temporarily to isolate issue)
- Monitor usage in Google Cloud Console → “APIs & Services” → “Dashboard”
- Set budget alerts at 100 thresholds
- Most stores stay within $200/month free tier (~28,000 map loads)
- High usage? Consider caching strategies or alternative map providers (Mapbox, OpenStreetMap)
- Verify “Opening Hours” field has content
- Use rich text formatting (
<p>Mon-Fri: 10-8</p>) - Check for HTML errors (unclosed tags)
- Preview on live site (Theme Customizer may not render rich text fully)
- Consider “Map only” layout (no image loading in sidebar)
- Compress store images aggressively (under 100KB each)
- Reduce number of visible stores (group by region, use multiple pages)
- Consider alternative: external store locator service (Storemapper, etc.)