Piwik showing more orders than placed

I have limited the date range to: 17th - 18th May and checked the ecommerce overview. Piwik states 58 orders on WooCommerce.

WooCommerce analytics says 47 orders, and even GA4 says 47 orders.

I switched to the “Orders List” section in Piwik and even that is different, it shows “53 items”. How is it stating 58 orders but doesn’t even have 58 orders in the orders list.

My implementation is adding the Piwik container code via GTM, and I’m also using the Piwik WordPress plugin too.

Any suggestions on what to check as to why I am seeing higher values than actual?

Hi wharfdale!

Have you checked whether there are any duplicated order IDs in the Piwik PRO ecommerce reporting section?


I’ve checked the Order IDs from the Ecommerce Reports - Order List and none are duplicated.

*Update: I compared the IDs from Piwik with those from WooCommerce, one of them was an order placed on 14th May and yet my date range is set to show me only those from 17th - 18th. I checked the order it was placed and paid for on 14th, so it wasn’t as if it started on 14th but was only just paid on 17th for example.

Checking the others now too, but for starters, why is the above happening?

*I’ve found 5 orders from the Piwik order list which were dated before 17th, so none of these should be on that list considering the date range I have selected.

Hi wharfdale!

The reporting side looks fine - as you can see, the order date is 18/05/2023. This date is an exact timestamp of the order event.

It looks like a visitor is revisiting the order confirmation page after some time (a couple of days) which causes the ecommerce order code to be executed. We’ll look into whether we can limit this to fire only on first view of the order confirmation page.

Yeah this is definetly needed, people re-visiting order confirmation pages are not that uncommon, so this is messing with everyones reporting I suspect. Duplicate visits, duplicate/double revenue etc.

Unless you have an ETA on this already, is there anything I can for now? I can’t really rely on any of the reporting whilst I know the same order is being counted more than once, our revenue (and other) reporting is now off.

Hi wharfdale!

I’ll keep the thread updated on this.

In the meantime - from what I understand, you are using the automatic ecommerce tracking capabilities of the WP plugin. The Piwik PRO WordPress plugin should add the Piwik PRO container code, so there should be no need to add it via GTM too.

Is there a reason for adding it twice? This approach will most likely result in errors.


Agreed, I realised the plugin is adding the container as well as GTM. However our preference would be adding the container code via GTM as we have other tags within there such as “Do not enable this tag if GDPR has not been accepted”. Whilst we know Piwik has it’s own tag manager and also compliance pop-ups etc. We’ve already got everything set up on GTM, so using that is easier.

So, my plan is: turn off the container from the plugin settings:

Leave the container to be added via GTM instead. Is this still a suitable method or do you see any major issues with this? We’re using the Custom HTML tag as normal.


Hi wharfdale!

The Piwik PRO WP plugin functionalities won’t work if you decide to disable the container.

Ok I will disable the GTM tag and enable container via the plugin. I will look into using the Piwik Tag Manager for when track or not to track.

Based on an update in version 16.28.0 (16.28.0 - Piwik PRO) this issue shouldn’t be happening if the Order ID is the same, which it is if all you’ve done is refresh/re-visited the page.

Ecommerce orders with the same order ID are reported once per session. If you track a few orders with the same order ID in a session, only the first one will be visible in reports.

Or is it, even if the order ID is the same, if you visit off a new session it’s recorded as a new order again? Despite the same order ID as before.

Hi wharfdale!

The order IDs are indeed deduplicated in a session context. What I have understood from your screenshots is that the user visited the confirmation page after a couple of days (the Piwik PRO timestamp points to 18/05/2023). This means that these were 2 different sessions.

Whilst I wait to see if you’re able to find a solution to this. An idea I had from my side - is there an appropriate hook/filter in the WordPress plugin which I can use to do my own check and prevent the data being sent to Piwik?

As the order received page is loaded, send the event, add meta data to the order such as ‘conversion sent = true’ then all future loads of that same page, it will do a quick check if that meta exists, if so, don’t run the Piwik conversion purchase event etc.

I have no problem doing this development, I just want to see if you’re aware of an appropriate hook/filter to use for this (if any)?