* Für Shopware 6.7.x.x kompiliert
* Fehler behoben, durch den die QuickView die Kategorien um eine Ebene verschoben meldete (`item_category2` fehlte, tiefere Ebenen rückten auf) und `item_variant` ein nachgestelltes Leerzeichen enthielt. Jetzt werden dieselben Kategorien und dieselbe Variante wie auf der Produktdetailseite gemeldet (G4SW6-131)
* Fehler behoben, durch den die Produktliste nach dem Filtern, Sortieren oder einem Seitenwechsel in `view_item_list` um eine Ebene verschobene Kategorien und `item_variant` mit einem nachgestellten Leerzeichen meldete (G4SW6-131)
* Fehler behoben, durch den `item_list_name` in Kategorielisten unter Shopware 6.7 noch den SEO-Titel der Seite statt des Kategorienamens enthielt. Der Kategoriename wird jetzt aus der Kategorie der Seite gelesen; der Seitentitel wird nie als Listenname verwendet (G4SW6-133)
* Fehler behoben, durch den `select_item` aus den Suchvorschlägen `price` als Zeichenfolge und immer als Bruttopreis übermittelte. Der Preis ist jetzt eine Zahl und berücksichtigt `taxConfiguration` (Netto/Brutto) sowie die erweiterten Preise – wie in der Produktliste und in `view_item`. `item_variant` enthält kein nachgestelltes Leerzeichen mehr (G4SW6-140)
* Fehler behoben, durch den Warenkorbrabatte (Aktionen, z. B. ein Kundengruppenrabatt) nur in `purchase` auf die Artikel verteilt wurden. `view_cart`, `begin_checkout`, `add_shipping_info` und `add_payment_info` melden jetzt den Preis nach Abzug des Rabatts, `items[].discount` sowie die Aktion als `coupon` des Artikels. Damit entspricht die Summe aus `price × quantity` in allen Checkout-Events dem Wert von `value` (G4SW6-122)
* Parameter `search_type` zum Event `search` hinzugefügt: `suggest` für Suchvorschläge und `results` für die Suchergebnisseite. GTM-Setups können nach `search_type = results` filtern, um nur abgeschickte Suchen zu zählen (G4SW6-124)
* Fehler behoben, durch den die Suchvorschläge für jeden unvollständigen Suchbegriff ein `search`-Event sendeten und denselben Begriff wiederholt meldeten. Das Event wird jetzt nach einer Sekunde ohne Eingabe und nur einmal pro Suchbegriff und Seitenaufruf gesendet (G4SW6-124)
* Fehler behoben, durch den `item_variant` in Checkout-Events und `purchase` leer war, wenn das Produkt nicht im Browser gespeichert war (z. B. bei einem nach der Anmeldung auf einem anderen Gerät wiederhergestellten Warenkorb). Die Variante wird jetzt zusammen mit dem Produkt auf der Warenkorb-, Bestätigungs- und Abschlussseite geladen (G4SW6-130)
* Fehler behoben, durch den bei `remove_from_cart` auf der Warenkorbseite `/checkout/cart` `item_variant` fehlte und `item_list_name: "checkout"` gemeldet wurde. Jetzt werden dieselben Artikeldaten wie im Offcanvas-Warenkorb gemeldet, einschließlich der Liste, aus der das Produkt hinzugefügt wurde (G4SW6-130)
* Fehler behoben, durch den die Platzhalter `product` und `checkout` als `item_list_id` / `item_list_name` gesendet wurden. Sie werden jetzt in allen Events weggelassen; echte Listen (Kategorien, Suchergebnisse, Merkliste) bleiben erhalten (G4SW6-130)
* Fehler behoben, durch den Lieferaktionen (z. B. ein Versandrabattcode) in `view_cart`, `begin_checkout`, `add_shipping_info`, `add_payment_info` und `purchase` in allen Kanälen (GA4, Google Ads, Meta, Microsoft Ads, Pinterest, TikTok, OpenAI) als zusätzliche Artikel ohne `item_id` gesendet wurden. Aktionspositionen werden nie als Artikel gemeldet; eine Lieferaktion reduziert nur `shipping` (G4SW6-141)
* Fehler behoben, durch den `view_item` und `view_item_list` statt des Preises für die gemeldete Menge die günstigste Staffel der erweiterten (regelbasierten) Preise meldeten. `items[].price` ist jetzt der zu `items[].quantity` gehörende Stückpreis und wird wie im Warenkorb ausgewählt (G4SW6-135)
* Fehler behoben, durch den `select_item` und `add_to_wishlist` die günstigste Preisstaffel meldeten. Sie melden jetzt den Preis für ein Stück
* Fehler behoben, durch den Mengen oberhalb der letzten Preisstaffel im Data Layer nicht die letzte, nach oben offene Staffel verwendeten
* Fehler behoben, durch den die ursprüngliche Produktliste und die per AJAX gerenderte Liste (Filter, Seitenwechsel) für dasselbe Produkt unterschiedliche Preise meldeten. Die günstigste Preisstaffel bleibt als Information in `extra.cheapestAdvancedPrice` verfügbar
* Fehler behoben, durch den `view_item` die Menge 1 meldete, obwohl für das Produkt eine Mindestabnahmemenge gilt. Die Option `Use minimum purchase quantity in view_item` (standardmäßig aktiviert) meldet auf der Produktdetailseite und in der QuickView `quantity = minPurchase` und `value = price × quantity` (G4SW6-126)
* Fehler behoben, durch den `item_category` die Navigationskategorie des Verkaufskanals enthielt. Jetzt wird die erste Ebene darunter als `item_category` gemeldet (G4SW6-132)
* Fehler behoben, durch den beim Kategorie-Fallback Kategorien aus anderen Kategoriebäumen (z. B. aus einem anderen Verkaufskanal) verwendet wurden. Es werden nur Kategorien unterhalb der Navigationskategorie des aktuellen Verkaufskanals berücksichtigt. Eine Hauptkategorie außerhalb dieses Baums wird ignoriert; Produkte ohne Kategorie in diesem Baum erhalten kein `item_category`
* Fehler behoben, durch den `coupon` in `begin_checkout` und `purchase` statt des eingelösten Gutscheincodes den Namen der Aktion enthielt. Jetzt wird der Code gemeldet; automatische Aktionen ohne Code behalten ihren Namen (G4SW6-115)
* Fehler behoben, durch den `coupon` bei Aktionen mit dem Geltungsbereich „Versand“ fehlte. Deren Codes werden aus den Warenkorbaktionen gelesen
* Fehler behoben, durch den die per AJAX gerenderte Produktliste (Filter, Seitenwechsel) statt der erweiterten Preise des aktuellen Kontexts den Preis aus dem Feld „Allgemein“ meldete (DISCO-335989)
* Fehler behoben, durch den die per AJAX gerenderte Produktliste trotz `taxConfiguration` = Brutto den Nettopreis meldete und die QuickView immer den Nettopreis meldete
* Fehler behoben, durch den alle Bestellungen `Direct / Direct` zugeordnet wurden, wenn die Landingpage mit UTM-Parametern aus einem Cache (Shopware-HTTP-Cache, Varnish, CDN) ausgeliefert wurde. Die Herkunft wurde nur auf dem Server erkannt, sodass nur der Besucher, der den Cache-Miss auslöste, korrekt zugeordnet wurde
* Clientseitige Erfassung der UTM- und Klickparameter hinzugefügt (First-Party-Cookie `disco_ga4_traffic_origin`). Der Server verwendet diese beim Checkout, wenn er die Parameter selbst nie gesehen hat. Die Erkennungslogik wird gemeinsam genutzt; die Erfassung enthält keine personenbezogenen Daten und ihre Lebensdauer richtet sich nach der Speicherdauer der Plugin-Daten
* Konfiguration `Capture tracking parameters in the browser` (UTM Parameter Tracking) hinzugefügt; standardmäßig aktiviert
* Fehler behoben, durch den `Direct / Direct` bei der ersten Anfrage gespeichert wurde und jede später erkannte Herkunft derselben Sitzung blockierte. Der Platzhalter wird jetzt ersetzt, sobald eine tatsächliche Quelle erkannt wird (z. B. ein Anzeigenklick nach einem direkten Besuch)
* Fehler behoben, durch den ein neuer externer Referrer eine zuvor gespeicherte Herkunft derselben Sitzung nicht überschrieb
* Fehler behoben, durch den Parameter von Rakuten Advertising (`ranMID`, `ranEAID`, `ranSiteID`) nie erkannt wurden, weil die Namen der Query-Parameter in Kleinbuchstaben normalisiert werden
* Fehler behoben, durch den der HTTP-Cache für UTM-Anfragen umgangen wurde, obwohl die Traffic-Quelle bereits in der Sitzung gespeichert war. In diesem Fall wird der Cache jetzt nicht mehr umgangen
* Fehler behoben, durch den der HTTP-Cache umgangen wurde, bevor der Verkaufskanal aufgelöst war
* Fehler behoben, durch den der HTTP-Cache trotz deaktivierter UTM-Parameter-Verfolgung umgangen wurde
* Fehler behoben, durch den die Sitzung bereits vor der Prüfung der Einstellung zur UTM-Parameter-Verfolgung gestartet wurde. Dadurch war die Antwort selbst bei deaktivierter Verfolgung nicht cachebar
* Konfiguration `Bypass HTTP cache for UTM requests` (UTM Parameter Tracking) hinzugefügt. Shops, die von Lastspitzen durch automatisierte Link-Scanner betroffen sind, können UTM-URLs damit wieder aus dem HTTP-Cache ausliefern
* Fehler behoben, durch den Rabatte auf Bestellebene (Aktionen, Gutscheine) nicht in den Artikelpreisen des `purchase`-Events berücksichtigt wurden, wie es Google Analytics 4 verlangt (`price` = Preis nach dem Artikelrabatt, `value` = Summe aus `price * quantity`). Für die Verteilung wird die `composition`-Payload der Shopware-Aktion verwendet; Gutscheine von Drittanbietern werden proportional zu den Positionssummen verteilt
* Fehler behoben, durch den ein separater Bestellrabatt vom `purchase`-Wert abgezogen wurde. Das übergeordnete Feld `discount` des `purchase`-Events enthält jetzt nur noch Google-Ads-Daten
* Fehler behoben, durch den sich die Artikelpreise bei Warenkörben mit mehreren Steuersätzen im `purchase`-Event nicht zum richtigen `value` summierten. Jeder Artikel wird jetzt mit seinem eigenen Steuersatz umgerechnet
* Fehler behoben, durch den `items[].index` im `purchase`-Event Lücken aufwies. Die Indizes lauten jetzt `0, 1, 2, ...`
* Fehler behoben, durch den die Platzhalterlisten `product` und `checkout` als `item_list_id` / `item_list_name` gesendet wurden
* Fehler behoben, durch den der Data Layer bereits mehrere Pushes vor dem `purchase`-Event geleert wurde. Er wird jetzt unmittelbar vor dem Event geleert, sodass Google und die anderen Kanäle keine leeren Werte auslesen können
* Fehler behoben, durch den `customer_type` / `new_customer` bei der ersten Bestellung eines Gastkunden den Wert `returning` hatte. Da Gastkunden vor dem Rendern der Abschlussseite abgemeldet werden, wird die Bestellhistorie jetzt aus der Bestellung statt aus dem Local Storage gelesen
* EasyCoupon-Positionen und Lieferrabatte werden nicht auf die Artikel verteilt
* Fehler behoben, durch den `select_item` ohne `ecommerce.currency` gesendet wurde
* Fehler behoben, durch den `select_item`, `add_to_wishlist`, `view_cart`, `begin_checkout`, `add_shipping_info`, `add_payment_info` und `add_to_cart` (Warenkorbseite) das GA4-E-Commerce-Objekt auch bei deaktiviertem GA4 sendeten
* Fehler bei Suchvorschlägen behoben: Ein Backslash oder Apostroph im Suchbegriff oder Produktnamen beschädigte das Skript oder wurde in `item_name` als `'` angezeigt. Die Werte werden jetzt für den JavaScript-Kontext JSON-kodiert
* Fehler bei Suchvorschlägen behoben: `parentId` war immer leer und `quantity` fehlte (der Wert für Microsoft Ads war `NaN`)
* Fehler behoben, durch den Suchbegriff, Kategorie, Verkaufskanal sowie die Namen der Versand- und Zahlungsarten nicht für den JavaScript-Kontext kodiert wurden
* Fehler bei Suchvorschlägen behoben: Beim Klick auf einen Link ohne Preis (z. B. einen Kategorie- oder Suchbegriffslink) trat ein `TypeError` auf. Preise mit Währungssymbolen oder lokalen Trennzeichen (`CHF 18.–`, `1'234.50`, `18,00 €`) werden jetzt verarbeitet; statt `NaN` wird `price` weggelassen
* Fehler behoben, durch den Änderungen der Zahlungs- oder Versandart bei angepasstem Markup (z. B. gespeicherten Saferpay-Karten) einen `TypeError` auslösten. Der Name wird jetzt ersatzweise aus dem Label-Text gelesen; `add_payment_info` / `add_shipping_info` werden weiterhin gesendet
* Fehler behoben, durch den `remove_from_cart` nicht gesendet wurde, wenn die Warenkorbposition keine Klasse `.line-item-row` hatte (z. B. bei Shogun-basierten Themes). Als Fallback wird `.line-item` verwendet und die Menge aus den ausgeblendeten Positionsdaten gelesen
* Fehler behoben, durch den `view_cart` nach jedem Neuladen des Offcanvas-Warenkorbs (Mengenänderung, Entfernen) gesendet wurde. Das Event wird jetzt einmal pro Öffnen des Offcanvas-Warenkorbs gesendet
* Fehler behoben, durch den `item_list_name` in Kategorielisten statt des Kategorienamens den Seitentitel (SEO-Titel) verwendete. Der Seitentitel dient jetzt nur noch als Fallback
* Fehler behoben, durch den der Consent Mode `ad_storage`, `ad_user_data` und `ad_personalization` gewährte, wenn nur Analytics akzeptiert wurde. Die Einwilligungen für Analytics und Werbung sind jetzt getrennt; jedes Update sendet ausdrücklich `granted` oder `denied`, und ein Widerruf wird ohne Neuladen weitergegeben
* Fehler bei der Einwilligung für Microsoft UET behoben: Der Standardwert ist jetzt `denied`, und jede Änderung der Einwilligung sendet ein Update mit `granted` oder `denied`
* Fehler behoben, durch den `purchase` über HTTP nicht gesendet wurde, wenn `crypto.subtle` nicht verfügbar war. `purchase` wird jetzt ohne die gehashten Felder gesendet
* Fehler behoben, durch den `add_to_cart` / `remove_from_cart` einen `TypeError` auslösten, wenn keine Artikeldaten verfügbar waren, z. B. bei Mengenänderungen auf der Warenkorbseite
* Fehler bei `taxConfiguration = netto` (Bruttopreise im Shop) behoben: `value` entsprach nicht der Summe aus `price × quantity`, und `add_to_cart` meldete bei größeren Mengen einen zu niedrigen Wert. Der Nettoartikelpreis wird jetzt aus der Nettopositionssumme abgeleitet; GA4-Artikelpreise behalten bis zu sechs Nachkommastellen
* Fehler behoben, durch den der Ads-Wert bei Berechnung aus einem gerundeten Nettopreis um einen oder mehrere Cent abwich. Brutto-Ads-Werte verwenden jetzt direkt den Bruttopreis, Netto-Ads-Werte die Nettopositionssumme
* Kompiliert für Shopware 6.7.x.x
* Problem behoben, bei dem die Rabattberechnung von der Reihenfolge der Artikel abhing
* Problem behoben, bei dem die Versandsteuer inkonsistent war
* Problem behoben, bei dem Netto- und Bruttopreis bei Checkout-Ereignissen inkonsistent waren (add_to_cart und begin_checkout nicht identisch)
* Problem mit TrafficOriginCacheSubscriber behoben: Cache-Umgehung (privat/kein Shop) auch für externe Referrer ohne UTM, z. B. organische Google-Suche
* Problem behoben: Bei taxConfiguration = gross enthielt der GA4-Wert die Versandkosten;
* Problem behoben: Anzeigenwerte waren zu niedrig, wenn ein Warenkorb-Rabatt angewendet wurde
* Problem behoben: "TrafficOriginCacheSubscriber" liest "utmTracking" ohne Vertriebskanal-ID, während "FrontendSubscriber" es mit einer solchen liest - das Verhalten variiert je nach Vertriebskanal
* Problem behoben: HTTP-Cache verschleiert die Quelle (UTM-/Klick-IDs)
* Problem behoben: Bei UTM-Tracking können Wiederholungsbesuche von Zahlungsanbietern (Wallee, HeyLight) die Kampagnenquelle überschreiben
* sendPurchaseAdditionalData: Migration für bestehende Installationen und Empfehlungen für GTM-Tags mit "additional" hinzugefügt
* Problem behoben, bei dem die Produktzuordnung in der Fallback-Vorlage fehlte (ga4Product in disco_hidden_line_items_information)
* Verbesserung: Die Bedeutung von "data-tax" und "data-shipping" in den Checkout- und Header-Vorlagen wurde vereinheitlicht
* Kompiliert für Shopware 6.7.x.x
* Neues Einwilligungsbanner WebCAre
* Fehlerbehebung: UTM-Parameter, umgeht nun den Cache und ignoriert /_esi/-Anfragen
* Fehlerbehebung: „add_payment“ und „add_shipping“ wurden bei einer zweiten Bestellung in derselben Sitzung nicht ausgelöst.
* Fehlerbehebung: Rundung bei größeren Mengen
* Weitere Kanäle für UTM-Parameter hinzugefügt: ChatGPT Ads, Hubspot Ads, ShareASale, Rakuten Advertising
* Leistungsoptimierung für „add_to_cart“ (Reduzierung um 400 ms)
* Fehlerbehebung: In bestimmten Fällen wurde die 0 in der Telefonnummer entfernt.
* Fehlerbehebung: Bestellversion im benutzerdefinierten Wert
* Fehlerbehebung: Der Bruttopreis inklusive Versand enthielt zusätzliche Steuern (die Versandkosten waren bereits in der Gesamtsteuer enthalten, werden nun separat ausgewiesen).
* Fehlerbehebung: Der Bruttogesamtwert war bei mehreren in der Bestellung enthaltenen Steuersätzen falsch
* Fehlerbehebung: Verschachtelte Einzelposten für Stücklisten und Bundle-Plugins (wie Pickware)
* Neue Konfiguration für Kundendaten in einem zusätzlichen Array hinzugefügt
* Fehlerbehebung: Kundendaten im zusätzlichen Array sind nur dann nicht vorhanden, wenn die Einwilligung aktiv ist und die Konfiguration „sendPurchaseAdditionalData“ auf „aktiv“ gesetzt ist
* Fehlerbehebung: „utm_campaign“ ging in einigen Fällen verloren -> „utm_source“ und „utm_medium“ sind nicht leer -> beide beibehalten und „utm_campaign“ erhalten, falls vorhanden
* Behebung: PHP-Fehler in einigen Fällen im Abonnentenbereich
* Behebung: Währung hatte für einige Länder (z. B. Polen) nicht den richtigen ISO-Code
* Behebung: „select_item“ fehlte bei Verwendung des Plugins „QuickView“
* Behebung: Währung fehlte auf E-Commerce-Ebene im „view_item_list“-Ereignis
* Kompiliert für Shopware 6.7.x.x
* idealo_de zur UTM-Source-Prüfung hinzugefügt (für den Fall, dass utm_medium leer ist, utm_source jedoch idealo_de lautet)
* Zusätzlichen Fallback für die UTM-Source-Parameter hinzugefügt, wenn mindestens einer der Parameter utm_source oder utm_medium nicht leer ist, aber von unserem Plugin nicht erkannt wird.
* ACHTUNG: Die UTM-Source-Logik wurde so aktualisiert, dass wir zuerst utm_source und utm_medium zurückgeben, sofern beide nicht leer sind.
* Bedingung für Rabatt ersetzt, um die Kompatibilität mit dem Easy Coupon-Plugin zu gewährleisten
* Fehler behoben: generate_lead funktionierte seit der Einführung von ChatGPT-Ads nicht mehr
* Gehashtes userId als sha256_user_id hinzugefügt (user_id ist weiterhin vorhanden und nicht gehasht)
* Negativer Wert im Kauf für Rabattwerte behoben, die größer sind als der Gesamtwert der Artikel
* Kompiliert für Shopware 6.7.x.x
* Kompatibilitätsproblem mit dem Swag Custom Products-Plugin behoben, das das Repository des Vertriebskanals anpasste.
* Kompiliert für Shopware 6.7.x.x
* Das benutzerdefinierte Such-Plugin für spezielle Entitäten wie Blog oder Hersteller, das seit der letzten Version 1.7.3 nicht mehr funktionierte oder PHP-Fehler verursachte, wurde behoben.
* Die Datenqualität der Produkte (Marke und Kategorie) auf den Checkout-Seiten wurde verbessert. Es wird nun Subscriber anstelle von Storage verwendet. Storage bleibt als Fallback erhalten.
* ChatGPT-Ads-Datalayer und -Ereignisse hinzugefügt
* Eindeutige event_id für jedes Ereignis hinzugefügt
* Rabattlogik für das Easy-Coupon-Plugin korrigiert
* Kompiliert für Shopware 6.7.x.x
* Fehler behoben: Das login event wurde seit der letzten Version 1.7.3 auf jeder Seite ausgelöst
* Fehler behoben: Das purchase event wurde seit der letzten Version 1.7.3 beim Aktualisieren der Seite ausgelöst
* Fehler behoben: Das add_payment_info event wurde seit der letzten Version 1.7.3 im Checkout-Prozess zweimal ausgelöst
* Fehler behoben: Das add_shipping_info event wurde nach der letzten Version 1.7.3 im Checkout-Prozess zweimal ausgelös
* Fehler behoben: Der Gutscheincode wurde nach der letzten Version 1.7.3 nicht ordnungsgemäß im lokalen Speicher gespeichert
* Einige nach der letzten Version 1.7.3 noch vorhandene Konsolenprotokolle wurden entfernt
* Fehler behoben: Die Logik für Gutscheine beim Listenpreis (Streichpreis) wurde korrigiert, da es nach der letzten Version 1.7.3 zu Abweichungen beim Nettopreis kam
* Kompiliert für Showpare 6.7.x.x
* Verbesserte Kompatibilität mit anderen Plugins, wenn CMS-Seiten mit leeren CMS-Elementen vorhanden sind.
* Verbesserte erweiterte Preisoptionen: Preise nach beliebigen Kriterien (Vertriebskanal usw.) und gestaffelte Preise.
* Verbesserte Preisberechnung an der Kasse; in einigen Fällen fehlten Preise.
* Behebung eines JS-Fehlers beim Entfernen einer Aktion aus dem Warenkorb.
* Option zum Unterdrücken von Locastorage-Einträgen mit TTL hinzugefügt.
* Kompiliert für Shopware 6.7.x.x
* Korrektur für das Ereignis "remove_from_cart", wenn Meta aktiv ist
* Einige zusätzliche Prüfungen in FrontendSubscriber für leere Cross-Selling-Elemente hinzugefügt
* Kompiliert für Shopware 6.7.x.x
* Verbesserte Kompatibilität mit über QuickView geladenen Varianten (Shopware Evolve CMS-Elemente)
* Kompiliert für Shopware 6.7.x.x
* Null-Prüfung in der Cross-Selling-Logik hinzugefügt, um den fatalen Fehler „Call to a member function getCrossSellings() on null“ zu verhindern
* Kompatibilität mit QuickView (Shopware Evolve CMS-Elemente) hinzugefügt:
- Verbesserte QuickView-Integration, um das Ereignis „view_item“ anstelle von „select_item“ auszulösen, wenn QuickView für dieses Produkt aktiv ist.
- Sichergestellt, dass „add_to_cart“ in der QuickView-Modalansicht ausgelöst wird
* Fehler mit null-Daten im Kategorie-Breadcrumb behoben (in seltenen Fällen wurde folgende Warnung ausgelöst: „Warnung: Versuch, auf Array-Offset bei null in GA4TwigExtensions zuzugreifen“)
* Fehler im Wert behoben, der im Kauf-Ereignis für Meta enthalten war
* Option hinzugefügt, um den Preis für Gastnutzer auszublenden (B2B-Option)
* Einige Links im Backend für Dokumentation und Bewertungen hinzugefügt
* Für Shopware 6.6.x.x kompiliert
* Fehler behoben, durch den die QuickView die Kategorien um eine Ebene verschoben meldete (`item_category2` fehlte, tiefere Ebenen rückten auf) und `item_variant` ein nachgestelltes Leerzeichen enthielt. Jetzt werden dieselben Kategorien und dieselbe Variante wie auf der Produktdetailseite gemeldet (G4SW6-131)
* Fehler behoben, durch den die Produktliste nach dem Filtern, Sortieren oder einem Seitenwechsel in `view_item_list` um eine Ebene verschobene Kategorien und `item_variant` mit einem nachgestellten Leerzeichen meldete (G4SW6-131)
* Fehler behoben, durch den `item_list_name` in Kategorielisten unter Shopware 6.7 noch den SEO-Titel der Seite statt des Kategorienamens enthielt. Der Kategoriename wird jetzt aus der Kategorie der Seite gelesen; der Seitentitel wird nie als Listenname verwendet (G4SW6-133)
* Fehler behoben, durch den `select_item` aus den Suchvorschlägen `price` als Zeichenfolge und immer als Bruttopreis übermittelte. Der Preis ist jetzt eine Zahl und berücksichtigt `taxConfiguration` (Netto/Brutto) sowie die erweiterten Preise – wie in der Produktliste und in `view_item`. `item_variant` enthält kein nachgestelltes Leerzeichen mehr (G4SW6-140)
* Fehler behoben, durch den Warenkorbrabatte (Aktionen, z. B. ein Kundengruppenrabatt) nur in `purchase` auf die Artikel verteilt wurden. `view_cart`, `begin_checkout`, `add_shipping_info` und `add_payment_info` melden jetzt den Preis nach Abzug des Rabatts, `items[].discount` sowie die Aktion als `coupon` des Artikels. Damit entspricht die Summe aus `price × quantity` in allen Checkout-Events dem Wert von `value` (G4SW6-122)
* Parameter `search_type` zum Event `search` hinzugefügt: `suggest` für Suchvorschläge und `results` für die Suchergebnisseite. GTM-Setups können nach `search_type = results` filtern, um nur abgeschickte Suchen zu zählen (G4SW6-124)
* Fehler behoben, durch den die Suchvorschläge für jeden unvollständigen Suchbegriff ein `search`-Event sendeten und denselben Begriff wiederholt meldeten. Das Event wird jetzt nach einer Sekunde ohne Eingabe und nur einmal pro Suchbegriff und Seitenaufruf gesendet (G4SW6-124)
* Fehler behoben, durch den `item_variant` in Checkout-Events und `purchase` leer war, wenn das Produkt nicht im Browser gespeichert war (z. B. bei einem nach der Anmeldung auf einem anderen Gerät wiederhergestellten Warenkorb). Die Variante wird jetzt zusammen mit dem Produkt auf der Warenkorb-, Bestätigungs- und Abschlussseite geladen (G4SW6-130)
* Fehler behoben, durch den bei `remove_from_cart` auf der Warenkorbseite `/checkout/cart` `item_variant` fehlte und `item_list_name: "checkout"` gemeldet wurde. Jetzt werden dieselben Artikeldaten wie im Offcanvas-Warenkorb gemeldet, einschließlich der Liste, aus der das Produkt hinzugefügt wurde (G4SW6-130)
* Fehler behoben, durch den die Platzhalter `product` und `checkout` als `item_list_id` / `item_list_name` gesendet wurden. Sie werden jetzt in allen Events weggelassen; echte Listen (Kategorien, Suchergebnisse, Merkliste) bleiben erhalten (G4SW6-130)
* Fehler behoben, durch den Lieferaktionen (z. B. ein Versandrabattcode) in `view_cart`, `begin_checkout`, `add_shipping_info`, `add_payment_info` und `purchase` in allen Kanälen (GA4, Google Ads, Meta, Microsoft Ads, Pinterest, TikTok, OpenAI) als zusätzliche Artikel ohne `item_id` gesendet wurden. Aktionspositionen werden nie als Artikel gemeldet; eine Lieferaktion reduziert nur `shipping` (G4SW6-141)
* Fehler behoben, durch den `view_item` und `view_item_list` statt des Preises für die gemeldete Menge die günstigste Staffel der erweiterten (regelbasierten) Preise meldeten. `items[].price` ist jetzt der zu `items[].quantity` gehörende Stückpreis und wird wie im Warenkorb ausgewählt (G4SW6-135)
* Fehler behoben, durch den `select_item` und `add_to_wishlist` die günstigste Preisstaffel meldeten. Sie melden jetzt den Preis für ein Stück
* Fehler behoben, durch den Mengen oberhalb der letzten Preisstaffel im Data Layer nicht die letzte, nach oben offene Staffel verwendeten
* Fehler behoben, durch den die ursprüngliche Produktliste und die per AJAX gerenderte Liste (Filter, Seitenwechsel) für dasselbe Produkt unterschiedliche Preise meldeten. Die günstigste Preisstaffel bleibt als Information in `extra.cheapestAdvancedPrice` verfügbar
* Fehler behoben, durch den `view_item` die Menge 1 meldete, obwohl für das Produkt eine Mindestabnahmemenge gilt. Die Option `Use minimum purchase quantity in view_item` (standardmäßig aktiviert) meldet auf der Produktdetailseite und in der QuickView `quantity = minPurchase` und `value = price × quantity` (G4SW6-126)
* Fehler behoben, durch den `item_category` die Navigationskategorie des Verkaufskanals enthielt. Jetzt wird die erste Ebene darunter als `item_category` gemeldet (G4SW6-132)
* Fehler behoben, durch den beim Kategorie-Fallback Kategorien aus anderen Kategoriebäumen (z. B. aus einem anderen Verkaufskanal) verwendet wurden. Es werden nur Kategorien unterhalb der Navigationskategorie des aktuellen Verkaufskanals berücksichtigt. Eine Hauptkategorie außerhalb dieses Baums wird ignoriert; Produkte ohne Kategorie in diesem Baum erhalten kein `item_category`
* Fehler behoben, durch den `coupon` in `begin_checkout` und `purchase` statt des eingelösten Gutscheincodes den Namen der Aktion enthielt. Jetzt wird der Code gemeldet; automatische Aktionen ohne Code behalten ihren Namen (G4SW6-115)
* Fehler behoben, durch den `coupon` bei Aktionen mit dem Geltungsbereich „Versand“ fehlte. Deren Codes werden aus den Warenkorbaktionen gelesen
* Fehler behoben, durch den die per AJAX gerenderte Produktliste (Filter, Seitenwechsel) statt der erweiterten Preise des aktuellen Kontexts den Preis aus dem Feld „Allgemein“ meldete (DISCO-335989)
* Fehler behoben, durch den die per AJAX gerenderte Produktliste trotz `taxConfiguration` = Brutto den Nettopreis meldete und die QuickView immer den Nettopreis meldete
* Fehler behoben, durch den alle Bestellungen `Direct / Direct` zugeordnet wurden, wenn die Landingpage mit UTM-Parametern aus einem Cache (Shopware-HTTP-Cache, Varnish, CDN) ausgeliefert wurde. Die Herkunft wurde nur auf dem Server erkannt, sodass nur der Besucher, der den Cache-Miss auslöste, korrekt zugeordnet wurde
* Clientseitige Erfassung der UTM- und Klickparameter hinzugefügt (First-Party-Cookie `disco_ga4_traffic_origin`). Der Server verwendet diese beim Checkout, wenn er die Parameter selbst nie gesehen hat. Die Erkennungslogik wird gemeinsam genutzt; die Erfassung enthält keine personenbezogenen Daten und ihre Lebensdauer richtet sich nach der Speicherdauer der Plugin-Daten
* Konfiguration `Capture tracking parameters in the browser` (UTM Parameter Tracking) hinzugefügt; standardmäßig aktiviert
* Fehler behoben, durch den `Direct / Direct` bei der ersten Anfrage gespeichert wurde und jede später erkannte Herkunft derselben Sitzung blockierte. Der Platzhalter wird jetzt ersetzt, sobald eine tatsächliche Quelle erkannt wird (z. B. ein Anzeigenklick nach einem direkten Besuch)
* Fehler behoben, durch den ein neuer externer Referrer eine zuvor gespeicherte Herkunft derselben Sitzung nicht überschrieb
* Fehler behoben, durch den Parameter von Rakuten Advertising (`ranMID`, `ranEAID`, `ranSiteID`) nie erkannt wurden, weil die Namen der Query-Parameter in Kleinbuchstaben normalisiert werden
* Fehler behoben, durch den der HTTP-Cache für UTM-Anfragen umgangen wurde, obwohl die Traffic-Quelle bereits in der Sitzung gespeichert war. In diesem Fall wird der Cache jetzt nicht mehr umgangen
* Fehler behoben, durch den der HTTP-Cache umgangen wurde, bevor der Verkaufskanal aufgelöst war
* Fehler behoben, durch den der HTTP-Cache trotz deaktivierter UTM-Parameter-Verfolgung umgangen wurde
* Fehler behoben, durch den die Sitzung bereits vor der Prüfung der Einstellung zur UTM-Parameter-Verfolgung gestartet wurde. Dadurch war die Antwort selbst bei deaktivierter Verfolgung nicht cachebar
* Konfiguration `Bypass HTTP cache for UTM requests` (UTM Parameter Tracking) hinzugefügt. Shops, die von Lastspitzen durch automatisierte Link-Scanner betroffen sind, können UTM-URLs damit wieder aus dem HTTP-Cache ausliefern
* Fehler behoben, durch den Rabatte auf Bestellebene (Aktionen, Gutscheine) nicht in den Artikelpreisen des `purchase`-Events berücksichtigt wurden, wie es Google Analytics 4 verlangt (`price` = Preis nach dem Artikelrabatt, `value` = Summe aus `price * quantity`). Für die Verteilung wird die `composition`-Payload der Shopware-Aktion verwendet; Gutscheine von Drittanbietern werden proportional zu den Positionssummen verteilt
* Fehler behoben, durch den ein separater Bestellrabatt vom `purchase`-Wert abgezogen wurde. Das übergeordnete Feld `discount` des `purchase`-Events enthält jetzt nur noch Google-Ads-Daten
* Fehler behoben, durch den sich die Artikelpreise bei Warenkörben mit mehreren Steuersätzen im `purchase`-Event nicht zum richtigen `value` summierten. Jeder Artikel wird jetzt mit seinem eigenen Steuersatz umgerechnet
* Fehler behoben, durch den `items[].index` im `purchase`-Event Lücken aufwies. Die Indizes lauten jetzt `0, 1, 2, ...`
* Fehler behoben, durch den die Platzhalterlisten `product` und `checkout` als `item_list_id` / `item_list_name` gesendet wurden
* Fehler behoben, durch den der Data Layer bereits mehrere Pushes vor dem `purchase`-Event geleert wurde. Er wird jetzt unmittelbar vor dem Event geleert, sodass Google und die anderen Kanäle keine leeren Werte auslesen können
* Fehler behoben, durch den `customer_type` / `new_customer` bei der ersten Bestellung eines Gastkunden den Wert `returning` hatte. Da Gastkunden vor dem Rendern der Abschlussseite abgemeldet werden, wird die Bestellhistorie jetzt aus der Bestellung statt aus dem Local Storage gelesen
* EasyCoupon-Positionen und Lieferrabatte werden nicht auf die Artikel verteilt
* Fehler behoben, durch den `select_item` ohne `ecommerce.currency` gesendet wurde
* Fehler behoben, durch den `select_item`, `add_to_wishlist`, `view_cart`, `begin_checkout`, `add_shipping_info`, `add_payment_info` und `add_to_cart` (Warenkorbseite) das GA4-E-Commerce-Objekt auch bei deaktiviertem GA4 sendeten
* Fehler bei Suchvorschlägen behoben: Ein Backslash oder Apostroph im Suchbegriff oder Produktnamen beschädigte das Skript oder wurde in `item_name` als `'` angezeigt. Die Werte werden jetzt für den JavaScript-Kontext JSON-kodiert
* Fehler bei Suchvorschlägen behoben: `parentId` war immer leer und `quantity` fehlte (der Wert für Microsoft Ads war `NaN`)
* Fehler behoben, durch den Suchbegriff, Kategorie, Verkaufskanal sowie die Namen der Versand- und Zahlungsarten nicht für den JavaScript-Kontext kodiert wurden
* Fehler bei Suchvorschlägen behoben: Beim Klick auf einen Link ohne Preis (z. B. einen Kategorie- oder Suchbegriffslink) trat ein `TypeError` auf. Preise mit Währungssymbolen oder lokalen Trennzeichen (`CHF 18.–`, `1'234.50`, `18,00 €`) werden jetzt verarbeitet; statt `NaN` wird `price` weggelassen
* Fehler behoben, durch den Änderungen der Zahlungs- oder Versandart bei angepasstem Markup (z. B. gespeicherten Saferpay-Karten) einen `TypeError` auslösten. Der Name wird jetzt ersatzweise aus dem Label-Text gelesen; `add_payment_info` / `add_shipping_info` werden weiterhin gesendet
* Fehler behoben, durch den `remove_from_cart` nicht gesendet wurde, wenn die Warenkorbposition keine Klasse `.line-item-row` hatte (z. B. bei Shogun-basierten Themes). Als Fallback wird `.line-item` verwendet und die Menge aus den ausgeblendeten Positionsdaten gelesen
* Fehler behoben, durch den `view_cart` nach jedem Neuladen des Offcanvas-Warenkorbs (Mengenänderung, Entfernen) gesendet wurde. Das Event wird jetzt einmal pro Öffnen des Offcanvas-Warenkorbs gesendet
* Fehler behoben, durch den `item_list_name` in Kategorielisten statt des Kategorienamens den Seitentitel (SEO-Titel) verwendete. Der Seitentitel dient jetzt nur noch als Fallback
* Fehler behoben, durch den der Consent Mode `ad_storage`, `ad_user_data` und `ad_personalization` gewährte, wenn nur Analytics akzeptiert wurde. Die Einwilligungen für Analytics und Werbung sind jetzt getrennt; jedes Update sendet ausdrücklich `granted` oder `denied`, und ein Widerruf wird ohne Neuladen weitergegeben
* Fehler bei der Einwilligung für Microsoft UET behoben: Der Standardwert ist jetzt `denied`, und jede Änderung der Einwilligung sendet ein Update mit `granted` oder `denied`
* Fehler behoben, durch den `purchase` über HTTP nicht gesendet wurde, wenn `crypto.subtle` nicht verfügbar war. `purchase` wird jetzt ohne die gehashten Felder gesendet
* Fehler behoben, durch den `add_to_cart` / `remove_from_cart` einen `TypeError` auslösten, wenn keine Artikeldaten verfügbar waren, z. B. bei Mengenänderungen auf der Warenkorbseite
* Fehler bei `taxConfiguration = netto` (Bruttopreise im Shop) behoben: `value` entsprach nicht der Summe aus `price × quantity`, und `add_to_cart` meldete bei größeren Mengen einen zu niedrigen Wert. Der Nettoartikelpreis wird jetzt aus der Nettopositionssumme abgeleitet; GA4-Artikelpreise behalten bis zu sechs Nachkommastellen
* Fehler behoben, durch den der Ads-Wert bei Berechnung aus einem gerundeten Nettopreis um einen oder mehrere Cent abwich. Brutto-Ads-Werte verwenden jetzt direkt den Bruttopreis, Netto-Ads-Werte die Nettopositionssumme
* Kompiliert für Shopware 6.6.x.x
* Problem behoben, bei dem die Rabattberechnung von der Reihenfolge der Artikel abhing
* Problem behoben, bei dem die Versandsteuer inkonsistent war
* Problem behoben, bei dem Netto- und Bruttopreis bei Checkout-Ereignissen inkonsistent waren (add_to_cart und begin_checkout nicht identisch)
* Problem mit TrafficOriginCacheSubscriber behoben: Cache-Umgehung (privat/kein Shop) auch für externe Referrer ohne UTM, z. B. organische Google-Suche
* Problem behoben: Bei taxConfiguration = gross enthielt der GA4-Wert die Versandkosten;
* Problem behoben: Anzeigenwerte waren zu niedrig, wenn ein Warenkorb-Rabatt angewendet wurde
* Problem behoben: "TrafficOriginCacheSubscriber" liest "utmTracking" ohne Vertriebskanal-ID, während "FrontendSubscriber" es mit einer solchen liest - das Verhalten variiert je nach Vertriebskanal
* Problem behoben: HTTP-Cache verschleiert die Quelle (UTM-/Klick-IDs)
* Problem behoben: Bei UTM-Tracking können Wiederholungsbesuche von Zahlungsanbietern (Wallee, HeyLight) die Kampagnenquelle überschreiben
* sendPurchaseAdditionalData: Migration für bestehende Installationen und Empfehlungen für GTM-Tags mit "additional" hinzugefügt
* Problem behoben, bei dem die Produktzuordnung in der Fallback-Vorlage fehlte (ga4Product in disco_hidden_line_items_information)
* Verbesserung: Die Bedeutung von "data-tax" und "data-shipping" in den Checkout- und Header-Vorlagen wurde vereinheitlicht
* Kompiliert für Shopware 6.6.x.x
* Neues Einwilligungsbanner WebCAre
* Fehlerbehebung: UTM-Parameter, umgeht nun den Cache und ignoriert /_esi/-Anfragen
* Fehlerbehebung: „add_payment“ und „add_shipping“ wurden bei einer zweiten Bestellung in derselben Sitzung nicht ausgelöst.
* Fehlerbehebung: Rundung bei größeren Mengen
* Weitere Kanäle für UTM-Parameter hinzugefügt: ChatGPT Ads, Hubspot Ads, ShareASale, Rakuten Advertising
* Leistungsoptimierung für „add_to_cart“ (Reduzierung um 400 ms)
* Fehlerbehebung: In bestimmten Fällen wurde die 0 in der Telefonnummer entfernt.
* Fehlerbehebung: Bestellversion im benutzerdefinierten Wert
* Fehlerbehebung: Der Bruttopreis inklusive Versand enthielt zusätzliche Steuern (die Versandkosten waren bereits in der Gesamtsteuer enthalten, werden nun separat ausgewiesen).
* Fehlerbehebung: Der Bruttogesamtwert war bei mehreren in der Bestellung enthaltenen Steuersätzen falsch
* Fehlerbehebung: Verschachtelte Einzelposten für Stücklisten und Bundle-Plugins (wie Pickware)
* Neue Konfiguration für Kundendaten in einem zusätzlichen Array hinzugefügt
* Fehlerbehebung: Kundendaten im zusätzlichen Array sind nur dann nicht vorhanden, wenn die Einwilligung aktiv ist und die Konfiguration „sendPurchaseAdditionalData“ auf „aktiv“ gesetzt ist
* Fehlerbehebung: „utm_campaign“ ging in einigen Fällen verloren -> „utm_source“ und „utm_medium“ sind nicht leer -> beide beibehalten und „utm_campaign“ erhalten, falls vorhanden
* Behebung: PHP-Fehler in einigen Fällen im Abonnentenbereich
* Behebung: Währung hatte für einige Länder (z. B. Polen) nicht den richtigen ISO-Code
* Behebung: „select_item“ fehlte bei Verwendung des Plugins „QuickView“
* Behebung: Währung fehlte auf E-Commerce-Ebene im „view_item_list“-Ereignis
* Kompiliert für Shopware 6.6.x.x
* idealo_de zur UTM-Source-Prüfung hinzugefügt (für den Fall, dass utm_medium leer ist, utm_source jedoch idealo_de lautet)
* Zusätzlichen Fallback für die UTM-Source-Parameter hinzugefügt, wenn mindestens einer der Parameter utm_source oder utm_medium nicht leer ist, aber von unserem Plugin nicht erkannt wird.
* ACHTUNG: Die UTM-Source-Logik wurde so aktualisiert, dass wir zuerst utm_source und utm_medium zurückgeben, sofern beide nicht leer sind.
* Bedingung für Rabatt ersetzt, um die Kompatibilität mit dem Easy Coupon-Plugin zu gewährleisten
* Fehler behoben: generate_lead funktionierte seit der Einführung von ChatGPT-Ads nicht mehr
* Gehashtes userId als sha256_user_id hinzugefügt (user_id ist weiterhin vorhanden und nicht gehasht)
* Negativer Wert im Kauf für Rabattwerte behoben, die größer sind als der Gesamtwert der Artikel
* Kompiliert für Shopware 6.6.x.x
* Kompatibilitätsproblem mit dem Swag Custom Products-Plugin behoben, das das Repository des Vertriebskanals anpasste.
* Kompiliert für Shopware 6.6.x.x
* Das benutzerdefinierte Such-Plugin für spezielle Entitäten wie Blog oder Hersteller, das seit der letzten Version 1.7.3 nicht mehr funktionierte oder PHP-Fehler verursachte, wurde behoben.
* Die Datenqualität der Produkte (Marke und Kategorie) auf den Checkout-Seiten wurde verbessert. Es wird nun Subscriber anstelle von Storage verwendet. Storage bleibt als Fallback erhalten.
* ChatGPT-Ads-Datalayer und -Ereignisse hinzugefügt
* Eindeutige event_id für jedes Ereignis hinzugefügt
* Rabattlogik für das Easy-Coupon-Plugin korrigiert
* Kompiliert für Shopware 6.6.x.x
* Fehler behoben: Das login event wurde seit der letzten Version 1.7.3 auf jeder Seite ausgelöst
* Fehler behoben: Das purchase event wurde seit der letzten Version 1.7.3 beim Aktualisieren der Seite ausgelöst
* Fehler behoben: Das add_payment_info event wurde seit der letzten Version 1.7.3 im Checkout-Prozess zweimal ausgelöst
* Fehler behoben: Das add_shipping_info event wurde nach der letzten Version 1.7.3 im Checkout-Prozess zweimal ausgelös
* Fehler behoben: Der Gutscheincode wurde nach der letzten Version 1.7.3 nicht ordnungsgemäß im lokalen Speicher gespeichert
* Einige nach der letzten Version 1.7.3 noch vorhandene Konsolenprotokolle wurden entfernt
* Fehler behoben: Die Logik für Gutscheine beim Listenpreis (Streichpreis) wurde korrigiert, da es nach der letzten Version 1.7.3 zu Abweichungen beim Nettopreis kam
* Kompiliert für Showpare 6.6.x.x
* Verbesserte Kompatibilität mit anderen Plugins, wenn CMS-Seiten mit leeren CMS-Elementen vorhanden sind.
* Verbesserte erweiterte Preisoptionen: Preise nach beliebigen Kriterien (Vertriebskanal usw.) und gestaffelte Preise.
* Verbesserte Preisberechnung an der Kasse; in einigen Fällen fehlten Preise.
* Behebung eines JS-Fehlers beim Entfernen einer Aktion aus dem Warenkorb.
* Option zum Unterdrücken von Locastorage-Einträgen mit TTL hinzugefügt.
* Kompiliert für Shopware 6.6.x.x
* Korrektur für das Ereignis "remove_from_cart", wenn Meta aktiv ist
* Einige zusätzliche Prüfungen in FrontendSubscriber für leere Cross-Selling-Elemente hinzugefügt
* Kompiliert für Shopware 6.6.x.x
* Verbesserte Kompatibilität mit über QuickView geladenen Varianten (Shopware Evolve CMS-Elemente)
* Kompiliert für Shopware 6.6.x.x
* Null-Prüfung in der Cross-Selling-Logik hinzugefügt, um den fatalen Fehler „Call to a member function getCrossSellings() on null“ zu verhindern
* Kompatibilität mit QuickView (Shopware Evolve CMS-Elemente) hinzugefügt:
- Verbesserte QuickView-Integration, um das Ereignis „view_item“ anstelle von „select_item“ auszulösen, wenn QuickView für dieses Produkt aktiv ist.
- Sichergestellt, dass „add_to_cart“ in der QuickView-Modalansicht ausgelöst wird
* Fehler mit null-Daten im Kategorie-Breadcrumb behoben (in seltenen Fällen wurde folgende Warnung ausgelöst: „Warnung: Versuch, auf Array-Offset bei null in GA4TwigExtensions zuzugreifen“)
* Fehler im Wert behoben, der im Kauf-Ereignis für Meta enthalten war
* Option hinzugefügt, um den Preis für Gastnutzer auszublenden (B2B-Option)
* Einige Links im Backend für Dokumentation und Bewertungen hinzugefügt
* Kompiliert für Shopware 6.6.x.x und Shopware 6.7.x.x
* Verbesserte Backend-Geschwindigkeit - die Subscriber-logik wird nun nur noch im Frontend geladen
* Fallback-Lösungen für leere Warenkorbartikel wie benutzerdefinierte Elemente aus anderen Plugins hinzugefügt
* Kompatibilität mit Rabatt- und Gutschein-Plugins hinzugefügt
* Kompiliert für Shopware 6.6.x.x und 6.7.x.x
* Integration des Didomi-Einwilligungsbanners
* Kompilierung für Shopware 6.6.x.x und 6.7.x.x
* Neue Abonnentenlogik für verbesserte Kompatibilität und Leistung. Diese neue Logik verbessert die Kompatibilität mit Plugins, die Context- oder Page-Objekte erweitern.
* Das Skript für das ga4product-Objekt wird nun als JSON geladen, wodurch die Anzahl der DOM-Objekte reduziert wird.
* Hinzufügen von google_business_vertical: ‚retail‘ auf E-Commerce-Ebene für alle ga4-Ereignisse gemäß der neuen ga4-Dokumentation.
* Hinzufügen von customer_type (neu/wiederkehrend) auf E-Commerce-Ebene für Kauf-ga4-Ereignisse gemäß der neuen ga4-Dokumentation.
* Verbesserte UserCentrics V2-Kompatibilität für Skripte, einschließlich automatischer Blockierung.
* Kompiliert für Showare 6.6.x.x und 6.7.x.x
* Fallbacks für fehlende Versandkosten im Kaufvorgang für benutzerdefinierte Checkouts hinzugefügt.
* Kompiliert für Shopware 6.6.x.x und 6.7.x.x.
* Neues benutzerdefiniertes Ereignis hinzugefügt, um die Aktualisierung der Einwilligung für den erweiterten Einwilligungsmodus auszulösen.
* ga4_event-Label für alle Ereignisse hinzugefügt, das als Fallback dient, wenn Einwilligungstools verwendet werden, die nicht mit unserem Plugin kompatibel sind. Dies wurde für alle ga4-Ereignisse hinzugefügt.
* Verbesserte Logik für affiliateCode und campaignCode.
* Verbesserte Logik für den Stückpreis für benutzerdefinierte Produkt-Plugins.
* Kompiliert für Shopware 6.6.x.x und 6.7.x.x
* analytics_storage, ad_storage, ad_personalization und ad_user_data können jetzt für GA4 gewährt werden, wenn Google Ads deaktiviert ist.
* Verbesserte UUID-Prüfung für benutzerdefinierte Funktionen zur Kompatibilität mit Pseudo-Elementen in Listing-Collections.
* Verzögerung für das Kaufereignis hinzugefügt, sodass es in den serverseitigen Tag-Manager-Konfigurationen erst nach den Ereignissen add_payment und add_shipping geladen wird.
* UTM-Parameter-Tracking für Agenten und Shopping-Assistenten hinzugefügt.
* Kompiliert für Shopware 6.6.x.x und 6.7.x.x
* Verzögerung des Ladens des Tag-Manager-Skripts für den clientseitigen Tag-Manager
* Verzögerung des Ladens des Tag-Manager-Skripts für den serverseitigen Tag-Manager
* Mehrwert in den meisten Pinterest-Ereignissen
* Neue Variablen hinzugefügt: Sprache, Land, Landingpage (true ist die erste Seite, die in der Sitzung besucht wurde)
* Viewsearch-Ergebnisereignis für Meta-Anzeigen korrigiert
* Google-Anzeigen-Elemente im Kaufereignis korrigiert
* Fehlende Kategorien im view_item_list-Ereignis für Paginierung korrigiert (n-te Seite der Paginierung)
* Suchvorschlag-Abonnent korrigiert (in einigen Fällen verhinderte er das Schließen des Suchvorschlags-Modals)
* Kompiliert für Shopware 6.6.x.x und 6.7.x.x
* Mehrwert für Meta-Ads-Ereignis „add_to_cart” hinzugefügt
* Array für Content-Elemente für das Ereignis „initiatecheckout” (Meta-Ads) korrigiert
* Bugfix für internationales Telefonnummernformat
* Logik für „customer_lifetime_value” mit Speicher verbessert
* Optionaler Wert und Währung für Meta-Ereignisse hinzugefügt (in der Dokumentation optional, aber tatsächlich erforderlich, jetzt vorhanden)
* Kompiliert für Shopware 6.6.x.x und 6.7.x.x
* Korrektur für das Ereignis „begin_checkout” bei Verwendung von Paypal Express Checkout
* Korrektur für Cookies für Shopware 6.7.4.0 bei Verwendung des Standard-Cookie-Banners von Shopware
* Kompiliert für Shopware 6.6.x.x und 6.7.x.x
* Korrektur für leere CMS-Elemente FrontendSubscriber
* Kompiliert für Shopware 6.6.x.x und 6.7.x.x
* Korrektur für Cross-Selling-Entitätsanfragen in CMS-Seiten
* Kundengruppe im zusätzlichen Array beim Kaufereignis hinzugefügt, um die Filterung nach Kundengruppen in Google Analytics zu ermöglichen. Befindet sich in addition.customer_group
* Kompiliert für Shopware 6.6.x.x und 6.7.x.x
* Korrektur der Cookie-Logik für Google Ads und Tiktok
* Kompiliert für Shopware 6.6.x.x und 6.7.x.x
* Für einige Shops, die Produkte mit Nicht-ASCII-Zeichen und einschließlich Tabulatoren oder Zeilenumbrüchen importieren, wurde eine Kürzung des Titels hinzugefügt.
* Kompiliert für Shopware 6.6.x.x und 6.7.x.x
* Neue Cookie-Logik für Shopware 6.7.3.0 eingeführt
* Option für Netto-Brutto-Preise für Google Analytics hinzugefügt. Wir empfehlen, den Nettopreis zu verwenden, wie in der Dokumentation angegeben. https://m-om.link/WVOSYC
* Bitte stellen Sie durch Speichern sicher, dass die neue Einstellung Ihren Wünschen entspricht. Brutto entspricht den vorherigen Versionen des Plugins. Netto ist die neue Methode und wird von GA4 empfohlen.
* Schnellkorrektur für Shopware 6.4 bezüglich eines in 1.5.28 eingeführten Fehlers auf der Produktseite. Dieses Problem betraf nur Shopware Version 6.4.x.x
* Verbesserte new_customer-Wertlogik (Einführung von customer_type wie in der neuen Dokumentation von Google Ads)
* Umbenennung von customer_type in account_type aufgrund von Google Ads
* Kompiliert für Shopware 6.6.x.x und 6.7.x.x
* Verbesserte 'consent'->'default' für Userscentrics und Cookiebot
* Kompiliert für Shopware 6.6.x.x und 6.7.x.x
* Fehlerbehebung für Meta-Tracking und CookieFirst-Einwilligungsbanner
* Kompiliert für Shopware 6.6.x.x und 6.7.x.x
* Versionskennzeichnung für veralteten Aufruf von getCrossSellings auf der Produktseite hinzugefügt
* kompiliert für Shopware 6.6
* Schnellkorrektur für customer_life_value
* Kompiliert für Shopware 6.6.x.x und 6.7.x.x
* Verbesserte Kompatibilität für ccm19 mit serverseitigem Tag-Manager
* Für Shopware 6.5.x.x kompiliert
* Fehler behoben, durch den die QuickView die Kategorien um eine Ebene verschoben meldete (`item_category2` fehlte, tiefere Ebenen rückten auf) und `item_variant` ein nachgestelltes Leerzeichen enthielt. Jetzt werden dieselben Kategorien und dieselbe Variante wie auf der Produktdetailseite gemeldet (G4SW6-131)
* Fehler behoben, durch den die Produktliste nach dem Filtern, Sortieren oder einem Seitenwechsel in `view_item_list` um eine Ebene verschobene Kategorien und `item_variant` mit einem nachgestellten Leerzeichen meldete (G4SW6-131)
* Fehler behoben, durch den `item_list_name` in Kategorielisten unter Shopware 6.7 noch den SEO-Titel der Seite statt des Kategorienamens enthielt. Der Kategoriename wird jetzt aus der Kategorie der Seite gelesen; der Seitentitel wird nie als Listenname verwendet (G4SW6-133)
* Fehler behoben, durch den `select_item` aus den Suchvorschlägen `price` als Zeichenfolge und immer als Bruttopreis übermittelte. Der Preis ist jetzt eine Zahl und berücksichtigt `taxConfiguration` (Netto/Brutto) sowie die erweiterten Preise – wie in der Produktliste und in `view_item`. `item_variant` enthält kein nachgestelltes Leerzeichen mehr (G4SW6-140)
* Fehler behoben, durch den Warenkorbrabatte (Aktionen, z. B. ein Kundengruppenrabatt) nur in `purchase` auf die Artikel verteilt wurden. `view_cart`, `begin_checkout`, `add_shipping_info` und `add_payment_info` melden jetzt den Preis nach Abzug des Rabatts, `items[].discount` sowie die Aktion als `coupon` des Artikels. Damit entspricht die Summe aus `price × quantity` in allen Checkout-Events dem Wert von `value` (G4SW6-122)
* Parameter `search_type` zum Event `search` hinzugefügt: `suggest` für Suchvorschläge und `results` für die Suchergebnisseite. GTM-Setups können nach `search_type = results` filtern, um nur abgeschickte Suchen zu zählen (G4SW6-124)
* Fehler behoben, durch den die Suchvorschläge für jeden unvollständigen Suchbegriff ein `search`-Event sendeten und denselben Begriff wiederholt meldeten. Das Event wird jetzt nach einer Sekunde ohne Eingabe und nur einmal pro Suchbegriff und Seitenaufruf gesendet (G4SW6-124)
* Fehler behoben, durch den `item_variant` in Checkout-Events und `purchase` leer war, wenn das Produkt nicht im Browser gespeichert war (z. B. bei einem nach der Anmeldung auf einem anderen Gerät wiederhergestellten Warenkorb). Die Variante wird jetzt zusammen mit dem Produkt auf der Warenkorb-, Bestätigungs- und Abschlussseite geladen (G4SW6-130)
* Fehler behoben, durch den bei `remove_from_cart` auf der Warenkorbseite `/checkout/cart` `item_variant` fehlte und `item_list_name: "checkout"` gemeldet wurde. Jetzt werden dieselben Artikeldaten wie im Offcanvas-Warenkorb gemeldet, einschließlich der Liste, aus der das Produkt hinzugefügt wurde (G4SW6-130)
* Fehler behoben, durch den die Platzhalter `product` und `checkout` als `item_list_id` / `item_list_name` gesendet wurden. Sie werden jetzt in allen Events weggelassen; echte Listen (Kategorien, Suchergebnisse, Merkliste) bleiben erhalten (G4SW6-130)
* Fehler behoben, durch den Lieferaktionen (z. B. ein Versandrabattcode) in `view_cart`, `begin_checkout`, `add_shipping_info`, `add_payment_info` und `purchase` in allen Kanälen (GA4, Google Ads, Meta, Microsoft Ads, Pinterest, TikTok, OpenAI) als zusätzliche Artikel ohne `item_id` gesendet wurden. Aktionspositionen werden nie als Artikel gemeldet; eine Lieferaktion reduziert nur `shipping` (G4SW6-141)
* Fehler behoben, durch den `view_item` und `view_item_list` statt des Preises für die gemeldete Menge die günstigste Staffel der erweiterten (regelbasierten) Preise meldeten. `items[].price` ist jetzt der zu `items[].quantity` gehörende Stückpreis und wird wie im Warenkorb ausgewählt (G4SW6-135)
* Fehler behoben, durch den `select_item` und `add_to_wishlist` die günstigste Preisstaffel meldeten. Sie melden jetzt den Preis für ein Stück
* Fehler behoben, durch den Mengen oberhalb der letzten Preisstaffel im Data Layer nicht die letzte, nach oben offene Staffel verwendeten
* Fehler behoben, durch den die ursprüngliche Produktliste und die per AJAX gerenderte Liste (Filter, Seitenwechsel) für dasselbe Produkt unterschiedliche Preise meldeten. Die günstigste Preisstaffel bleibt als Information in `extra.cheapestAdvancedPrice` verfügbar
* Fehler behoben, durch den `view_item` die Menge 1 meldete, obwohl für das Produkt eine Mindestabnahmemenge gilt. Die Option `Use minimum purchase quantity in view_item` (standardmäßig aktiviert) meldet auf der Produktdetailseite und in der QuickView `quantity = minPurchase` und `value = price × quantity` (G4SW6-126)
* Fehler behoben, durch den `item_category` die Navigationskategorie des Verkaufskanals enthielt. Jetzt wird die erste Ebene darunter als `item_category` gemeldet (G4SW6-132)
* Fehler behoben, durch den beim Kategorie-Fallback Kategorien aus anderen Kategoriebäumen (z. B. aus einem anderen Verkaufskanal) verwendet wurden. Es werden nur Kategorien unterhalb der Navigationskategorie des aktuellen Verkaufskanals berücksichtigt. Eine Hauptkategorie außerhalb dieses Baums wird ignoriert; Produkte ohne Kategorie in diesem Baum erhalten kein `item_category`
* Fehler behoben, durch den `coupon` in `begin_checkout` und `purchase` statt des eingelösten Gutscheincodes den Namen der Aktion enthielt. Jetzt wird der Code gemeldet; automatische Aktionen ohne Code behalten ihren Namen (G4SW6-115)
* Fehler behoben, durch den `coupon` bei Aktionen mit dem Geltungsbereich „Versand“ fehlte. Deren Codes werden aus den Warenkorbaktionen gelesen
* Fehler behoben, durch den die per AJAX gerenderte Produktliste (Filter, Seitenwechsel) statt der erweiterten Preise des aktuellen Kontexts den Preis aus dem Feld „Allgemein“ meldete (DISCO-335989)
* Fehler behoben, durch den die per AJAX gerenderte Produktliste trotz `taxConfiguration` = Brutto den Nettopreis meldete und die QuickView immer den Nettopreis meldete
* Fehler behoben, durch den alle Bestellungen `Direct / Direct` zugeordnet wurden, wenn die Landingpage mit UTM-Parametern aus einem Cache (Shopware-HTTP-Cache, Varnish, CDN) ausgeliefert wurde. Die Herkunft wurde nur auf dem Server erkannt, sodass nur der Besucher, der den Cache-Miss auslöste, korrekt zugeordnet wurde
* Clientseitige Erfassung der UTM- und Klickparameter hinzugefügt (First-Party-Cookie `disco_ga4_traffic_origin`). Der Server verwendet diese beim Checkout, wenn er die Parameter selbst nie gesehen hat. Die Erkennungslogik wird gemeinsam genutzt; die Erfassung enthält keine personenbezogenen Daten und ihre Lebensdauer richtet sich nach der Speicherdauer der Plugin-Daten
* Konfiguration `Capture tracking parameters in the browser` (UTM Parameter Tracking) hinzugefügt; standardmäßig aktiviert
* Fehler behoben, durch den `Direct / Direct` bei der ersten Anfrage gespeichert wurde und jede später erkannte Herkunft derselben Sitzung blockierte. Der Platzhalter wird jetzt ersetzt, sobald eine tatsächliche Quelle erkannt wird (z. B. ein Anzeigenklick nach einem direkten Besuch)
* Fehler behoben, durch den ein neuer externer Referrer eine zuvor gespeicherte Herkunft derselben Sitzung nicht überschrieb
* Fehler behoben, durch den Parameter von Rakuten Advertising (`ranMID`, `ranEAID`, `ranSiteID`) nie erkannt wurden, weil die Namen der Query-Parameter in Kleinbuchstaben normalisiert werden
* Fehler behoben, durch den der HTTP-Cache für UTM-Anfragen umgangen wurde, obwohl die Traffic-Quelle bereits in der Sitzung gespeichert war. In diesem Fall wird der Cache jetzt nicht mehr umgangen
* Fehler behoben, durch den der HTTP-Cache umgangen wurde, bevor der Verkaufskanal aufgelöst war
* Fehler behoben, durch den der HTTP-Cache trotz deaktivierter UTM-Parameter-Verfolgung umgangen wurde
* Fehler behoben, durch den die Sitzung bereits vor der Prüfung der Einstellung zur UTM-Parameter-Verfolgung gestartet wurde. Dadurch war die Antwort selbst bei deaktivierter Verfolgung nicht cachebar
* Konfiguration `Bypass HTTP cache for UTM requests` (UTM Parameter Tracking) hinzugefügt. Shops, die von Lastspitzen durch automatisierte Link-Scanner betroffen sind, können UTM-URLs damit wieder aus dem HTTP-Cache ausliefern
* Fehler behoben, durch den Rabatte auf Bestellebene (Aktionen, Gutscheine) nicht in den Artikelpreisen des `purchase`-Events berücksichtigt wurden, wie es Google Analytics 4 verlangt (`price` = Preis nach dem Artikelrabatt, `value` = Summe aus `price * quantity`). Für die Verteilung wird die `composition`-Payload der Shopware-Aktion verwendet; Gutscheine von Drittanbietern werden proportional zu den Positionssummen verteilt
* Fehler behoben, durch den ein separater Bestellrabatt vom `purchase`-Wert abgezogen wurde. Das übergeordnete Feld `discount` des `purchase`-Events enthält jetzt nur noch Google-Ads-Daten
* Fehler behoben, durch den sich die Artikelpreise bei Warenkörben mit mehreren Steuersätzen im `purchase`-Event nicht zum richtigen `value` summierten. Jeder Artikel wird jetzt mit seinem eigenen Steuersatz umgerechnet
* Fehler behoben, durch den `items[].index` im `purchase`-Event Lücken aufwies. Die Indizes lauten jetzt `0, 1, 2, ...`
* Fehler behoben, durch den die Platzhalterlisten `product` und `checkout` als `item_list_id` / `item_list_name` gesendet wurden
* Fehler behoben, durch den der Data Layer bereits mehrere Pushes vor dem `purchase`-Event geleert wurde. Er wird jetzt unmittelbar vor dem Event geleert, sodass Google und die anderen Kanäle keine leeren Werte auslesen können
* Fehler behoben, durch den `customer_type` / `new_customer` bei der ersten Bestellung eines Gastkunden den Wert `returning` hatte. Da Gastkunden vor dem Rendern der Abschlussseite abgemeldet werden, wird die Bestellhistorie jetzt aus der Bestellung statt aus dem Local Storage gelesen
* EasyCoupon-Positionen und Lieferrabatte werden nicht auf die Artikel verteilt
* Fehler behoben, durch den `select_item` ohne `ecommerce.currency` gesendet wurde
* Fehler behoben, durch den `select_item`, `add_to_wishlist`, `view_cart`, `begin_checkout`, `add_shipping_info`, `add_payment_info` und `add_to_cart` (Warenkorbseite) das GA4-E-Commerce-Objekt auch bei deaktiviertem GA4 sendeten
* Fehler bei Suchvorschlägen behoben: Ein Backslash oder Apostroph im Suchbegriff oder Produktnamen beschädigte das Skript oder wurde in `item_name` als `'` angezeigt. Die Werte werden jetzt für den JavaScript-Kontext JSON-kodiert
* Fehler bei Suchvorschlägen behoben: `parentId` war immer leer und `quantity` fehlte (der Wert für Microsoft Ads war `NaN`)
* Fehler behoben, durch den Suchbegriff, Kategorie, Verkaufskanal sowie die Namen der Versand- und Zahlungsarten nicht für den JavaScript-Kontext kodiert wurden
* Fehler bei Suchvorschlägen behoben: Beim Klick auf einen Link ohne Preis (z. B. einen Kategorie- oder Suchbegriffslink) trat ein `TypeError` auf. Preise mit Währungssymbolen oder lokalen Trennzeichen (`CHF 18.–`, `1'234.50`, `18,00 €`) werden jetzt verarbeitet; statt `NaN` wird `price` weggelassen
* Fehler behoben, durch den Änderungen der Zahlungs- oder Versandart bei angepasstem Markup (z. B. gespeicherten Saferpay-Karten) einen `TypeError` auslösten. Der Name wird jetzt ersatzweise aus dem Label-Text gelesen; `add_payment_info` / `add_shipping_info` werden weiterhin gesendet
* Fehler behoben, durch den `remove_from_cart` nicht gesendet wurde, wenn die Warenkorbposition keine Klasse `.line-item-row` hatte (z. B. bei Shogun-basierten Themes). Als Fallback wird `.line-item` verwendet und die Menge aus den ausgeblendeten Positionsdaten gelesen
* Fehler behoben, durch den `view_cart` nach jedem Neuladen des Offcanvas-Warenkorbs (Mengenänderung, Entfernen) gesendet wurde. Das Event wird jetzt einmal pro Öffnen des Offcanvas-Warenkorbs gesendet
* Fehler behoben, durch den `item_list_name` in Kategorielisten statt des Kategorienamens den Seitentitel (SEO-Titel) verwendete. Der Seitentitel dient jetzt nur noch als Fallback
* Fehler behoben, durch den der Consent Mode `ad_storage`, `ad_user_data` und `ad_personalization` gewährte, wenn nur Analytics akzeptiert wurde. Die Einwilligungen für Analytics und Werbung sind jetzt getrennt; jedes Update sendet ausdrücklich `granted` oder `denied`, und ein Widerruf wird ohne Neuladen weitergegeben
* Fehler bei der Einwilligung für Microsoft UET behoben: Der Standardwert ist jetzt `denied`, und jede Änderung der Einwilligung sendet ein Update mit `granted` oder `denied`
* Fehler behoben, durch den `purchase` über HTTP nicht gesendet wurde, wenn `crypto.subtle` nicht verfügbar war. `purchase` wird jetzt ohne die gehashten Felder gesendet
* Fehler behoben, durch den `add_to_cart` / `remove_from_cart` einen `TypeError` auslösten, wenn keine Artikeldaten verfügbar waren, z. B. bei Mengenänderungen auf der Warenkorbseite
* Fehler bei `taxConfiguration = netto` (Bruttopreise im Shop) behoben: `value` entsprach nicht der Summe aus `price × quantity`, und `add_to_cart` meldete bei größeren Mengen einen zu niedrigen Wert. Der Nettoartikelpreis wird jetzt aus der Nettopositionssumme abgeleitet; GA4-Artikelpreise behalten bis zu sechs Nachkommastellen
* Fehler behoben, durch den der Ads-Wert bei Berechnung aus einem gerundeten Nettopreis um einen oder mehrere Cent abwich. Brutto-Ads-Werte verwenden jetzt direkt den Bruttopreis, Netto-Ads-Werte die Nettopositionssumme
* Kompiliert für Shopware 6.5.x.x
* Problem behoben, bei dem die Rabattberechnung von der Reihenfolge der Artikel abhing
* Problem behoben, bei dem die Versandsteuer inkonsistent war
* Problem behoben, bei dem Netto- und Bruttopreis bei Checkout-Ereignissen inkonsistent waren (add_to_cart und begin_checkout nicht identisch)
* Problem mit TrafficOriginCacheSubscriber behoben: Cache-Umgehung (privat/kein Shop) auch für externe Referrer ohne UTM, z. B. organische Google-Suche
* Problem behoben: Bei taxConfiguration = gross enthielt der GA4-Wert die Versandkosten;
* Problem behoben: Anzeigenwerte waren zu niedrig, wenn ein Warenkorb-Rabatt angewendet wurde
* Problem behoben: "TrafficOriginCacheSubscriber" liest "utmTracking" ohne Vertriebskanal-ID, während "FrontendSubscriber" es mit einer solchen liest - das Verhalten variiert je nach Vertriebskanal
* Problem behoben: HTTP-Cache verschleiert die Quelle (UTM-/Klick-IDs)
* Problem behoben: Bei UTM-Tracking können Wiederholungsbesuche von Zahlungsanbietern (Wallee, HeyLight) die Kampagnenquelle überschreiben
* sendPurchaseAdditionalData: Migration für bestehende Installationen und Empfehlungen für GTM-Tags mit "additional" hinzugefügt
* Problem behoben, bei dem die Produktzuordnung in der Fallback-Vorlage fehlte (ga4Product in disco_hidden_line_items_information)
* Verbesserung: Die Bedeutung von "data-tax" und "data-shipping" in den Checkout- und Header-Vorlagen wurde vereinheitlicht
* Kompiliert für Shopware 6.5.x.x
* Neues Einwilligungsbanner WebCAre
* Fehlerbehebung: UTM-Parameter, umgeht nun den Cache und ignoriert /_esi/-Anfragen
* Fehlerbehebung: „add_payment“ und „add_shipping“ wurden bei einer zweiten Bestellung in derselben Sitzung nicht ausgelöst.
* Fehlerbehebung: Rundung bei größeren Mengen
* Weitere Kanäle für UTM-Parameter hinzugefügt: ChatGPT Ads, Hubspot Ads, ShareASale, Rakuten Advertising
* Leistungsoptimierung für „add_to_cart“ (Reduzierung um 400 ms)
* Fehlerbehebung: In bestimmten Fällen wurde die 0 in der Telefonnummer entfernt.
* Fehlerbehebung: Bestellversion im benutzerdefinierten Wert
* Fehlerbehebung: Der Bruttopreis inklusive Versand enthielt zusätzliche Steuern (die Versandkosten waren bereits in der Gesamtsteuer enthalten, werden nun separat ausgewiesen).
* Fehlerbehebung: Der Bruttogesamtwert war bei mehreren in der Bestellung enthaltenen Steuersätzen falsch
* Fehlerbehebung: Verschachtelte Einzelposten für Stücklisten und Bundle-Plugins (wie Pickware)
* Neue Konfiguration für Kundendaten in einem zusätzlichen Array hinzugefügt
* Fehlerbehebung: Kundendaten im zusätzlichen Array sind nur dann nicht vorhanden, wenn die Einwilligung aktiv ist und die Konfiguration „sendPurchaseAdditionalData“ auf „aktiv“ gesetzt ist
* Fehlerbehebung: „utm_campaign“ ging in einigen Fällen verloren -> „utm_source“ und „utm_medium“ sind nicht leer -> beide beibehalten und „utm_campaign“ erhalten, falls vorhanden
* Behebung: PHP-Fehler in einigen Fällen im Abonnentenbereich
* Behebung: Währung hatte für einige Länder (z. B. Polen) nicht den richtigen ISO-Code
* Behebung: „select_item“ fehlte bei Verwendung des Plugins „QuickView“
* Behebung: Währung fehlte auf E-Commerce-Ebene im „view_item_list“-Ereignis
* Kompiliert für Shopware 6.5.x.x
* idealo_de zur UTM-Source-Prüfung hinzugefügt (für den Fall, dass utm_medium leer ist, utm_source jedoch idealo_de lautet)
* Zusätzlichen Fallback für die UTM-Source-Parameter hinzugefügt, wenn mindestens einer der Parameter utm_source oder utm_medium nicht leer ist, aber von unserem Plugin nicht erkannt wird.
* ACHTUNG: Die UTM-Source-Logik wurde so aktualisiert, dass wir zuerst utm_source und utm_medium zurückgeben, sofern beide nicht leer sind.
* Bedingung für Rabatt ersetzt, um die Kompatibilität mit dem Easy Coupon-Plugin zu gewährleisten
* Fehler behoben: generate_lead funktionierte seit der Einführung von ChatGPT-Ads nicht mehr
* Gehashtes userId als sha256_user_id hinzugefügt (user_id ist weiterhin vorhanden und nicht gehasht)
* Negativer Wert im Kauf für Rabattwerte behoben, die größer sind als der Gesamtwert der Artikel
* Kompiliert für Shopware 6.5.x.x
* Kompatibilitätsproblem mit dem Swag Custom Products-Plugin behoben, das das Repository des Vertriebskanals anpasste.
* Kompiliert für Shopware 6.5.x.x
* Das benutzerdefinierte Such-Plugin für spezielle Entitäten wie Blog oder Hersteller, das seit der letzten Version 1.7.3 nicht mehr funktionierte oder PHP-Fehler verursachte, wurde behoben.
* Die Datenqualität der Produkte (Marke und Kategorie) auf den Checkout-Seiten wurde verbessert. Es wird nun Subscriber anstelle von Storage verwendet. Storage bleibt als Fallback erhalten.
* ChatGPT-Ads-Datalayer und -Ereignisse hinzugefügt
* Eindeutige event_id für jedes Ereignis hinzugefügt
* Rabattlogik für das Easy-Coupon-Plugin korrigiert
* Kompiliert für Shopware 6.5.x.x
* Fehler behoben: Das login event wurde seit der letzten Version 1.7.3 auf jeder Seite ausgelöst
* Fehler behoben: Das purchase event wurde seit der letzten Version 1.7.3 beim Aktualisieren der Seite ausgelöst
* Fehler behoben: Das add_payment_info event wurde seit der letzten Version 1.7.3 im Checkout-Prozess zweimal ausgelöst
* Fehler behoben: Das add_shipping_info event wurde nach der letzten Version 1.7.3 im Checkout-Prozess zweimal ausgelös
* Fehler behoben: Der Gutscheincode wurde nach der letzten Version 1.7.3 nicht ordnungsgemäß im lokalen Speicher gespeichert
* Einige nach der letzten Version 1.7.3 noch vorhandene Konsolenprotokolle wurden entfernt
* Fehler behoben: Die Logik für Gutscheine beim Listenpreis (Streichpreis) wurde korrigiert, da es nach der letzten Version 1.7.3 zu Abweichungen beim Nettopreis kam
* Kompiliert für Showpare 6.5.x.x
* Verbesserte Kompatibilität mit anderen Plugins, wenn CMS-Seiten mit leeren CMS-Elementen vorhanden sind.
* Verbesserte erweiterte Preisoptionen: Preise nach beliebigen Kriterien (Vertriebskanal usw.) und gestaffelte Preise.
* Verbesserte Preisberechnung an der Kasse; in einigen Fällen fehlten Preise.
* Behebung eines JS-Fehlers beim Entfernen einer Aktion aus dem Warenkorb.
* Option zum Unterdrücken von Locastorage-Einträgen mit TTL hinzugefügt.
* Kompiliert für Shopware 6.5.x.x
* Korrektur für das Ereignis "remove_from_cart", wenn Meta aktiv ist
* Einige zusätzliche Prüfungen in FrontendSubscriber für leere Cross-Selling-Elemente hinzugefügt
* Kompiliert für Shopware 6.5.x.x
* Verbesserte Kompatibilität mit über QuickView geladenen Varianten (Shopware Evolve CMS-Elemente)
* Kompiliert für Shopware 6.5.x.x
* Null-Prüfung in der Cross-Selling-Logik hinzugefügt, um den fatalen Fehler „Call to a member function getCrossSellings() on null“ zu verhindern
* Kompatibilität mit QuickView (Shopware Evolve CMS-Elemente) hinzugefügt:
- Verbesserte QuickView-Integration, um das Ereignis „view_item“ anstelle von „select_item“ auszulösen, wenn QuickView für dieses Produkt aktiv ist.
- Sichergestellt, dass „add_to_cart“ in der QuickView-Modalansicht ausgelöst wird
* Fehler mit null-Daten im Kategorie-Breadcrumb behoben (in seltenen Fällen wurde folgende Warnung ausgelöst: „Warnung: Versuch, auf Array-Offset bei null in GA4TwigExtensions zuzugreifen“)
* Fehler im Wert behoben, der im Kauf-Ereignis für Meta enthalten war
* Option hinzugefügt, um den Preis für Gastnutzer auszublenden (B2B-Option)
* Einige Links im Backend für Dokumentation und Bewertungen hinzugefügt
* Kompiliert für Shopware 6.5.x.x
* Verbesserte Backend-Geschwindigkeit-die Subscriber-logik wird nun nur noch im Frontend geladen
* Fallback-Lösungen für leere Warenkorbartikel wie benutzerdefinierte Elemente aus anderen Plugins hinzugefügt
* Kompatibilität mit Rabatt- und Gutschein-Plugins hinzugefügt
* Kompiliert für Shopware 6.5.x.x
* Integration des Didomi-Einwilligungsbanners
* Kompilierung für Shopware 6.5.x.x
* Neue Abonnentenlogik für verbesserte Kompatibilität und Leistung. Diese neue Logik verbessert die Kompatibilität mit Plugins, die Context- oder Page-Objekte erweitern.
* Das Skript für das ga4product-Objekt wird nun als JSON geladen, wodurch die Anzahl der DOM-Objekte reduziert wird.
* Hinzufügen von google_business_vertical: ‚retail‘ auf E-Commerce-Ebene für alle ga4-Ereignisse gemäß der neuen ga4-Dokumentation.
* Hinzufügen von customer_type (neu/wiederkehrend) auf E-Commerce-Ebene für Kauf-ga4-Ereignisse gemäß der neuen ga4-Dokumentation.
* Verbesserte UserCentrics V2-Kompatibilität für Skripte, einschließlich automatischer Blockierung.
* Kompiliert für Showare 6.5.x.x
* Fallbacks für fehlende Versandkosten im Kaufvorgang für benutzerdefinierte Checkouts hinzugefügt.
* Kompiliert für Shopware 6.5.x.x
* Neues benutzerdefiniertes Ereignis hinzugefügt, um die Aktualisierung der Einwilligung für den erweiterten Einwilligungsmodus auszulösen.
* ga4_event-Label für alle Ereignisse hinzugefügt, das als Fallback dient, wenn Einwilligungstools verwendet werden, die nicht mit unserem Plugin kompatibel sind. Dies wurde für alle ga4-Ereignisse hinzugefügt.
* Verbesserte Logik für affiliateCode und campaignCode.
* Verbesserte Logik für den Stückpreis für benutzerdefinierte Produkt-Plugins.
* Kompiliert für Shopware 6.5.x.x
* analytics_storage, ad_storage, ad_personalization und ad_user_data können jetzt für GA4 gewährt werden, wenn Google Ads deaktiviert ist.
* Verbesserte UUID-Prüfung für benutzerdefinierte Funktionen zur Kompatibilität mit Pseudo-Elementen in Listing-Collections.
*Verzögerung für Kaufereignisse hinzugefügt, sodass diese in den serverseitigen Tag-Manager-Konfigurationen erst nach den Ereignissen add_payment und add_shipping geladen werden.
* UTM-Parameter-Tracking für Agenten und Shopping-Assistenten hinzugefügt.
* Kompiliert für Shopware 6.5.x.x
* Verzögerung des Ladens des Tag-Manager-Skripts für den clientseitigen Tag-Manager
* Verzögerung des Ladens des Tag-Manager-Skripts für den serverseitigen Tag-Manager
* Mehrwert in den meisten Pinterest-Ereignissen
* Neue Variablen hinzugefügt: Sprache, Land, Landingpage (true ist die erste Seite, die in der Sitzung besucht wurde)
* Viewsearch-Ergebnisereignis für Meta-Anzeigen korrigiert
* Google-Anzeigen-Elemente im Kaufereignis korrigiert
* Fehlende Kategorien im view_item_list-Ereignis für Paginierung korrigiert (n-te Seite der Paginierung)
* Suchvorschlag-Abonnent korrigiert (in einigen Fällen verhinderte dies das Schließen des Suchvorschlags-Modals)
* Kompiliert für Shopware 6.5.x.x
* Mehrwert für Meta-Ads-Ereignis „add_to_cart” hinzugefügt
* Array mit Inhaltselementen für das Ereignis „initiatecheckout” (Meta-Ads) korrigiert
* Bugfix für internationales Telefonnummernformat
* Logik für „customer_lifetime_value” mit Speicher verbessert
* Optionaler Wert und Währung für Meta-Ereignisse hinzugefügt (in der Dokumentation optional, aber tatsächlich erforderlich, jetzt vorhanden)
* Kompiliert für Shopware 6.5.x.x
* Korrektur für das Ereignis „begin_checkout” bei Verwendung von Paypal Express Checkout
* Korrektur für Cookies für Shopware 6.7.4.0 bei Verwendung des Standard-Cookie-Banners von Shopware
* Kompiliert für Shopware 6.5.x.x
* Korrektur für leere CMS-Elemente FrontendSubscriber
* Kompiliert für Shopware 6.5.x.x
* Korrektur für Cross-Selling-Entitätsanfragen in CMS-Seiten
* Kundengruppe im zusätzlichen Array beim Kaufereignis hinzugefügt, um das Filtern nach Kundengruppen in Google Analytics zu ermöglichen. Befindet sich in addition.customer_group
* Kompiliert für Shopware 6.5.x.x
* Korrektur der Cookie-Logik für Google Ads und Tiktok
* Kompiliert für Shopware 6.5.x.x
* Für einige Shops, die Produkte mit Nicht-ASCII-Zeichen und einschließlich Tabulatoren oder Zeilenumbrüchen importieren, wurde eine Kürzung des Titels hinzugefügt.
* Kompiliert für Shopware 6.5.x.x
* Neue Cookie-Logik für Shopware 6.7.3.0 eingeführt
* Option für Netto-Brutto-Preise für Google Analytics hinzugefügt. Wir empfehlen, den Nettopreis zu verwenden, wie in der Dokumentation angegeben. https://m-om.link/WVOSYC
* Bitte stellen Sie durch Speichern sicher, dass die neue Einstellung Ihren Wünschen entspricht. Brutto entspricht den vorherigen Versionen des Plugins. Netto ist die neue Methode und wird von GA4 empfohlen.
* Schnellkorrektur für Shopware 6.4 bezüglich eines in 1.5.28 eingeführten Fehlers auf der Produktseite. Dieses Problem betraf nur Shopware Version 6.4.x.x
* Verbesserte new_customer-Wertlogik (Einführung von customer_type wie in der neuen Dokumentation von Google Ads)
* Umbenennung von customer_type in account_type aufgrund von Google Ads
* Kompiliert für Shopware 6.5.x.x
* Verbesserte 'consent'->'default' für Userscentrics und Cookiebot
* kompiliert für Shopware 6.5.x.x
* Fehlerbehebung für Meta-Tracking und CookieFirst-Einwilligungsbanner
* Kompiliert für Shopware 6.5.x.x
* Versionskennzeichnung für veralteten Aufruf von getCrossSellings auf der Produktseite hinzugefügt
* kompiliert für Shopware 6.5
* Schnellkorrektur für customer_life_value
* Kompiliert für Shopware 6.5.x.x
* Verbesserte Kompatibilität für ccm19 mit serverseitigem Tag-Manager
* Für Shopware 6.4.x.x kompiliert
* Fehler behoben, durch den die QuickView die Kategorien um eine Ebene verschoben meldete (`item_category2` fehlte, tiefere Ebenen rückten auf) und `item_variant` ein nachgestelltes Leerzeichen enthielt. Jetzt werden dieselben Kategorien und dieselbe Variante wie auf der Produktdetailseite gemeldet (G4SW6-131)
* Fehler behoben, durch den die Produktliste nach dem Filtern, Sortieren oder einem Seitenwechsel in `view_item_list` um eine Ebene verschobene Kategorien und `item_variant` mit einem nachgestellten Leerzeichen meldete (G4SW6-131)
* Fehler behoben, durch den `item_list_name` in Kategorielisten unter Shopware 6.7 noch den SEO-Titel der Seite statt des Kategorienamens enthielt. Der Kategoriename wird jetzt aus der Kategorie der Seite gelesen; der Seitentitel wird nie als Listenname verwendet (G4SW6-133)
* Fehler behoben, durch den `select_item` aus den Suchvorschlägen `price` als Zeichenfolge und immer als Bruttopreis übermittelte. Der Preis ist jetzt eine Zahl und berücksichtigt `taxConfiguration` (Netto/Brutto) sowie die erweiterten Preise – wie in der Produktliste und in `view_item`. `item_variant` enthält kein nachgestelltes Leerzeichen mehr (G4SW6-140)
* Fehler behoben, durch den Warenkorbrabatte (Aktionen, z. B. ein Kundengruppenrabatt) nur in `purchase` auf die Artikel verteilt wurden. `view_cart`, `begin_checkout`, `add_shipping_info` und `add_payment_info` melden jetzt den Preis nach Abzug des Rabatts, `items[].discount` sowie die Aktion als `coupon` des Artikels. Damit entspricht die Summe aus `price × quantity` in allen Checkout-Events dem Wert von `value` (G4SW6-122)
* Parameter `search_type` zum Event `search` hinzugefügt: `suggest` für Suchvorschläge und `results` für die Suchergebnisseite. GTM-Setups können nach `search_type = results` filtern, um nur abgeschickte Suchen zu zählen (G4SW6-124)
* Fehler behoben, durch den die Suchvorschläge für jeden unvollständigen Suchbegriff ein `search`-Event sendeten und denselben Begriff wiederholt meldeten. Das Event wird jetzt nach einer Sekunde ohne Eingabe und nur einmal pro Suchbegriff und Seitenaufruf gesendet (G4SW6-124)
* Fehler behoben, durch den `item_variant` in Checkout-Events und `purchase` leer war, wenn das Produkt nicht im Browser gespeichert war (z. B. bei einem nach der Anmeldung auf einem anderen Gerät wiederhergestellten Warenkorb). Die Variante wird jetzt zusammen mit dem Produkt auf der Warenkorb-, Bestätigungs- und Abschlussseite geladen (G4SW6-130)
* Fehler behoben, durch den bei `remove_from_cart` auf der Warenkorbseite `/checkout/cart` `item_variant` fehlte und `item_list_name: "checkout"` gemeldet wurde. Jetzt werden dieselben Artikeldaten wie im Offcanvas-Warenkorb gemeldet, einschließlich der Liste, aus der das Produkt hinzugefügt wurde (G4SW6-130)
* Fehler behoben, durch den die Platzhalter `product` und `checkout` als `item_list_id` / `item_list_name` gesendet wurden. Sie werden jetzt in allen Events weggelassen; echte Listen (Kategorien, Suchergebnisse, Merkliste) bleiben erhalten (G4SW6-130)
* Fehler behoben, durch den Lieferaktionen (z. B. ein Versandrabattcode) in `view_cart`, `begin_checkout`, `add_shipping_info`, `add_payment_info` und `purchase` in allen Kanälen (GA4, Google Ads, Meta, Microsoft Ads, Pinterest, TikTok, OpenAI) als zusätzliche Artikel ohne `item_id` gesendet wurden. Aktionspositionen werden nie als Artikel gemeldet; eine Lieferaktion reduziert nur `shipping` (G4SW6-141)
* Fehler behoben, durch den `view_item` und `view_item_list` statt des Preises für die gemeldete Menge die günstigste Staffel der erweiterten (regelbasierten) Preise meldeten. `items[].price` ist jetzt der zu `items[].quantity` gehörende Stückpreis und wird wie im Warenkorb ausgewählt (G4SW6-135)
* Fehler behoben, durch den `select_item` und `add_to_wishlist` die günstigste Preisstaffel meldeten. Sie melden jetzt den Preis für ein Stück
* Fehler behoben, durch den Mengen oberhalb der letzten Preisstaffel im Data Layer nicht die letzte, nach oben offene Staffel verwendeten
* Fehler behoben, durch den die ursprüngliche Produktliste und die per AJAX gerenderte Liste (Filter, Seitenwechsel) für dasselbe Produkt unterschiedliche Preise meldeten. Die günstigste Preisstaffel bleibt als Information in `extra.cheapestAdvancedPrice` verfügbar
* Fehler behoben, durch den `view_item` die Menge 1 meldete, obwohl für das Produkt eine Mindestabnahmemenge gilt. Die Option `Use minimum purchase quantity in view_item` (standardmäßig aktiviert) meldet auf der Produktdetailseite und in der QuickView `quantity = minPurchase` und `value = price × quantity` (G4SW6-126)
* Fehler behoben, durch den `item_category` die Navigationskategorie des Verkaufskanals enthielt. Jetzt wird die erste Ebene darunter als `item_category` gemeldet (G4SW6-132)
* Fehler behoben, durch den beim Kategorie-Fallback Kategorien aus anderen Kategoriebäumen (z. B. aus einem anderen Verkaufskanal) verwendet wurden. Es werden nur Kategorien unterhalb der Navigationskategorie des aktuellen Verkaufskanals berücksichtigt. Eine Hauptkategorie außerhalb dieses Baums wird ignoriert; Produkte ohne Kategorie in diesem Baum erhalten kein `item_category`
* Fehler behoben, durch den `coupon` in `begin_checkout` und `purchase` statt des eingelösten Gutscheincodes den Namen der Aktion enthielt. Jetzt wird der Code gemeldet; automatische Aktionen ohne Code behalten ihren Namen (G4SW6-115)
* Fehler behoben, durch den `coupon` bei Aktionen mit dem Geltungsbereich „Versand“ fehlte. Deren Codes werden aus den Warenkorbaktionen gelesen
* Fehler behoben, durch den die per AJAX gerenderte Produktliste (Filter, Seitenwechsel) statt der erweiterten Preise des aktuellen Kontexts den Preis aus dem Feld „Allgemein“ meldete (DISCO-335989)
* Fehler behoben, durch den die per AJAX gerenderte Produktliste trotz `taxConfiguration` = Brutto den Nettopreis meldete und die QuickView immer den Nettopreis meldete
* Fehler behoben, durch den alle Bestellungen `Direct / Direct` zugeordnet wurden, wenn die Landingpage mit UTM-Parametern aus einem Cache (Shopware-HTTP-Cache, Varnish, CDN) ausgeliefert wurde. Die Herkunft wurde nur auf dem Server erkannt, sodass nur der Besucher, der den Cache-Miss auslöste, korrekt zugeordnet wurde
* Clientseitige Erfassung der UTM- und Klickparameter hinzugefügt (First-Party-Cookie `disco_ga4_traffic_origin`). Der Server verwendet diese beim Checkout, wenn er die Parameter selbst nie gesehen hat. Die Erkennungslogik wird gemeinsam genutzt; die Erfassung enthält keine personenbezogenen Daten und ihre Lebensdauer richtet sich nach der Speicherdauer der Plugin-Daten
* Konfiguration `Capture tracking parameters in the browser` (UTM Parameter Tracking) hinzugefügt; standardmäßig aktiviert
* Fehler behoben, durch den `Direct / Direct` bei der ersten Anfrage gespeichert wurde und jede später erkannte Herkunft derselben Sitzung blockierte. Der Platzhalter wird jetzt ersetzt, sobald eine tatsächliche Quelle erkannt wird (z. B. ein Anzeigenklick nach einem direkten Besuch)
* Fehler behoben, durch den ein neuer externer Referrer eine zuvor gespeicherte Herkunft derselben Sitzung nicht überschrieb
* Fehler behoben, durch den Parameter von Rakuten Advertising (`ranMID`, `ranEAID`, `ranSiteID`) nie erkannt wurden, weil die Namen der Query-Parameter in Kleinbuchstaben normalisiert werden
* Fehler behoben, durch den der HTTP-Cache für UTM-Anfragen umgangen wurde, obwohl die Traffic-Quelle bereits in der Sitzung gespeichert war. In diesem Fall wird der Cache jetzt nicht mehr umgangen
* Fehler behoben, durch den der HTTP-Cache umgangen wurde, bevor der Verkaufskanal aufgelöst war
* Fehler behoben, durch den der HTTP-Cache trotz deaktivierter UTM-Parameter-Verfolgung umgangen wurde
* Fehler behoben, durch den die Sitzung bereits vor der Prüfung der Einstellung zur UTM-Parameter-Verfolgung gestartet wurde. Dadurch war die Antwort selbst bei deaktivierter Verfolgung nicht cachebar
* Konfiguration `Bypass HTTP cache for UTM requests` (UTM Parameter Tracking) hinzugefügt. Shops, die von Lastspitzen durch automatisierte Link-Scanner betroffen sind, können UTM-URLs damit wieder aus dem HTTP-Cache ausliefern
* Fehler behoben, durch den Rabatte auf Bestellebene (Aktionen, Gutscheine) nicht in den Artikelpreisen des `purchase`-Events berücksichtigt wurden, wie es Google Analytics 4 verlangt (`price` = Preis nach dem Artikelrabatt, `value` = Summe aus `price * quantity`). Für die Verteilung wird die `composition`-Payload der Shopware-Aktion verwendet; Gutscheine von Drittanbietern werden proportional zu den Positionssummen verteilt
* Fehler behoben, durch den ein separater Bestellrabatt vom `purchase`-Wert abgezogen wurde. Das übergeordnete Feld `discount` des `purchase`-Events enthält jetzt nur noch Google-Ads-Daten
* Fehler behoben, durch den sich die Artikelpreise bei Warenkörben mit mehreren Steuersätzen im `purchase`-Event nicht zum richtigen `value` summierten. Jeder Artikel wird jetzt mit seinem eigenen Steuersatz umgerechnet
* Fehler behoben, durch den `items[].index` im `purchase`-Event Lücken aufwies. Die Indizes lauten jetzt `0, 1, 2, ...`
* Fehler behoben, durch den die Platzhalterlisten `product` und `checkout` als `item_list_id` / `item_list_name` gesendet wurden
* Fehler behoben, durch den der Data Layer bereits mehrere Pushes vor dem `purchase`-Event geleert wurde. Er wird jetzt unmittelbar vor dem Event geleert, sodass Google und die anderen Kanäle keine leeren Werte auslesen können
* Fehler behoben, durch den `customer_type` / `new_customer` bei der ersten Bestellung eines Gastkunden den Wert `returning` hatte. Da Gastkunden vor dem Rendern der Abschlussseite abgemeldet werden, wird die Bestellhistorie jetzt aus der Bestellung statt aus dem Local Storage gelesen
* EasyCoupon-Positionen und Lieferrabatte werden nicht auf die Artikel verteilt
* Fehler behoben, durch den `select_item` ohne `ecommerce.currency` gesendet wurde
* Fehler behoben, durch den `select_item`, `add_to_wishlist`, `view_cart`, `begin_checkout`, `add_shipping_info`, `add_payment_info` und `add_to_cart` (Warenkorbseite) das GA4-E-Commerce-Objekt auch bei deaktiviertem GA4 sendeten
* Fehler bei Suchvorschlägen behoben: Ein Backslash oder Apostroph im Suchbegriff oder Produktnamen beschädigte das Skript oder wurde in `item_name` als `'` angezeigt. Die Werte werden jetzt für den JavaScript-Kontext JSON-kodiert
* Fehler bei Suchvorschlägen behoben: `parentId` war immer leer und `quantity` fehlte (der Wert für Microsoft Ads war `NaN`)
* Fehler behoben, durch den Suchbegriff, Kategorie, Verkaufskanal sowie die Namen der Versand- und Zahlungsarten nicht für den JavaScript-Kontext kodiert wurden
* Fehler bei Suchvorschlägen behoben: Beim Klick auf einen Link ohne Preis (z. B. einen Kategorie- oder Suchbegriffslink) trat ein `TypeError` auf. Preise mit Währungssymbolen oder lokalen Trennzeichen (`CHF 18.–`, `1'234.50`, `18,00 €`) werden jetzt verarbeitet; statt `NaN` wird `price` weggelassen
* Fehler behoben, durch den Änderungen der Zahlungs- oder Versandart bei angepasstem Markup (z. B. gespeicherten Saferpay-Karten) einen `TypeError` auslösten. Der Name wird jetzt ersatzweise aus dem Label-Text gelesen; `add_payment_info` / `add_shipping_info` werden weiterhin gesendet
* Fehler behoben, durch den `remove_from_cart` nicht gesendet wurde, wenn die Warenkorbposition keine Klasse `.line-item-row` hatte (z. B. bei Shogun-basierten Themes). Als Fallback wird `.line-item` verwendet und die Menge aus den ausgeblendeten Positionsdaten gelesen
* Fehler behoben, durch den `view_cart` nach jedem Neuladen des Offcanvas-Warenkorbs (Mengenänderung, Entfernen) gesendet wurde. Das Event wird jetzt einmal pro Öffnen des Offcanvas-Warenkorbs gesendet
* Fehler behoben, durch den `item_list_name` in Kategorielisten statt des Kategorienamens den Seitentitel (SEO-Titel) verwendete. Der Seitentitel dient jetzt nur noch als Fallback
* Fehler behoben, durch den der Consent Mode `ad_storage`, `ad_user_data` und `ad_personalization` gewährte, wenn nur Analytics akzeptiert wurde. Die Einwilligungen für Analytics und Werbung sind jetzt getrennt; jedes Update sendet ausdrücklich `granted` oder `denied`, und ein Widerruf wird ohne Neuladen weitergegeben
* Fehler bei der Einwilligung für Microsoft UET behoben: Der Standardwert ist jetzt `denied`, und jede Änderung der Einwilligung sendet ein Update mit `granted` oder `denied`
* Fehler behoben, durch den `purchase` über HTTP nicht gesendet wurde, wenn `crypto.subtle` nicht verfügbar war. `purchase` wird jetzt ohne die gehashten Felder gesendet
* Fehler behoben, durch den `add_to_cart` / `remove_from_cart` einen `TypeError` auslösten, wenn keine Artikeldaten verfügbar waren, z. B. bei Mengenänderungen auf der Warenkorbseite
* Fehler bei `taxConfiguration = netto` (Bruttopreise im Shop) behoben: `value` entsprach nicht der Summe aus `price × quantity`, und `add_to_cart` meldete bei größeren Mengen einen zu niedrigen Wert. Der Nettoartikelpreis wird jetzt aus der Nettopositionssumme abgeleitet; GA4-Artikelpreise behalten bis zu sechs Nachkommastellen
* Fehler behoben, durch den der Ads-Wert bei Berechnung aus einem gerundeten Nettopreis um einen oder mehrere Cent abwich. Brutto-Ads-Werte verwenden jetzt direkt den Bruttopreis, Netto-Ads-Werte die Nettopositionssumme
* Kompiliert für Shopware 6.4.x.x
* Problem behoben, bei dem die Rabattberechnung von der Reihenfolge der Artikel abhing
* Problem behoben, bei dem die Versandsteuer inkonsistent war
* Problem behoben, bei dem Netto- und Bruttopreis bei Checkout-Ereignissen inkonsistent waren (add_to_cart und begin_checkout nicht identisch)
* Problem mit TrafficOriginCacheSubscriber behoben: Cache-Umgehung (privat/kein Shop) auch für externe Referrer ohne UTM, z. B. organische Google-Suche
* Problem behoben: Bei taxConfiguration = gross enthielt der GA4-Wert die Versandkosten;
* Problem behoben: Anzeigenwerte waren zu niedrig, wenn ein Warenkorb-Rabatt angewendet wurde
* Problem behoben: "TrafficOriginCacheSubscriber" liest "utmTracking" ohne Vertriebskanal-ID, während "FrontendSubscriber" es mit einer solchen liest - das Verhalten variiert je nach Vertriebskanal
* Problem behoben: HTTP-Cache verschleiert die Quelle (UTM-/Klick-IDs)
* Problem behoben: Bei UTM-Tracking können Wiederholungsbesuche von Zahlungsanbietern (Wallee, HeyLight) die Kampagnenquelle überschreiben
* sendPurchaseAdditionalData: Migration für bestehende Installationen und Empfehlungen für GTM-Tags mit "additional" hinzugefügt
* Problem behoben, bei dem die Produktzuordnung in der Fallback-Vorlage fehlte (ga4Product in disco_hidden_line_items_information)
* Verbesserung: Die Bedeutung von "data-tax" und "data-shipping" in den Checkout- und Header-Vorlagen wurde vereinheitlicht
* Kompiliert für Shopware 6.4.x.x
* Neues Einwilligungsbanner WebCAre
* Fehlerbehebung: UTM-Parameter, umgeht nun den Cache und ignoriert /_esi/-Anfragen
* Fehlerbehebung: „add_payment“ und „add_shipping“ wurden bei einer zweiten Bestellung in derselben Sitzung nicht ausgelöst.
* Fehlerbehebung: Rundung bei größeren Mengen
* Weitere Kanäle für UTM-Parameter hinzugefügt: ChatGPT Ads, Hubspot Ads, ShareASale, Rakuten Advertising
* Leistungsoptimierung für „add_to_cart“ (Reduzierung um 400 ms)
* Fehlerbehebung: In bestimmten Fällen wurde die 0 in der Telefonnummer entfernt.
* Fehlerbehebung: Bestellversion im benutzerdefinierten Wert
* Fehlerbehebung: Der Bruttopreis inklusive Versand enthielt zusätzliche Steuern (die Versandkosten waren bereits in der Gesamtsteuer enthalten, werden nun separat ausgewiesen).
* Fehlerbehebung: Der Bruttogesamtwert war bei mehreren in der Bestellung enthaltenen Steuersätzen falsch
* Fehlerbehebung: Verschachtelte Einzelposten für Stücklisten und Bundle-Plugins (wie Pickware)
* Neue Konfiguration für Kundendaten in einem zusätzlichen Array hinzugefügt
* Fehlerbehebung: Kundendaten im zusätzlichen Array sind nur dann nicht vorhanden, wenn die Einwilligung aktiv ist und die Konfiguration „sendPurchaseAdditionalData“ auf „aktiv“ gesetzt ist
* Fehlerbehebung: „utm_campaign“ ging in einigen Fällen verloren -> „utm_source“ und „utm_medium“ sind nicht leer -> beide beibehalten und „utm_campaign“ erhalten, falls vorhanden
* Behebung: PHP-Fehler in einigen Fällen im Abonnentenbereich
* Behebung: Währung hatte für einige Länder (z. B. Polen) nicht den richtigen ISO-Code
* Behebung: „select_item“ fehlte bei Verwendung des Plugins „QuickView“
* Behebung: Währung fehlte auf E-Commerce-Ebene im „view_item_list“-Ereignis
* Kompiliert für Shopware 6.4.x.x
* idealo_de zur UTM-Source-Prüfung hinzugefügt (für den Fall, dass utm_medium leer ist, utm_source jedoch idealo_de lautet)
* Zusätzlichen Fallback für die UTM-Source-Parameter hinzugefügt, wenn mindestens einer der Parameter utm_source oder utm_medium nicht leer ist, aber von unserem Plugin nicht erkannt wird.
* ACHTUNG: Die UTM-Source-Logik wurde so aktualisiert, dass wir zuerst utm_source und utm_medium zurückgeben, sofern beide nicht leer sind.
* Bedingung für Rabatt ersetzt, um die Kompatibilität mit dem Easy Coupon-Plugin zu gewährleisten
* Fehler behoben: generate_lead funktionierte seit der Einführung von ChatGPT-Ads nicht mehr
* Gehashtes userId als sha256_user_id hinzugefügt (user_id ist weiterhin vorhanden und nicht gehasht)
* Negativer Wert im Kauf für Rabattwerte behoben, die größer sind als der Gesamtwert der Artikel
* Kompiliert für Shopware 6.4.x.x
* Kompatibilitätsproblem mit dem Swag Custom Products-Plugin behoben, das das Repository des Vertriebskanals anpasste.
* Kompiliert für Shopware 6.4.x.x
* Das benutzerdefinierte Such-Plugin für spezielle Entitäten wie Blog oder Hersteller, das seit der letzten Version 1.7.3 nicht mehr funktionierte oder PHP-Fehler verursachte, wurde behoben.
* Die Datenqualität der Produkte (Marke und Kategorie) auf den Checkout-Seiten wurde verbessert. Es wird nun Subscriber anstelle von Storage verwendet. Storage bleibt als Fallback erhalten.
* ChatGPT-Ads-Datalayer und -Ereignisse hinzugefügt
* Eindeutige event_id für jedes Ereignis hinzugefügt
* Rabattlogik für das Easy-Coupon-Plugin korrigiert
* Kompiliert für Shopware 6.4.x.x
* Fehler behoben: Das login event wurde seit der letzten Version 1.7.3 auf jeder Seite ausgelöst
* Fehler behoben: Das purchase event wurde seit der letzten Version 1.7.3 beim Aktualisieren der Seite ausgelöst
* Fehler behoben: Das add_payment_info event wurde seit der letzten Version 1.7.3 im Checkout-Prozess zweimal ausgelöst
* Fehler behoben: Das add_shipping_info event wurde nach der letzten Version 1.7.3 im Checkout-Prozess zweimal ausgelös
* Fehler behoben: Der Gutscheincode wurde nach der letzten Version 1.7.3 nicht ordnungsgemäß im lokalen Speicher gespeichert
* Einige nach der letzten Version 1.7.3 noch vorhandene Konsolenprotokolle wurden entfernt
* Fehler behoben: Die Logik für Gutscheine beim Listenpreis (Streichpreis) wurde korrigiert, da es nach der letzten Version 1.7.3 zu Abweichungen beim Nettopreis kam
* Kompiliert für Showpare 6.4.x.x
* Verbesserte Kompatibilität mit anderen Plugins, wenn CMS-Seiten mit leeren CMS-Elementen vorhanden sind.
* Verbesserte erweiterte Preisoptionen: Preise nach beliebigen Kriterien (Vertriebskanal usw.) und gestaffelte Preise.
* Verbesserte Preisberechnung an der Kasse; in einigen Fällen fehlten Preise.
* Behebung eines JS-Fehlers beim Entfernen einer Aktion aus dem Warenkorb.
* Option zum Unterdrücken von Locastorage-Einträgen mit TTL hinzugefügt.
* Kompiliert für Shopware 6.4.x.x
* Korrektur für das Ereignis "remove_from_cart", wenn Meta aktiv ist
* Einige zusätzliche Prüfungen in FrontendSubscriber für leere Cross-Selling-Elemente hinzugefügt
* Kompiliert für Shopware 6.4.x.x
* Verbesserte Kompatibilität mit über QuickView geladenen Varianten (Shopware Evolve CMS-Elemente)
* Kompiliert für Shopware 6.4.x.x
* Null-Prüfung in der Cross-Selling-Logik hinzugefügt, um den fatalen Fehler „Call to a member function getCrossSellings() on null“ zu verhindern
* Kompatibilität mit QuickView (Shopware Evolve CMS-Elemente) hinzugefügt:
- Verbesserte QuickView-Integration, um das Ereignis „view_item“ anstelle von „select_item“ auszulösen, wenn QuickView für dieses Produkt aktiv ist.
- Sichergestellt, dass „add_to_cart“ in der QuickView-Modalansicht ausgelöst wird
* Fehler mit null-Daten im Kategorie-Breadcrumb behoben (in seltenen Fällen wurde folgende Warnung ausgelöst: „Warnung: Versuch, auf Array-Offset bei null in GA4TwigExtensions zuzugreifen“)
* Fehler im Wert behoben, der im Kauf-Ereignis für Meta enthalten war
* Option hinzugefügt, um den Preis für Gastnutzer auszublenden (B2B-Option)
* Einige Links im Backend für Dokumentation und Bewertungen hinzugefügt
* Kompiliert für Shopware 6.4.x.x
* Verbesserte Backend-Geschwindigkeit - die Subscriber-logik wird nun nur noch im Frontend geladen
* Fallback-Lösungen für leere Warenkorbartikel wie benutzerdefinierte Elemente aus anderen Plugins hinzugefügt
* Kompatibilität mit Rabatt- und Gutschein-Plugins hinzugefügt
* Kompiliert für Shopware 6.4.x.x
* Integration des Didomi-Einwilligungsbanners
* Kompilierung für Shopware 6.4.x.x
* Neue Abonnentenlogik für verbesserte Kompatibilität und Leistung. Diese neue Logik verbessert die Kompatibilität mit Plugins, die Context- oder Page-Objekte erweitern.
* Das Skript für das ga4product-Objekt wird nun als JSON geladen, wodurch die Anzahl der DOM-Objekte reduziert wird.
* Hinzufügen von google_business_vertical: ‚retail‘ auf E-Commerce-Ebene für alle ga4-Ereignisse gemäß der neuen ga4-Dokumentation.
* Hinzufügen von customer_type (neu/wiederkehrend) auf E-Commerce-Ebene für Kauf-ga4-Ereignisse gemäß der neuen ga4-Dokumentation.
* Verbesserte UserCentrics V2-Kompatibilität für Skripte, einschließlich automatischer Blockierung.
* Kompiliert für Showare 6.4.x.x
* Fallbacks für fehlende Versandkosten im Kaufvorgang für benutzerdefinierte Checkouts hinzugefügt.
* Kompiliert für Shopware 6.4.x.x
* Neues benutzerdefiniertes Ereignis hinzugefügt, um die Aktualisierung der Einwilligung für den erweiterten Einwilligungsmodus auszulösen.
* ga4_event-Label für alle Ereignisse hinzugefügt, das als Fallback dient, wenn Einwilligungstools verwendet werden, die nicht mit unserem Plugin kompatibel sind. Dies wurde für alle ga4-Ereignisse hinzugefügt.
* Verbesserte Logik für affiliateCode und campaignCode.
* Verbesserte Logik für den Stückpreis für benutzerdefinierte Produkt-Plugins.
* Kompiliert für Shopware 6.4.x.x
* analytics_storage, ad_storage, ad_personalization und ad_user_data können jetzt für GA4 gewährt werden, wenn Google Ads deaktiviert ist.
* Verbesserte UUID-Prüfung für benutzerdefinierte Funktionen zur Kompatibilität mit Pseudo-Elementen in Listing-Collections.
*Verzögerung für Kaufereignisse hinzugefügt, sodass diese in den serverseitigen Tag-Manager-Konfigurationen erst nach den Ereignissen add_payment und add_shipping geladen werden.
* UTM-Parameter-Tracking für Agenten und Shopping-Assistenten hinzugefügt.
* Kompiliert für Shopware 6.4.x.x
* Verzögerung des Ladens des Tag-Manager-Skripts für den clientseitigen Tag-Manager
* Verzögerung des Ladens des Tag-Manager-Skripts für den serverseitigen Tag-Manager
* Mehrwert in den meisten Pinterest-Ereignissen
* Neue Variablen hinzugefügt: Sprache, Land, Landingpage (true ist die erste Seite, die in der Sitzung besucht wurde)
* Viewsearch-Ergebnisereignis für Meta-Anzeigen korrigiert
* Google-Anzeigen-Elemente im Kaufereignis korrigiert
* Fehlende Kategorien im view_item_list-Ereignis für Paginierung korrigiert (n-te Seite der Paginierung)
* Suchvorschlag-Abonnent korrigiert (in einigen Fällen verhinderte dies das Schließen des Suchvorschlags-Modals)
* Kompiliert für Shopware 6.4.x.x
* Mehrwert für Meta-Ads-Ereignis „add_to_cart” hinzugefügt
* Array mit Inhaltselementen für das Ereignis „initiatecheckout” (Meta-Ads) korrigiert
* Bugfix für internationales Telefonnummernformat
* Logik für „customer_lifetime_value” mit Speicher verbessert
* Optionaler Wert und Währung für Meta-Ereignisse hinzugefügt (in der Dokumentation optional, aber tatsächlich erforderlich, jetzt vorhanden)
* Kompiliert für Shopware 6.4.x.x
* Korrektur für das Ereignis „begin_checkout” bei Verwendung von Paypal Express Checkout
* Korrektur für Cookies für Shopware 6.7.4.0 bei Verwendung des Standard-Cookie-Banners von Shopware
* Kompiliert für Shopware 6.4.x.x
* Korrektur für leere CMS-Elemente FrontendSubscriber
* Kompiliert für Shopware 6.4.x.x
* Korrektur für Cross-Selling-Entitätsanfragen in CMS-Seiten
* Kundengruppe im zusätzlichen Array beim Kaufereignis hinzugefügt, um die Filterung nach Kundengruppen in Google Analytics zu ermöglichen. Befindet sich in addition.customer_group
* Kompiliert für Shopware 6.4.x.x
* Korrektur der Cookie-Logik für Google Ads und Tiktok
* Kompiliert für Shopware 6.4.x.x
* Für einige Shops, die Produkte mit Nicht-ASCII-Zeichen und einschließlich Tabulatoren oder Zeilenumbrüchen importieren, wurde eine Kürzung des Titels hinzugefügt.
* Kompiliert für Shopware 6.4.x.x
* Neue Cookie-Logik für Shopware 6.7.3.0 eingeführt
* Option für Netto-Brutto-Preise für Google Analytics hinzugefügt. Wir empfehlen, den Nettopreis zu verwenden, wie in der Dokumentation angegeben. https://m-om.link/WVOSYC
* Bitte stellen Sie durch Speichern sicher, dass die neue Einstellung Ihren Wünschen entspricht. Brutto entspricht den vorherigen Versionen des Plugins. Netto ist die neue Methode und wird von GA4 empfohlen.
* Schnellkorrektur für Shopware 6.4 bezüglich eines in 1.5.28 eingeführten Fehlers auf der Produktseite. Dieses Problem betraf nur Shopware Version 6.4.x.x
* Verbesserte new_customer-Wertlogik (Einführung von customer_type wie in der neuen Dokumentation von Google Ads)
* Umbenennung von customer_type in account_type aufgrund von Google Ads
* Kompiliert für Shopware 6.5.x.x
* Verbesserte 'consent'->'default' für Userscentrics und Cookiebot
* kompiliert für Shopware 6.4.x.x
* Fehlerbehebung für Meta-Tracking und CookieFirst-Einwilligungsbanner
* Kompiliert für Shopware 6.4.x.x
* Versionskennzeichnung für veralteten Aufruf von getCrossSellings auf der Produktseite hinzugefügt
* kompiliert für Shopware 6.4
* Schnellkorrektur für customer_life_value