psvneo/t3-extension-merchants

This extension adds a plugin to display merchant records on an interactive Google Maps map, featuring location search, filtering, and a detail view.

Maintainers

Package info

git.riconnect.de/riconet-public/typo3/psvneo_merchants.git

Type:typo3-cms-extension

pkg:composer/psvneo/t3-extension-merchants

Statistics

Installs: 810

Dependents: 0

Suggesters: 0

8.0.1 2026-03-25 15:23 UTC

README

This extension adds a plugin to display merchant records on an interactive Google Maps map, featuring location search, filtering, and a detail view. It also provides a CLI command to import merchant data from a CSV file.

Requirements

  • TYPO3 14+
  • PHP 8.2+
  • A Google Maps API key with the following APIs enabled in the Google Cloud Console:
    • Maps JavaScript API
    • Geocoding API
    • Places API (New)

Installation

  • Install the extension via Composer:
    composer require psvneo/t3-extension-merchants
    
  • Add Endpoint definition to your site config.yaml
    imports:
        -   resource: 'EXT:psvneo_merchants/Configuration/EasyApi.yaml'
    

Plugin Configuration (FlexForm)

Configure the plugin via the page content element. The following settings are available:

Map

SettingDescription
API KeyYour Google Maps API key
Map IDYour Google Maps Map ID (required for AdvancedMarkerElement)
Initial LatitudeLatitude of the map center on initial load
Initial LongitudeLongitude of the map center on initial load
Initial ZoomZoom level on initial load

Important: The Map ID must be created in the Google Cloud Console under Google Maps Platform > Map Management. It is required for the advanced marker feature. Without a valid Map ID, markers will not be displayed.

Google Cloud Console Setup

  1. Go to APIs & Services > Credentials and create or select an API key.
  2. Under API restrictions, enable:
    • Maps JavaScript API
    • Geocoding API
    • Places API (New) — this is a separate entry from the legacy "Places API"
  3. Go to Google Maps Platform > Map Management and create a Map ID with map type JavaScript.
  4. Copy the Map ID into the plugin FlexForm.

Marker Icons

Custom marker icons are configured via TypoScript. The following four icons are used:

IconDescription
Location markerMarks the user's current or searched position
Merchant markerDefault state for merchant pins
Hover markerShown when hovering over a merchant pin
Selected markerShown when a merchant is selected (detail open)

Icons are SVG files located in Resources/Public/Icons/.

Import File Structure

"ID";"TITLE";"SUBTITLE";"ADDRESS";"LATITUDE";"LONGITUDE";"ZIP";"CITY";"FAX";"PHONE";"EMAIL";"WEBSITE";"PRIORITIZED";"CATEGORIES"
"123";"PSVNEO";"Internet, SEO, Programmierung";"Martinshardt 5";"50.850960";"8.032210";"57074";"Siegen";"12345/000000";"12345/000000";"m.muster@company.net";"https://psv-neo.de";"1";"Category A,Category B"

Importing Merchants via CSV

vendor/bin/typo3 psvneo_merchants:import CSVPATH PID

Arguments

NameDescriptionDefault
CSVPATHThe path to the import file (can be relative)public/fileadmin/merchants.csv
PIDThe storage PID of the merchants255

Logging

Errors occurring during an import are logged to typo3temp/var/log/psvneo_merchants.import.log.

GDPR / DSGVO

The plugin displays a consent banner before loading the Google Maps API. Once the user accepts, the preference is stored in localStorage under the key psvneo_merchants_allow_gmap, and the map loads automatically on subsequent visits.