Matomo Analytics: setup and help
Quick start
- Upload the
mprmatomoZIP through Modules > Module Manager > Upload a module. - Click Configure and enter your positive numeric Site ID and Matomo URL for an existing Matomo site.
- Set Matomo site currency to the three-letter uppercase currency configured for that Matomo site, such as
EUR. - Review Exclude employee sessions and Respect analytics consent, then set Enable Matomo Analytics to Yes and save.
- Check Matomo tracking readiness. Open your storefront in a customer browser and grant the required analytics/service consent.
- Confirm a page view and product/category events in your Matomo tracker, then place a test order in the configured currency.
- If you need server purchases, enable Enable Tracking HTTP API purchase fallback, save its options and verify the shared
send_matomo_tracking_apiworker and queue status.
Requires PrestaShop 1.6.0.0 or later and PHP 7.1 or later.
Setup manual
Install and configure
Follow the steps in Quick start.
Matomo settings
Open Configure from Module Manager. You need an existing self-hosted Matomo installation or Matomo Cloud site. Configure the site's ecommerce reporting in Matomo. The module does not install or host Matomo.
| Setting | Default | What you configure |
|---|---|---|
| Enable Matomo Analytics | No | Enable the integration after the site and URL are valid. |
| Site ID | Empty | Enter a positive numeric Matomo website ID. The active account validator accepts up to 10 digits. |
| Matomo URL | Empty | Enter the installation base URL using http:// or https://. |
| Matomo site currency | Empty | Enter the uppercase three-letter currency configured in Matomo. Monetary events need a matching currency. |
| Exclude employee sessions | Yes | Hold tracking for excluded staff browsers. |
| Respect analytics consent | Yes | Require a positive analytics/service consent decision. Unknown consent holds tracking. |
Use a base URL such as https://analytics.example.com/ or https://example.com/matomo/. The normalizer adds a trailing slash and removes a final matomo.php or piwik.php. It rejects credentials, query strings and fragments. The browser loads matomo.js; browser and server tracking use matomo.php under that base.
Set Matomo site currency even if you use browser-only purchases. Matomo uses its site's currency, so this integration holds monetary events when the order currency is missing or differs. It does not convert amounts. Configure a separate appropriate site for a different reporting currency rather than relabeling an amount.
The consent reader supports Cookies Revolution, Cookie Banner and the shared Cookiebot, OneTrust and TCF readers. Test your category and service mapping. Consent is checked when sending, and withdrawals are persisted through a private endpoint. An absent CMP decision is not treated as permission. A supported detected CMP still applies if the module's respect switch is off.
Event switches
Each standard switch defaults to Yes. Turn off events you do not need.
| Setting | What it does |
|---|---|
| Track page views | Send Matomo page views. |
| Track product views | Set ecommerce product view context. Public page data carries catalogue identity without customer-specific pricing. |
| Track category views | Set ecommerce category view context. |
| Track add to cart | Send a Matomo event after a confirmed successful cart delta. It does not invent a cart total from a button click. |
| Track add to wishlist | Send a Matomo event from a confirmed wishlist signal with product identity. |
| Track checkout start | Send checkout context obtained through a private visitor request for detected checkout pages. |
| Track searches | Send site search on the search controller using a sanitized query. |
| Track purchases | Allow eligible browser purchases and optional server purchase queueing. |
| Track registrations | Set a permitted signup marker and consume it through private tracking. |
The current cart event path records an event. It does not send an ecommerce cart-update total merely because an add button was clicked. Search terms that look like email addresses or long number sequences are filtered.
Track phone-link clicks, Track actual chat starts, Track confirmed contact forms and Track product engagement default to No. Form tracking requires a server-confirmed receipt. Chat tracking requires an actual supported start notification. The engagement tracker uses its shared defaults of 3 gallery interactions, 1 variant change, 1 detail interaction or 45 seconds, with once-per-product/session behavior when storage is allowed. This form has no threshold fields for those values.
Configure custom events
Track custom events defaults to No. Custom event rules starts empty. Add rules before enabling the switch. Names accept 1 to 64 letters, digits, underscores or hyphens. You can configure up to 25 distinct names.
[
{"event":"QuoteRequest","trigger":"click","selector":".request-quote","label":"Quote request"},
{"event":"SalePageView","trigger":"url","url_contains":["/promotions","/sale"],"label":"Sale page"},
{"event":"ContactPageView","trigger":"controller","controllers":["contact"],"modules":["contactform"],"label":"Contact page"},
{"event":"ConfiguratorUsed","trigger":"event","dom_event":"mprmtmo:custom","label":"Configurator used"}
]
document.dispatchEvent(new CustomEvent('mprmtmo:custom'));
Use selector for a click rule, URL fragments for a URL rule and controllers for a controller rule. modules can accompany a controller rule. A DOM-event rule without a name uses mprmtmo:custom. once defaults to false for clicks and true for URL, controller and DOM-event rules.
The active builder maps custom rules to Matomo category Custom, the configured event as action, and the configured label as name. Arbitrary params and DOM-event details do not become Matomo properties. Use these configured rules instead of the old window.mprmtmoTrackEvent helper.
Configure Tracking HTTP API purchases
| Setting | Default | What you configure |
|---|---|---|
| Enable Tracking HTTP API purchase fallback | No | Queue eligible order purchases for server delivery. |
| Matomo token_auth | Empty | Optionally enter a 32-character hexadecimal authentication token for your Matomo instance. |
| HTTP API queue batch size | 20 | Set 1 to 100 events per worker run. |
The module records the buyer's consent and staff status and queues eligible orders for the server. The worker checks enabled status, destination ownership, outbound policy, buyer consent, staff status and site currency again. If the buyer withdraws consent later, the queued purchase is not sent.
Each order is sent to a Matomo destination through one channel. When the server takes responsibility for sending a purchase, the browser does not send it; when the browser takes responsibility first, the purchase is not added to the server queue.
The purchase ID sent to Matomo is the numeric PrestaShop order ID, not the order reference. The payload includes products, tax-inclusive revenue and subtotal, tax, shipping and discount amounts. It sends only when the order currency matches Matomo site currency.
Ensure your shared MPR cron runner executes:
task: send_matomo_tracking_api
callable: mprmatomo::cronProcessMatomoTrackingAPIQueue
schedule: every:300
context: any
timeout: 30
The provider is matomo_tracking_http_api in the shared conversion queue. The worker runs in each enabled shop's context. The readiness panel shows pending, sending, sent and failed counts, plus held, terminal, suppressed and ambiguous states. A network ambiguity may require review rather than blind resending.
Verify tracking
Check Matomo tracking readiness for Site ID, normalized URL, tracking, consent, custom rules, API queue and worker registration. Test in a customer browser with the relevant analytics/service permission.
Confirm the matomo.js request and tracker calls. Test page, product and category views, a successful cart change, wishlist, checkout, search and signup according to the enabled switches. Public HTML contains static configuration; the private endpoint supplies visitor policy and private checkout/signup context.
Place an order in your configured Matomo currency. Check its numeric order ID and amounts. If the server fallback is enabled, verify its queue admission and worker result, and confirm the browser channel did not duplicate it. Check refusal and withdrawal separately.
Troubleshoot
If nothing tracks, check the enabled switch, Site ID, URL, ownership, local dependencies, consent and staff policy. Remove another Matomo tracker that could bind to a different destination.
If purchases are missing, check Matomo site currency first. Then check Track purchases, buyer/cart/session ownership, the buyer's original consent and staff status, the channel reservation and worker status. A purchase whose consent state is unknown is held.
If a custom button does not track, update its selector and verify its rule. A successful standard cart event needs the shared commerce signal; a click alone is insufficient. The old helper and selector lists in earlier documentation do not define the current standard event detector.
Disable or uninstall
Set Enable Matomo Analytics to No and save to pause this integration. Uninstall through Module Manager to remove its menu, cron registration and module configuration. The shared queue table is kept if another module uses the conversion package; otherwise its uninstall helper drops that table. The shared consent and channel tables are kept on uninstall; do not drop them manually. Manage your Matomo site and historical data in Matomo.
Reference screenshots
Use the setting names above when a reference screenshot differs from your installed version.



Questions
1
Does Matomo add requests to storefront pages?
Yes. When tracking is permitted, the module can load matomo.js asynchronously from your Matomo URL and send tracking requests to matomo.php.
Known Issues
7
Translated labels remained in English
Purchase tracking accuracy across delivery methods
Consent withdrawal and opt-out handling
PHP 7.1 compatibility
Damaged translations
Asset combination compatibility
Custom-event setup checks were incomplete
Feature Requests
9
Implemented
Queued purchase delivery through Matomo Tracking HTTP API
One-click module updates
Multilingual interface
Installation checks and repair
Matomo ecommerce analytics
Queued purchase fallback
Duplicate tracking prevention across modules
Consent-aware analytics and internal traffic exclusion
Optional contact and engagement tracking
Changelog
v1.2.02026-10-19
- Addedcustom dimension mapping: send customer group, language, and cart status as custom dims
- ImprovedaddEcommerceItem calls: now sends correct category hierarchy path
- Fixedsite ID not updating front-end snippet when changed via admin without clearing cache
- Addedoutbound link click tracking using Matomo's enableLinkTracking() feature
Older releases
v1.1.52026-08-19
- AddedAdd Matomo tracking API fallback
- Addedcomplete FR/DE/ES/IT/PL translations
- FixedAlign matomo release metadata
- FixedHarden Matomo custom-event readiness
v1.4.02026-04-20
- AddedLicense management tab with key management and renewal options
- Addedself-healing integrity checks for automatic diagnostics and repair
- Addedcomplete FR/DE/ES/IT/PL translations
v1.3.02026-01-26
- Addedfull compatibility with PrestaShop 9.x and Hummingbird theme
- AddedMatomo Tag Manager container support as an alternative to direct tracking code
- ImprovedGDPR consent integration: tracking deferred and consent forwarded via _paq.push(['requireConsent'])
- Fixedecommerce order event not firing on custom thank-you page templates
- Addedheatmap and session recording opt-in toggle for Matomo's on-premise Heatmaps plugin
v1.0.02025-12-05
- Initialrelease: Matomo (formerly Piwik) analytics integration for PrestaShop
- InitialSelf-hosted instance configuration: Matomo URL and site ID
- InitialFull ecommerce tracking: product views, cart updates, and order completion
- InitialCookieless and GDPR-first tracking mode available out of the box
v1.1.02025-06-26
- Addedgoal tracking hooks: configurable goal IDs fired on registration, quote request, and purchase
- Improvedcookieless tracking mode configuration (disableCookies toggle)
- Fixedrevenue reported in Matomo duplicated when confirmation page was refreshed
- Addedsupport for Matomo Cloud and self-hosted instances with configurable tracker URL
Demo
Test the full module before you buy
Buy a licence later and keep your settings.
- Your 30-day demo Test it on your own shop for 30 days from the first install.
- Ready demo shop Explore a ready demo shop in your browser.
- No registration No account, email or store domain needed.
By downloading, you accept the demo terms and privacy policy.
By opening this demo you accept the demo terms and the privacy policy.