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?
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.
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:
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)?
So using the piwik tag manager. If somebody reloads the thank you page after a couple of days a ecommerce order will be counted twice despite there being a unique transaction id/order id sent in according to your doc=
If somebody reloads the thank you page after a couple of days a ecommerce order will be counted twice
Depends on what triggers the order event. Some websites I have worked with already handle this and e.g. the dataLayer order event is not fired in case the thank you page is revisited/refreshed.
despite there being a unique transaction id/order id sent in according to your doc=
Piwik PRO doesn’t deduplicate the order ID “globally” in the Analytics module. It deduplicates it on a session level. So in case a second order event with the same order ID is registered in a single session, it will get deduplicated.
Uniqueness of the order ID
To improve report consistency and readability, we’ve also made changes to the Order ID. Now, you can only track the same Order ID once during a single session. If you try to track multiple orders with the same ID, it’s considered a problem with the setup and won’t be included in the report. We treat this as a broken event.