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.
Matomo Analytics
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:
- CE/PE license: One OXID eShop installation
- EE license: One OXID eShop installation incl. all subshops
See the LICENSE file for the full terms.
Support
For questions and support, reach Markus Michalski at support@markus-michalski.net.