Markus Michalski FAQ

Matomo Analytics

Matomo web analytics for OXID eShop 7 with e-commerce tracking, cookieless mode, Do-Not-Track, Klaro integration and opt-out widget. Apex theme bundled, Twig templates.

Deutsche Version

All OXID 7 Plugins

Matomo Analytics

OXID
PHP

This documentation always describes the latest published version.

Live Demo: Try this and other plugins live — no installation, no risk: demo.markus-michalski.net

Overview

The module integrates Matomo into OXID eShop 7: tracking code in the storefront, e-commerce tracking for product views, cart and orders, cookieless mode, Do-Not-Track, integration with the Klaro consent manager and an opt-out widget. The templates are Twig templates and bundled for the Apex theme.

The module is switched off after installation. The "IP anonymization" setting has no effect, so anonymize IP addresses in Matomo itself. Details: Privacy and Consent.

graph TD
    A["Storefront page request"] --> B["Block base_js"]
    B --> C{"isMatomoEnabled"}
    C -->|"No"| D["No tracking code"]
    C -->|"Yes, Klaro off"| E["Script runs immediately"]
    C -->|"Yes, Klaro on"| F["Script as text/plain, Klaro runs it after consent"]
    E --> G["Matomo server"]
    F --> G

Documentation

Page Content
Installation Requirements, Composer, activation, update
Configuration All settings with defaults, e-commerce values, Klaro, practical examples
Privacy and Consent What the privacy settings do in code, consent cookies, Klaro handler
Storefront and Templates Twig templates, connecting your own theme, methods, opt-out page and widget
Troubleshooting Missing tracking code, no data, Klaro, e-commerce, known limitations
Technical Details Architecture, classes, generated tracking code, session variables

Features

Feature Description
Tracking code Matomo JavaScript in the block base_js, only with a valid configuration
Cookieless mode Outputs disableCookies (default: on)
Do-Not-Track Outputs setDoNotTrack and, without Klaro, delivers no code on DNT: 1
Require consent Outputs requireConsent, checks a consent cookie without Klaro
Klaro integration Tracking script as text/plain, handler for setConsentGiven and forgetConsentGiven
E-Commerce tracking Product view, cart update, order
Heartbeat timer Optional, with configurable interval
Link and download tracking One shared enableLinkTracking call
Opt-out Own page index.php?cl=matomo_optout and an includable widget

Requirements

Requirement Note
OXID eShop oxid-esales/oxideshop-ce ^7.0
PHP >=8.2 according to composer.json. The code uses typed class constants (PHP 8.3).
Matomo Reachable via an HTTPS URL
Theme Apex (bundled), other themes need their own template extensions
License Required

License

Commercial license:

See the LICENSE file for the full terms.

Support

For questions and support, reach Markus Michalski at support@markus-michalski.net.