Google Analytics in Shopware 6 einbinden

Die Google-Integration bei Shopware 6 wird voraussichtlich Teil von Shopware 6.2 sein. Wer nicht darauf warten möchte kann Google Analytics auch direkt über das Template einbinden.

Shopware 6 Roadmap: https://www.shopware.com/de/roadmap/

Hierzu lege ich die Datei base.html.twig in meinem Theme an:

 

/custom/plugins/MyCustomTheme/src/Resources/views/storefront/base.html.twig

 

In dieser Datei leite ich nun die Datei aus dem Shopware-Template ab und überschreibe den Block base_body_script.

 

{% sw_extends '@Storefront/storefront/base.html.twig' %} 

{% block base_body_script %} 
    {{ parent() }} 
     <script async src="https://www.googletagmanager.com/gtag/js?id=UA-123456789-0"></script> <script>
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag('js', new Date());
    gtag('config', 'UA-123456789-2', { 'anonymize_ip': true });
    </script> 
{% endblock %}

 

Um auch Conversions tracken zu können klinke ich mich auch in die Checkout Finish Funktion ein:

 

/custom/plugins/MyCustomTheme/src/Resources/views/storefront/page/checkout/finish/index.html.twig

 

{% sw_extends '@Storefront/storefront/base.html.twig' %} 

{% sw_extends '@Storefront/storefront/page/checkout/finish/index.html.twig' %}

{% block base_footer %}
    {{ parent() }}

    <script>
    
        {% set analyticsItems = [] %}
        {% for lineKey,lineItem in page.order.nestedLineItems %}
            {% set analyticsItemLine = {
                id: lineItem.payload.productNumber,
                name: lineItem.label,
                quantity: lineItem.quantity,
                price: lineItem.totalPrice
            } %}
            {% set analyticsItems = analyticsItems|merge({(loop.index0):analyticsItemLine}) %}
        {% endfor %}

        document.addEventListener("DOMContentLoaded", function() {
            gtag('event', 'purchase', {
                "transaction_id": "{{ page.order.orderNumber }}",
                "affiliation": "LGC-Hygiene",
                "value": {{ page.order.amountTotal }},
                "currency": "{{ context.currency.isoCode }}",
                "tax": {{ page.order.amountTotal - page.order.amountNet}},
                "shipping": {{ page.order.shippingTotal }},
                "items": {{ analyticsItems|json_encode|raw }}
            });
        });

    </script>

    

 


 

 

{% endblock %}

Die Lösung ist sicherlich nicht perfekt, da die Google Integration aber in Shopware 6.2 nachgereicht wird ist sie für meine Anwendungsfälle temporär ausreichend.

Abschließend muss der Cache geleert werden, danach sollte das Tracking bereits funktionieren.

Update Shopware 6.2 (und höher)

Die unten beschriebenen Zwischenlösung ist glücklicherweise seit Shopware 6.2 nicht mehr notwendig. Ab Shopware 6.2 lässt sich Google Analytics komfortabel über die Verkaufskanal-Einstellungen über den Reiter "Analytics" konfigurieren. Hier muss nur die Tracking-ID eingetragen werden und die Haken für "Google Analytics aktivieren", "Bestellungen verfolgen" und "IP-Anonymisierung" aktiviert werden.

Kommentare und Antworten

×

Name ist erforderlich!

Geben Sie einen gültigen Namen ein

Gültige E-Mail ist erforderlich!

Gib eine gültige E-Mail Adresse ein

Kommentar ist erforderlich!

Captcha Code Kann das Bild nicht gelesen werden? Klicken Sie hier, um zu aktualisieren

Captcha ist erforderlich!

Code stimmt nicht überein!

* Diese Felder sind erforderlich.

Sei der erste der kommentiert