Get your Shopware 6 tracking to 95%+ accuracy guaranteed in writing.
Shopware's storefront is built well, but most merchants stitch together 2–3 tracking plugins that fight each other. Events double-fire. Customer group pricing skews values. iOS purchases vanish. We replace the plugin chaos with one Shopware-native plugin + a server-side CAPI stack that's audit-clean and EU-residency-ready.
Free30 minutesNo obligation
Shopware 6 · what breaks
Common Shopware tracking issues
- 01
Plugin conflicts
Most stores have 2–3 trackers double-firing.
- 02
Customer group pricing breaks values
B2B group prices fire as B2C in ad reports.
- 03
Sales channel bleed
Cross-channel events without proper routing.
- 04
iOS / ITP gap
Browser-only tracking eats a meaningful share of conversions.
Shopware 6 · the fix
Outcomes — Shopware 6
Single canonical plugin
No double-fires.
Channel-aware routing
Per sales channel ad accounts.
Group-aware values
B2B + B2C kept separate.
Server-side CAPI 8+ EMQ
Dedup-clean.
Shopware 6 · architecture
How a Shopware order should reach the ad platforms
Shopware 6's event system and API make correct server-side tracking genuinely straightforward, which is unusual. Most problems on Shopware come from plugins rather than the platform.
- 1
Click identifiers captured at first touch
Click IDs are captured at landing and persisted in the session, then written to the order as a custom field, surviving sales channel and language switches.
- 2
The browser sends the fast, fragile copy
Storefront templates and the Shopware JavaScript plugin system fire the browsing and cart events. The finish page is the browser-side purchase hook and it is revisitable.
- 3
The order itself is the source of truth
The checkout.order.placed event fires server-side against a real order entity with a payment state. That is the truth.
- 4
A server container sends the authoritative event
A small plugin subscribes to the order placed event and posts to a GTM server container on your own subdomain, keyed on the Shopware order number.
- 5
Customer identity raises match quality
The order carries customer email, phone and billing address. Hashed in the plugin, these deliver match quality no storefront-only setup reaches.
Shopware 6 · events
The event set we build on Shopware, and where each one comes from
Shopware's sales channel concept means the same store code can serve several channels; every event needs to know which one it came from.
| Event | Fires when, on Shopware | Key parameters | Sent from |
|---|---|---|---|
| view_item | The product detail page renders | item_id, value, currency, event_id | Browser + server, deduped |
| add_to_cart | The line item add completes | item_id, quantity, value, currency, event_id | Browser + server, deduped |
| begin_checkout | The checkout confirm page loads | value, currency, num_items, event_id | Browser + server, deduped |
| purchase | checkout.order.placed fires with a paid payment state | order_id, value, currency, items[], hashed email/phone/name/address, event_id | Server authoritative |
| refund | The order transaction state changes to refunded | order_id, value, currency | Server only |
Shopware 6 · normal or broken
Shopware behaviors and faults
Sales channels and payment states account for most Shopware tracking confusion.
Normal, not a fault
Payment state changing after the order is placed
Order placed and payment paid are separate states in Shopware. Firing on the wrong one is the fault; the states themselves are correct.
Sales channels reporting separately
Each channel is its own context by design.
Ad platforms report more conversions than you have orders
Meta credits a 7-day click and 1-day view; Google credits on click date. Two platforms can each claim the same sale. Compare each one to your order records separately and never add them together.
Recent days always look worse than they finish
Conversions are credited back to the date of the click, so yesterday's return on ad spend is understated and will keep improving for several days. This is attribution working, not data arriving late.
Actually broken
Purchase fired on order placed regardless of payment state
Failed and pending payments are counted as sales.
The finish page firing again on refresh
Without an order guard, one order becomes several conversions.
Two tracking plugins active at once
The Shopware store has several and it is easy to end up with more than one enabled.
Shopware 6 · prove
How we prove the Shopware build is correct
The tag firing proves the tag fires. These prove the numbers are right.
Source of truth
Shopware order records
- The purchase confirmed firing only on a paid payment state.
- Finish page refresh confirmed to produce no second conversion.
- Sales channel dimension present on every event.
- Purchase count within a few percent of shopware order records for a fully closed week, matched on order ID rather than on totals.
- No order ID appearing twice in any platform's event log.
- Deduplication confirmed at every destination that supports it.
- Test and staff orders excluded, with the exclusion confirmed active rather than merely configured.
- The same reconciliation repeated 30 days later, because a setup that works once and then drifts is the harder failure to catch.
Shopware 6 · free audit
What we check in the free audit
- Plugin conflicts
- Customer group pricing breaks values
- Sales channel bleed
- iOS / ITP gap
Checked against
Shopware order records
Free30 minutesNo obligation
Shopware 6 · when not to buy
When a Shopware rebuild is not what you need
We would rather say this now than three weeks into an engagement.
- You run one sales channel at low volume with a single correctly configured plugin.
- You are mid-migration from Shopware 5. Rebuild on 6.
- You have no developer able to deploy a plugin.
Shopware 6 · what we deliver
Deliverables — Shopware 6
Shopware 6 plugin
Source + license
Server-side GTM
EU residency option
Meta CAPI + Google EC + TikTok
Full coverage
QA + Notion runbook
Plus 30-day support
Written guarantee
95%+ tracking accuracy
Measured against Shopware order records. Miss it and we keep working at no cost.
Pricing
Pick the package that fits your ad spend
Browser-side starter
$400One-time fee · lifetime ownership
Foundation pixel install for your Shopware store. Honest disclosure: this is a starting point only. If you spend $1K+/month on paid media you should be on the 1st-party server-side tier — rather than quote you a recovery percentage, we'll show you how to measure your own gap: compare what the platforms reported against the orders in your backend for the same week. That ratio is the entire argument, and it's yours to check — see trackingconsulting.com/measurement-accuracy-methodology.
- One-time fee · zero monthly · zero SaaS lock-in
- Shopware dataLayer (clean spec)
- GA4 e-commerce events
- Meta Pixel · Google Ads tag
- TikTok Pixel · Microsoft UET
- Consent Mode v2 banner integration
- QA test orders + 7-day support
- No CAPI · no iOS recovery
1st-party server-side
Recommended$800One-time fee · most popular
The done-for-you package every Shopware store running paid ads should start with. We build the entire 1st-party server-side stack on your subdomain — Meta, Google, TikTok, Microsoft, LinkedIn all fed from the server. Recovers the conversions iOS, Safari ITP, ad blockers and cookie deprecation hide today. You don't lift a finger. Built in 2–4 days · accurate data in 7 days.
- One-time fee · save vs SaaS subscriptions over 5 years
- Fully recovered + built in 2–4 days · accurate data in 7 days
- Everything in browser-side starter
- 1st-party server-side GTM (your subdomain)
- Meta CAPI · full advanced matching · 8+ EMQ
- Google Enhanced Conversions (Web + Leads)
- TikTok Events API · Microsoft UET server
- Deterministic browser ↔ server deduplication
- Live EMQ verification + screenshots
- Notion runbook + 30-day support · zero recurring
Full 1st-party stack
$1,800One-time fee · lifetime ownership
Every paid-media channel running 1st-party server-side, end-to-end. For Shopware brands spending $30K+/month who can no longer afford attribution leaks. Pay once. Own everything. Includes Pinterest + Snap + Reddit + LinkedIn CAPI, Klaviyo identity stitching, BigQuery + Looker Studio.
- One-time fee · save 6-figure SaaS subscriptions over 5 years
- Everything in 1st-party server-side tier
- Pinterest · Snapchat · Reddit · LinkedIn · X CAPIs
- Klaviyo identity stitching (if used)
- BigQuery export (server logs + GA4)
- Looker Studio attribution dashboard (branded)
- Multi-region / multi-currency / EU residency
- GDPR-audit-ready Consent Mode v2 wiring
- 60-day support · optional retainer · no lock-in
FAQ
Shopware 6 questions, answered
Yes. We deploy to EU regions to keep CAPI/EC traffic in-EU for GDPR.
More on Shopware 6
- GuideBrowser vs Server Tracking: Which Events Belong Where
- GuideWhat an Ecommerce Tracking Rebuild Actually Involves (Start to Finish)
- Free toolFree Shopware audit
- Shopware server-sideServer-side tracking for Shopware
- Shopware + GoogleGoogle Ads and GA4 tracking for Shopware
- Shopware + Meta CAPIMeta Conversions API setup for Shopware
