How enhanced ecommerce works
Enhanced ecommerce is the name Universal Analytics gave to its detailed shopping reports — the version that went beyond a single transaction hit and recorded product impressions, product clicks, detail views, basket activity, checkout steps, internal promotions and refunds. It was implemented either through the analytics library directly or, far more often, by pushing structured product data into a data layer and letting Google Tag Manager read it.
Universal Analytics has been retired, so enhanced ecommerce is no longer a live product you can switch on. GA4 covers the same ground with its own recommended event names and a single items array, but the event names, the field names and the report structure are all different. Nothing carries across on its own.
Why enhanced ecommerce still matters
It matters because so many shops are still running its leftovers. Themes, plugins and old tag containers built before the migration keep pushing enhanced-ecommerce-shaped data into the page, and where nobody rewired the tags, that data is being produced and thrown away every day.
The vocabulary survives in conversation too. Agencies, developers and briefs still say “enhanced ecommerce” when they mean product-level tracking in general. Knowing what the phrase originally referred to stops you paying to rebuild something you already have, and lets you challenge a report that quietly stops at the retirement date.
Where enhanced ecommerce goes wrong
The first problem is a proposal offering to set it up today. Anyone quoting for enhanced ecommerce as a current implementation is either using the phrase loosely or has not kept up, and it is entirely fair to ask which before signing anything.
The second is a half-finished migration: a data layer still speaking the old dialect while GA4 tags expect the new one. The symptoms are events arriving with no items attached, revenue recorded without products, or purchases counted with an empty basket. It looks like a tracking bug and it is really a translation problem, which is why developers and analysts often blame each other for weeks.
What to do about it
Open your site’s data layer on a product page and on a confirmation page and read what is actually being pushed. If it is the old structure, decide whether to rewrite it at source or map it inside Google Tag Manager. Mapping is faster and rewriting is cleaner, and on a shop that will live for years the clean route usually earns its cost back.
Then rebuild the reports rather than trying to recreate the old screens one for one. GA4 groups things differently, and forcing it to imitate a retired product costs more than learning the new layout. If historical comparison genuinely matters to you, export what you still hold from the old property while you can, because once that data is removed no configuration will bring it back. Treat the whole exercise as ordinary ecommerce tracking maintenance, sitting on top of a properly planned GA4 setup.