custom/plugins/DIScoGA4/src/Resources/views/storefront/ga4/meta-extra-information.html.twig line 1

Open in your IDE?
  1. {% block disco_meta_extra_information %}
  2.     {% block disco_meta_extra_information_custom_url %}
  3.         {% if config('DIScoGA4.config.customUrl') %}
  4.             <script {% if app.session.get('csp_nonce') %}nonce="{{ app.session.get('csp_nonce') }}"{% endif %}
  5.                     type="text/javascript">
  6.                 window.ga4CustomUrl = '{{ config('DIScoGA4.config.customUrl')|raw }}';
  7.             </script>
  8.         {% else %}
  9.             <script {% if app.session.get('csp_nonce') %}nonce="{{ app.session.get('csp_nonce') }}"{% endif %}
  10.                     type="text/javascript">
  11.                 window.ga4CustomUrl = '';
  12.             </script>
  13.         {% endif %}
  14.     {% endblock %}
  15.     {% block disco_meta_extra_information_checkout_extra %}
  16.         {% block disco_meta_extra_information_checkout_extra_shipping_method %}
  17.             {% if page.order.deliveries.first.shippingMethod is defined %}
  18.                 <script {% if app.session.get('csp_nonce') %}nonce="{{ app.session.get('csp_nonce') }}"{% endif %}
  19.                         type="text/javascript">
  20.                     window.ga4ShippingMethod = '{{ page.order.deliveries.first.shippingMethod.translated.name }}';
  21.                 </script>
  22.             {% endif %}
  23.         {% endblock %}
  24.         {% block disco_meta_extra_information_checkout_extra_payment_method %}
  25.             {% if page.order.transactions.last.paymentMethod is defined %}
  26.                 <script {% if app.session.get('csp_nonce') %}nonce="{{ app.session.get('csp_nonce') }}"{% endif %}
  27.                         type="text/javascript">
  28.                     window.ga4PaymentMethod = '{{ page.order.transactions.last.paymentMethod.translated.name }}';
  29.                 </script>
  30.             {% endif %}
  31.         {% endblock %}
  32.         {% block disco_meta_extra_information_checkout_extra_order_number %}
  33.             {% if page.order.orderNumber is defined %}
  34.                 <script {% if app.session.get('csp_nonce') %}nonce="{{ app.session.get('csp_nonce') }}"{% endif %}
  35.                         type="text/javascript">
  36.                     window.ga4OrderNumber = '{{ page.order.orderNumber }}';
  37.                 </script>
  38.             {% endif %}
  39.         {% endblock %}
  40.     {% endblock %}
  41.     {% block disco_meta_extra_information_main %}
  42.         {% block disco_meta_extra_information_searchterm %}
  43.             {% if page.searchTerm %}
  44.                 <script {% if app.session.get('csp_nonce') %}nonce="{{ app.session.get('csp_nonce') }}"{% endif %}
  45.                         type="text/javascript">
  46.                     window.searchTerm = '{{ page.searchTerm }}';
  47.                 </script>
  48.             {% endif %}
  49.         {% endblock %}
  50.         {% block disco_meta_extra_information_searchResult %}
  51.             {% if page.listing.total %}
  52.                 <script {% if app.session.get('csp_nonce') %}nonce="{{ app.session.get('csp_nonce') }}"{% endif %}
  53.                         type="text/javascript">
  54.                     window.searchResult = '{{ page.listing.total }}';
  55.                 </script>
  56.             {% endif %}
  57.         {% endblock %}
  58.         {% block disco_meta_extra_information_config %}
  59.             {% block disco_meta_extra_information_config_initialisation %}
  60.                 <script {% if app.session.get('csp_nonce') %}nonce="{{ app.session.get('csp_nonce') }}"{% endif %}
  61.                         type="text/javascript">
  62.                     window.ga4RemarketingEnabled = false;
  63.                     window.googleAnalyticsEnabled = false;
  64.                     window.googleAdsEnabled = false;
  65.                     window.ga4AdvancedAdsEnabled = false;
  66.                     window.ga4Enabled = false;
  67.                     window.googleTagEnabled = false;
  68.                     {% if config('DIScoGA4.config.cookieConfig') %}
  69.                     window.ga4CookieConfig = '{{ config('DIScoGA4.config.cookieConfig') }}';
  70.                     {% else %}
  71.                     window.ga4CookieConfig = "standardCookies";
  72.                     {% endif %}
  73.                     {% if config('DIScoGA4.config.ga4cookieListener') %}
  74.                     window.ga4cookieListener = true;
  75.                     {% else %}
  76.                     window.ga4cookieListener = false;
  77.                     {% endif %}
  78.                     {% if config('DIScoGA4.config.generateLeadValue') %}
  79.                     window.generateLeadValue = '{{ config('DIScoGA4.config.generateLeadValue') }}';
  80.                     {% else %}
  81.                     window.generateLeadValue = 0.0;
  82.                     {% endif %}
  83.                     window.ga4Currency = '{{ context.currency.translated.shortName }}';
  84.                     {% if config('DIScoGA4.config.transationIdMethod') and config('DIScoGA4.config.transationIdMethod') == "trueOrderId" %}
  85.                     window.transationIdMethod = "trueOrderId";
  86.                     {% else %}
  87.                     window.transationIdMethod = "hashedOrderId";
  88.                     {% endif %}
  89.                 </script>
  90.             {% endblock %}
  91.             {% block disco_meta_extra_information_config_activation %}
  92.                 {% if config('DIScoGA4.config.googleTagEnabled') and (config('DIScoGA4.config.googleTagId') or config('DIScoGA4.config.customTagManager')) %}
  93.                     <script {% if app.session.get('csp_nonce') %}nonce="{{ app.session.get('csp_nonce') }}"{% endif %}
  94.                             type="text/javascript">
  95.                         window.ga4TagId = '{{ config('DIScoGA4.config.googleTagId')|raw }}';
  96.                         window.dataLayer = window.dataLayer || [];
  97.                         window.googleTagEnabled = true;
  98.                         window.ga4Enabled = true;
  99.                         window.ga4controllerName = '{{ controllerName|lower }}';
  100.                         window.ga4controllerAction = '{{ controllerAction|lower }}';
  101.                         window.ga4activeNavigationId = '{{ page.header.navigation.active.id }}';
  102.                         window.ga4activeNavigationName = '{{ page.header.navigation.active.name }}';
  103.                         window.ga4affiliation = '{{ context.salesChannel.name }}';
  104.                         window.ga4salesChannelName = '{{ context.salesChannel.name }}';
  105.                         window.ga4salesChannelId = '{{ context.salesChannel.id }}';
  106.                         {% if config('DIScoGA4.config.enableUserId') %}
  107.                         if (localStorage.getItem("ga4UserId")) window.ga4UserId = localStorage.getItem("ga4UserId");
  108.                         if (localStorage.getItem("ga4CustomerLifetimeValue")) window.ga4CustomerLifetimeValue = localStorage.getItem("ga4CustomerLifetimeValue");
  109.                         window.ga4enableUserId = true;
  110.                         {% else %}
  111.                         window.ga4enableUserId = false;
  112.                         {% endif %}
  113.                         {% if config('DIScoGA4.config.uvpPriceAsCoupon') %}
  114.                         window.ga4upCoupon = true;
  115.                         {% else %}
  116.                         window.ga4upCoupon = false;
  117.                         {% endif %}
  118.                         {% if config('DIScoGA4.config.graduatedPriceAsCoupon') %}
  119.                         window.ga4gpCoupon = true;
  120.                         {% else %}
  121.                         window.ga4gpCoupon = false;
  122.                         {% endif %}
  123.                         {% if config('DIScoGA4.config.customTagManager') %}
  124.                         window.customTagManager = true;
  125.                         {% else %}
  126.                         window.customTagManager = false;
  127.                         {% endif %}
  128.                         {% if config('DIScoGA4.config.advancedConsentMode') %}
  129.                         window.ga4AdvancedConsentMode = true;
  130.                         {% else %}
  131.                         window.ga4AdvancedConsentMode = false;
  132.                         {% endif %}
  133.                         {% if config('DIScoGA4.config.activeConsentMode') %}
  134.                         window.ga4ActiveConsentMode = true;
  135.                         {% else %}
  136.                         window.ga4ActiveConsentMode = false;
  137.                         {% endif %}
  138.                     </script>
  139.                 {% endif %}
  140.                 {% if config('DIScoGA4.config.googleTagEnabled') and config('DIScoGA4.config.customTagManager') and config('DIScoGA4.config.customScript') and (config('DIScoGA4.config.advancedConsentMode') or app.request.cookies.has('_dis_gtag')) %}
  141.                     {% if '<script>' in config('DIScoGA4.config.customScript') and '</script>' in config('DIScoGA4.config.customScript') %}
  142.                         {{ config('DIScoGA4.config.customScript')|raw }}
  143.                     {% else %}
  144.                         <script>
  145.                             {{ config('DIScoGA4.config.customScript')|replace({'<script>': '', '</script>': ''})|raw }}
  146.                         </script>
  147.                     {% endif %}
  148.                 {% endif %}
  149.             {% endblock %}
  150.             {% block disco_meta_extra_information_config_google_analytics %}
  151.                 {% if config('DIScoGA4.config.googleAnalyticsEnabled') %}
  152.                     <script {% if app.session.get('csp_nonce') %}nonce="{{ app.session.get('csp_nonce') }}"{% endif %}
  153.                             type="text/javascript">
  154.                         window.googleAnalyticsEnabled = true;
  155.                     </script>
  156.                 {% endif %}
  157.             {% endblock %}
  158.         {% endblock %}
  159.         {% block disco_meta_extra_information_usertracking %}
  160.             {% if context.customer is not null and not context.customer.guest ? 1 : 0 %}
  161.                 <script {% if app.session.get('csp_nonce') %}nonce="{{ app.session.get('csp_nonce') }}"{% endif %}
  162.                         type="text/javascript">
  163.                     window.ga4UserLoggedIn = true;
  164.                 </script>
  165.                 {% if config('DIScoGA4.config.enableUserId') %}
  166.                     <script {% if app.session.get('csp_nonce') %}nonce="{{ app.session.get('csp_nonce') }}"{% endif %}
  167.                             type="text/javascript">
  168.                         window.ga4UserId = '{{ context.customer.id }}';
  169.                         localStorage.setItem("ga4UserId",window.ga4UserId);
  170.                     </script>
  171.                 {% endif %}
  172.             {% else %}
  173.                 <script {% if app.session.get('csp_nonce') %}nonce="{{ app.session.get('csp_nonce') }}"{% endif %}
  174.                         type="text/javascript">
  175.                     window.ga4UserLoggedIn = false;
  176.                     if (localStorage.getItem("loginSent")) localStorage.removeItem("loginSent")
  177.                 </script>
  178.             {% endif %}
  179.             {% if config('DIScoGA4.config.googleAdsEnabled') %}
  180.                 <script {% if app.session.get('csp_nonce') %}nonce="{{ app.session.get('csp_nonce') }}"{% endif %}
  181.                         type="text/javascript">
  182.                     {% if config('DIScoGA4.config.enableRemarketing') %}
  183.                     window.ga4RemarketingEnabled = true;
  184.                     {% else %}
  185.                     window.ga4RemarketingEnabled = false;
  186.                     {% endif %}
  187.                     window.googleAdsEnabled = true;
  188.                     {% if config('DIScoGA4.config.enableAdsAdvanced') %}
  189.                     window.ga4AdvancedAdsEnabled = true;
  190.                     {% else %}
  191.                     window.ga4AdvancedAdsEnabled = false;
  192.                     {% endif %}
  193.                     {% if config('DIScoGA4.config.adsValueNetto') and config('DIScoGA4.config.adsValueNetto') == "netto" %}
  194.                     window.adsValueNetto = true;
  195.                     {% else %}
  196.                     window.adsValueNetto = false;
  197.                     {% endif %}
  198.                     window.adsWithShipping = !!'{{ config('DIScoGA4.config.adsWithShipping') }}';
  199.                     {% if config('DIScoGA4.config.transationIdMethod') and config('DIScoGA4.config.transationIdMethod') == "trueOrderId" %}
  200.                     window.transationIdMethod = "trueOrderId";
  201.                     {% else %}
  202.                     window.transationIdMethod = "hashedOrderId";
  203.                     {% endif %}
  204.                 </script>
  205.                 {% if context.customer is not null %}
  206.                     <script {% if app.session.get('csp_nonce') %}nonce="{{ app.session.get('csp_nonce') }}"{% endif %}
  207.                             type="text/javascript">
  208.                         {% if context.customer.company is not null %}
  209.                         window.ga4CustomerType = 'business';
  210.                         {% else %}
  211.                         window.ga4CustomerType = 'private';
  212.                         {% endif %}
  213.                         {% if context.customer.lastOrderDate is not null %}
  214.                         window.ga4NewCustomer = false;
  215.                         window.ga4Guest = false;
  216.                         window.ga4CustomerLifetimeValue    = '{{ context.customer.orderTotalAmount }}';
  217.                         localStorage.setItem("ga4CustomerLifetimeValue", window.ga4CustomerLifetimeValue);
  218.                         {% elseif context.customer.guest %}
  219.                         window.ga4Guest = true;
  220.                         window.ga4NewCustomer = undefined;
  221.                         window.ga4CustomerLifetimeValue    = undefined;
  222.                         {% else %}
  223.                         window.ga4NewCustomer = true
  224.                         window.ga4CustomerLifetimeValue    = undefined;
  225.                         {% endif %}
  226.                     </script>
  227.                     <span class='d-none ga4-hidden-ads-information'
  228.                           data-feedcountry='{{ config('DIScoGA4.config.feedCountry') }}'
  229.                           data-feedlangage='{{ config('DIScoGA4.config.feedLanguage') }}'
  230.                             {% if config('DIScoGA4.config.enableAdsAdvanced') %}
  231.                                 data-useremail='{{ context.customer.email }}'
  232.                                 data-phone='{{ context.customer.activeBillingAddress.phoneNumber }}'
  233.                                 data-firstname='{{ context.customer.activeBillingAddress.firstName }}'
  234.                                 data-lastname='{{ context.customer.activeBillingAddress.lastName }}'
  235.                                 data-street='{{ context.customer.activeBillingAddress.street }}'
  236.                                 data-city='{{ context.customer.activeBillingAddress.city }}'
  237.                                 data-region='{{ context.customer.activeBillingAddress.countryState.name }}'
  238.                                 data-zip='{{ context.customer.activeBillingAddress.zipcode }}'
  239.                                 data-land='{{ context.customer.activeBillingAddress.country.iso }}'
  240.                             {% endif %}>
  241.                     </span>
  242.                 {% elseif page.order is not null %}
  243.                     {% set order = page.order %}
  244.                     {% set billingAddress = order.billingAddress %}
  245.                     {% if (order.orderCustomer is not null) and (billingAddress is not null) %}
  246.                         <span class='d-none ga4-hidden-ads-information'
  247.                               data-feedcountry='{{ config('DIScoGA4.config.feedCountry') }}'
  248.                               data-feedlangage='{{ config('DIScoGA4.config.feedLanguage') }}'
  249.                                 {% if config('DIScoGA4.config.enableAdsAdvanced') %}
  250.                                     data-useremail='{{ order.orderCustomer.email }}'
  251.                                     data-phone='{{ order.billingAddress.phoneNumber }}'
  252.                                     data-firstname='{{ order.billingAddress.firstName }}'
  253.                                     data-lastname='{{ order.billingAddress.lastName }}'
  254.                                     data-street='{{ order.billingAddress.street }}'
  255.                                     data-city='{{ order.billingAddress.city }}'
  256.                                     data-region='{{ order.billingAddress.countryState.name }}'
  257.                                     data-zip='{{ order.billingAddress.zipcode }}'
  258.                                     data-land='{{ order.billingAddress.country.iso }}'
  259.                                 {% endif %}></span>
  260.                     {% endif %}
  261.                 {% endif %}
  262.             {% endif %}
  263.         {% endblock %}
  264.         {% block disco_meta_extra_information_specialcase %}
  265.             <script {% if app.session.get('csp_nonce') %}nonce="{{ app.session.get('csp_nonce') }}"{% endif %}
  266.                     type="text/javascript">
  267.                 if (window.googleAdsEnabled !== true && window.googleAnalyticsEnabled !== true) {
  268.                     window.ga4Enabled = false;
  269.                 }
  270.             </script>
  271.         {% endblock %}
  272.     {% endblock %}
  273.     {% block disco_meta_extra_information_extensions %}
  274.         {% sw_include '@Storefront/storefront/ga4/ga4-products-extensions.html.twig' %}
  275.     {% endblock %}
  276.     {% block disco_hidden_line_items_information %}
  277.         {% if page.cart %}
  278.             {% set discocart = page.cart %}
  279.             {% set discolineItems = page.cart.lineItems %}
  280.             {% set discoShipping = discocart.deliveries.shippingCosts.sum().totalPrice %}
  281.         {% elseif page.order %}
  282.             {% set discocart= page.order %}
  283.             {% set discolineItems = page.order.lineItems %}
  284.             {% set discoShipping = discocart.shippingTotal %}
  285.         {% endif %}
  286.         {% if discocart %}
  287.             <div class="d-none discoga4-header-hidden-line-items-information"
  288.                  data-currency="{{ context.currency.translated.shortName }}"
  289.                  data-shipping="{{ discoShipping }}"
  290.                  data-value="{{ discocart.price.totalPrice }}"
  291.                  data-tax="{{ discocart.price.calculatedTaxes.amount }}"
  292.             >
  293.                 {% for lineItem in discolineItems %}
  294.                     {% if lineItem.priceDefinition.price %}
  295.                         {% set gaPrice = lineItem.priceDefinition.price %}
  296.                     {% else %}
  297.                         {% set gaPrice = lineItem.price.totalPrice %}
  298.                     {% endif %}
  299.                     {% block disco_hidden_line_item_information %}
  300.                         <span class="hidden-line-item"
  301.                               data-id="{{ lineItem.id }}"
  302.                               data-name="{{ lineItem.label }}"
  303.                               data-type="{{ lineItem.type }}"
  304.                               data-sku="{{ lineItem.payload.productNumber }}"
  305.                               data-quantity="{{ lineItem.quantity }}"
  306.                               data-price="{{ gaPrice }}">
  307.                     </span>
  308.                     {% endblock %}
  309.                 {% endfor %}
  310.             </div>
  311.         {% endif %}
  312.     {% endblock %}
  313. {% endblock %}