# Technische Probleme

# Shopify Netto-Umsatz minimal zu niedrig getrackt

### <span class="mw-headline" id="bkmrk-warum-dein-getrackte-1">Warum dein getrackter Umsatz minimal von deinem echten Nettoumsatz abweichen kann</span>

**Wann ist das für dich relevant?**

Nur wenn du Shopify nutzt und Produkte mit unterschiedlichen Mehrwertsteuersätzen verkaufst — zum Beispiel Lebensmittel (7%) zusammen mit Kochzubehör (19%), oder Bücher (7%) zusammen mit Schreibwaren (19%).

In diesem Fall kann es zu einer Abweichung von ca. ±0,5–2% vom echten Nettowert kommen, weil wir mit einem Durchschnittssteuersatz rechnen müssen.

Für alle anderen: exakt null Abweichung.

---

Das Problem: Shopify verschweigt uns die Steuer

Shopify stellt uns im Tracking-Pixel bestimmte Datenfelder zur Verfügung. Laut offizieller Shopify-Dokumentation sollte das Feld `subtotalPrice` den Warenwert vor Steuern und vor Versand enthalten — also genau das was wir brauchen. In der Praxis enthält es bei vielen Shops die Mehrwertsteuer trotzdem mit drin. Das ist eine bekannte, offene Lücke in Shopify — ohne Behebungsdatum.

Was uns Shopify zusätzlich nicht gibt: die Steuer aufgeteilt nach Produkten oder separat für Versandkosten. Wir bekommen nur eine einzige Zahl — die Gesamtsteuer auf alles zusammen.

---

Unsere Lösung

Wir berechnen den Nettowert selbst — so genau wie mit den verfügbaren Daten möglich:

```
Steuersatz    = Gesamtsteuer ÷ (Gesamtumsatz − Gesamtsteuer)
Versandsteuer = Versandkosten × Steuersatz
Produktsteuer = Gesamtsteuer − Versandsteuer
Nettoumsatz   = Gesamtumsatz − Versandkosten − Produktsteuer
```


Rechenbeispiel (Shop mit gemischten Steuersätzen):

Ein Kunde kauft:

- 1x Olivenöl (7% MwSt.) — 9,99 € brutto
- 1x Pfanne (19% MwSt.) — 49,99 € brutto
- Versand — 4,90 € brutto

Was Shopify uns gibt:

<table class="wikitable" id="bkmrk-%C2%A0-%C2%A0-gesamtumsatz-%28br"><tbody><tr><th> </th><th> </th></tr><tr><td>Gesamtumsatz (brutto inkl. Versand)</td><td>64,88 €</td></tr><tr><td>Versandkosten (brutto)</td><td>4,90 €</td></tr><tr><td>Gesamtsteuer (Blackbox — alles zusammen)</td><td>9,41 €</td></tr></tbody></table>

Was wir daraus berechnen:

<table class="wikitable" id="bkmrk-%C2%A0-%C2%A0-steuersatz-%28durc"><tbody><tr><th> </th><th> </th></tr><tr><td>Steuersatz (Durchschnitt)</td><td>9,41 ÷ (64,88 − 9,41) = 16,97%</td></tr><tr><td>Versandsteuer</td><td>4,90 × 16,97% = 0,83 €</td></tr><tr><td>Produktsteuer</td><td>9,41 − 0,83 = 8,58 €</td></tr><tr><td>Nettoumsatz (getrackt)</td><td>64,88 − 4,90 − 8,58 = 51,40 €</td></tr></tbody></table>

Zum Vergleich — der echte Nettowert:

<table class="wikitable" id="bkmrk-%C2%A0-%C2%A0-oliven%C3%B6l-netto-9"><tbody><tr><th> </th><th> </th></tr><tr><td>Olivenöl netto</td><td>9,99 ÷ 1,07 = 9,34 €</td></tr><tr><td>Pfanne netto</td><td>49,99 ÷ 1,19 = 42,01 €</td></tr><tr><td>Echter Nettoumsatz</td><td>51,35 €</td></tr><tr><td>Abweichung</td><td>0,05 € = ~0,1%</td></tr></tbody></table>

In diesem Beispiel ist die Abweichung minimal. Je extremer das Verhältnis zwischen 7%- und 19%-Produkten, desto größer — bleibt aber stets unter 2%.

# Shopware häufige Probleme

### <span class="mw-headline" id="bkmrk-falls-leerzeichen-im-1">Falls Leerzeichen im Produktnamen zu Verdopplung der Produktnamen im Tracking führen</span>

Im Tracking wird immer der im Backend vergebene Name - "Artikelname" verwendet.

**Shopware 5:**

Ich könnte mir vorstellen, dass dieser Teil hier für Probleme sorgt:

```
{$productName = $sArticle.articleName}
{if $sArticle.additionaltext}
    {$productName = $productName|cat:' '|cat:$sArticle.additionaltext}
{/if}
```

befindet sich in custom/plugins/DtgsGoogleTagManager/Resources/views/frontend/plugins/TagManager/buy.tpl

Wenn der Additionaltext befüllt ist, wird dieser mit einem Leerzeichen dazwischen angehängt. Bitte stellt sicher, dass der Additionaltext nicht mit Sonder- oder Leerzeichen befüllt ist, sonst kommt es zu diesen Problemen. Ihr könnt die Datei natürlich auch in euer Theme übernehmen und dort den Teil komplett rauslöschen.

### <span class="mw-headline" id="bkmrk-keine-daten-bei-relo-1">keine Daten bei Reload oder Add To Cart</span>

hier in unserem Demoshop:

[https://ga4dev.codiverse.de/bekleidung/herren/9/artikel-mit-auswahl-konfigurator](https://ga4dev.codiverse.de/bekleidung/herren/9/artikel-mit-auswahl-konfigurator)

Sind view\_item und add\_to\_cart auch nach Reload noch korrekt befüllt. Ich nehme an, dass bei euch im Shop das Theme beim AJAX Call nicht korrekt unsere Template-Datei zieht. Wichtig ist vor allem die Datei custom/plugins/DtgsGoogleTagManager/Resources/views/frontend/plugins/TagManager/buy.tpl

Diese wird aktuell scheinbar nicht korrekt geladen. Man kann es leicht sehen, indem man per STRG+F im Quellcode nach den hidden-Fields sucht, die es einbindet:

dtgsGtmArticleName

dtgsGtmArticlePrice

usw.

Die fehlen aktuell komplett. Wenn ihr die Datei einbindet, ist das auf jeden Fall gefixt.

### <span id="bkmrk--2"></span><span class="mw-headline" id="bkmrk-kein-%E2%80%9Cremove_from_ca-1">Kein “remove\_from\_cart” Event in der Datalayer, wie eigentlich in der Doku von Codiverse gezeigt</span>

Das Codiverse Plugin baut eigentlich über die Datei frontend/checkout/items/product.tpl, genauer gesagt den Theme Block "frontend\_checkout\_cart\_item\_delete\_article" die Hidden Fields dtgsGtmArticleNumber, dtgsGtmArticleName, dtgsGtmArticlePrice usw. ein - siehe Datei: custom/plugins/DtgsGoogleTagManager/Resources/views/frontend/plugins/TagManager/checkout\_product.tpl

Dies scheint im Custom Theme des Kunden nicht zu passieren, daher wird kein Remove\_from\_cart ausgelöst.

Entweder den Block im Theme bereitstellen oder - weil ihr evtl. das Theme schon stark customized habt, einfach die hidden Fields aus der genannten Datei selbst einbauen, dann sollte es klappen.

### <span id="bkmrk--4"></span><span class="mw-headline" id="bkmrk-ladezeit-ist-langsam-1">Ladezeit ist langsam und wird durch “Google Tagmanager” und andere Google Tools ausgebremst (laut pagespeed.web.dev oder einem anderen Tool)</span>

Vorab: Keine Sorge 🙂 Kein Problem.

Shoplytics® ist auf die ladezeit-optimierte Einbindung des gesamten Trackingsystems ausgelegt.

```
Hinweis:

Die folgende Optimierung ist nur für Shopware 6 möglich…
```

  
—--------

**VORSICHT VORAB: Nachdem du die folgenden Änderungen umsetzt, musst du bitte unbedingt, dringend und direkt bescheid geben bei technik@shoplytics.de**

**Ohne die folgende Email an unser Tech-Team wird das Tracking ansonsten komplett deaktiviert bleiben…..**

Schreib einfach folgenden Text in der Email:

Betreff: Shopware Ladezeit Optimierung aktiviert

Text der Mail:

Hi shoplytics® Tech-Team,

bitte nehmt alle Änderungen in Shoplytics vor, mit der die Ladezeit-Optimierung in Shopware unterstützt wird.

Danke

Florian

### <span id="bkmrk--6"></span><span class="mw-headline" id="bkmrk-kein-preis-%28und-kein-1">Kein Preis (und keine Produkt ID) bei Add to Cart</span>

[https://codiverse.freshdesk.com/support/solutions/articles/44002508282--shopware-6-im-event-add-to-cart-auf-der-detailseite-sind-die-%C3%BCbergebenen-daten-unvollst%C3%A4ndig](https://codiverse.freshdesk.com/support/solutions/articles/44002508282--shopware-6-im-event-add-to-cart-auf-der-detailseite-sind-die-%C3%BCbergebenen-daten-unvollst%C3%A4ndig)

# [Shopify] Fehler "ERR_NAME_NOT_RESOLVED" in der Browser-Konsole

Wenn du Shoplytics auf Shopify verwendest und in der Browserkonsole den Fehler „ERR\_NAME\_NOT\_RESOLVED“ mit der Domain „stream.my-domain.com“ siehst...

  
Dann ist das kein kritischer Fehler, auch wenn es in der Konsole danach klingt. Du kannst dies eher als Warnung verstehen: „Shoplytics verwendet kein First-Party-Tracking, aber Third-Party-Tracking ist aktiv.“  
Der Shoplytics-Webpixel den du in Shopify hinterlegt hast, prüft automatisch, ob das First-Party-Tracking verfügbar ist. Im negativen Fall, entsteht dieser Fehler und der Webpixel nutzt diesen Fehler als Signal: "Third-Party-Tracking muss genutzt werden."

  
Du kannst es entweder so belassen, wie es ist, oder du aktivierst das [First-Party-Tracking](https://docs.shoplytics.de/books/installation/page/first-party-tracking). (Das entfernt den Fehler aus der Browserkonsole und optimiert zudem die Datenerfassung.)