The finish page is not the order
A Shopware checkout can complete while the customer is still at their bank. The order is placed, the finish page may never render, and a Storefront-only tag has nothing to send.
A Shopware 6 plugin that sends your funnel to the GA4 Measurement Protocol from your server, with the client_id and session_id of the browser attached. It hooks OrderPlacedSubscriber rather than a confirmation page, and it declares its cookies in the Shopware consent registry, so the cookie banner lists them like any other.
The problem
Shopware separates the Storefront from the order lifecycle. Tracking that lives only in the Storefront misses everything that happens after the customer leaves it.
A Shopware checkout can complete while the customer is still at their bank. The order is placed, the finish page may never render, and a Storefront-only tag has nothing to send.
Sending to the Measurement Protocol by hand produces events without client_id and session_id. GA4 opens a new session with no source, and your server-side traffic piles up in Unassigned.
A tracking cookie set behind consent but absent from the Shopware cookie registry is compliant in spirit and indefensible on paper: the banner does not list what it should.
The fix
The plugin subscribes to the order lifecycle, builds the GA4 event server-side, and forwards the browser identifiers. Its own cookies appear in the Shopware consent registry.
Shopware places the order, the event leaves the server. Whether the Storefront rendered the finish page is no longer part of the question.
The browser identifiers travel with the server event, so the purchase joins the session that produced it instead of opening an anonymous one.
The plugin decorates the Shopware cookie provider, so its cookies show up in the banner with the others, under the group they belong to.
Setup
A plugin uploaded in the Shopware administration, Extensions, then activated. Assets install themselves; the Storefront needs no template edit.
One key from your DataFirefly console identifies the site. It is the only thing your shop holds: no destination credential ever lives in your store.
Your GA4 settings go into the console, stored encrypted on our side. Rotating them later touches nothing in the shop.
The same connector feeds every other destination from the same events, so GA4 is a starting point rather than a silo. See the Shopware 6 connector in detail or Google Analytics 4 across all platforms.
Same connector
One installation, one key. The events you already send reach every destination you switch on.
Pricing
10,000 events a month free, no card. Paid plans from 39 €/month when your volume grows. Every destination is included in every plan: GA4 is never an add-on.
FAQ
Shopware 6.5 and 6.6. The plugin is uploaded in the administration under Extensions and activated; assets install themselves and the Storefront needs no template change.
Because they arrive without a session_id and open their own session, which has no source. The plugin reads client_id and session_id from the GA4 cookies in the Storefront and forwards both with the server event.
The event does not depend on it. The plugin subscribes to the order being placed, so the purchase is sent whether the Storefront rendered the confirmation or the customer closed the tab at their bank.
Yes. The plugin decorates Shopware’s cookie provider so its cookies appear in the consent registry and in the banner, grouped with the other statistics cookies. They are set behind consent, and now they are also declared.
Only if that tag also sends the purchase. The plugin splits the funnel: browser for engagement, server for the conversion. Disable the purchase event of any other GA4 integration, or let this one own the funnel.
Encrypted on our side, never in your Shopware configuration. The plugin holds only the connection key, which is per site and revocable from the console.
Install the plugin, paste one key, connect GA4. The next order placed while the customer is at their bank still reaches your reports.