Advertisement
Shoporama

Tracking top

Aug 16th, 2021 (edited)
597
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <{if $webshop->getEnableTracking()}>
  2.  
  3.         <{* Theme settings pushed to dataLayer start *}>
  4.             <script>
  5.                 window.dataLayer = window.dataLayer || [];
  6.                 window.dataLayer.push({
  7.                     'event': 'ShopOramaSettings',
  8.                     <{if $webshop->getFbId()}>
  9.                         'settings.Facebook.Pixel_ID': '<{$webshop->getFbId()}>',
  10.                     <{/if}>
  11.                     <{if $webshop->getGaId()}>
  12.                         'settings.Google.Analytics_Tracking_ID': '<{$webshop->getGaId()}>',
  13.                     <{/if}>
  14.                     <{if $webshop->getGoogleAdsConversionId()}>
  15.                         'settings.Google.Ads_Conversion_ID': '<{$webshop->getGoogleAdsConversionId()}>',
  16.                     <{/if}>
  17.                     <{if $webshop->getGoogleAdsConversionLabelOrder()}>
  18.                         'settings.Google.Ads_Conversion_Label_Order': '<{$webshop->getGoogleAdsConversionLabelOrder()}>',
  19.                     <{/if}>
  20.                     <{if $webshop->getGoogleMerchantId()}>
  21.                         'settings.Google.Merchant_Center_ID': '<{$webshop->getGoogleMerchantId()}>',
  22.                     <{/if}>
  23.                     <{if $webshop->getGoogleMerchantDeliveryDays()}>
  24.                         'settings.Google.Merchant_Center_Delivery_Days': '<{$webshop->getGoogleMerchantDeliveryDays()}>',
  25.                     <{/if}>
  26.                     <{if $webshop->getGoogleOptimizeId()}>
  27.                         'settings.Google.Optimize_Container_ID': '<{$webshop->getGoogleOptimizeId()}>',
  28.                     <{/if}>
  29.                     <{if $webshop->getGoogleTagManagerId()}>
  30.                         'settings.Google.Tag_Manager_Containder_ID': '<{$webshop->getGoogleTagManagerId()}>',
  31.                     <{/if}>
  32.                     <{if $webshop->getGA4MeasurementID()}>
  33.                         'settings.Google.GA4_Measurement_ID': '<{$webshop->getGA4MeasurementID()}>',
  34.                     <{/if}>
  35.                     <{if $webshop->getGooglePlaceID()}>
  36.                         'settings.Google.Place_ID': '<{$webshop->getGooglePlaceID()}>',
  37.                     <{/if}>
  38.                     <{if $webshop->getPinterestTagID()}>
  39.                         'settings.Pinterest.Tag_ID': '<{$webshop->getPinterestTagID()}>',
  40.                     <{/if}>
  41.                     <{if $webshop->getSnapPixelID()}>
  42.                         'settings.Snap.Pixel_ID': '<{$webshop->getSnapPixelID()}>',
  43.                     <{/if}>
  44.                     <{if $webshop->getTikTokPixelID()}>
  45.                         'settings.TikTok.Pixel_ID': '<{$webshop->getTikTokPixelID()}>',
  46.                     <{/if}>
  47.                     <{if $webshop->getLinkedInID()}>
  48.                         'settings.LinkedIn.Insight_Tag': '<{$webshop->getLinkedInID()}>',
  49.                     <{/if}>
  50.                     <{if $webshop->getKlaviyoPublicKey()}>
  51.                         'settings.Klaviyo.PublicKey': '<{$webshop->getKlaviyoPublicKey()}>',
  52.                     <{/if}>
  53.                     <{if $webshop->getCompany()}>
  54.                         <{assign var="company" value=$webshop->getCompany()}>
  55.                         'settings.webshopName': '<{$company->getName()|escape}>',
  56.                     <{/if}>
  57.                     <{if $webshop->getCurrency()}>
  58.                         'settings.currencyCode': '<{$webshop->getCurrency()}>'
  59.                     <{/if}>
  60.                 });
  61.             </script>
  62.         <{* Theme settings pushed to dataLayer end *}>
  63.  
  64.         <{* Customer Information start *}>
  65.             <{if $customer && $customer->getEmail()}>
  66.                 <script>
  67.                     window.dataLayer = window.dataLayer || [];
  68.                     window.dataLayer.push({
  69.                         event: 'customerInfo',
  70.                         'user.loggedIn': true
  71.                         ,'user.email': '<{$customer->getEmail()|escape}>'
  72.                         <{if $customer->getCustomerId()}>
  73.                             ,'user.ID': '<{$customer->getCustomerId()|escape}>'
  74.                         <{/if}>
  75.                         <{if $customer->getSubscriptionId()}>
  76.                             ,'user.subscriptionId': '<{$customer->getSubscriptionId()|escape}>'
  77.                         <{/if}>
  78.                         <{if $customer->getPhone()}>
  79.                             ,'user.phone': '<{$customer->getPhone()|escape}>'
  80.                         <{/if}>
  81.                         <{if $customer->getName()}>
  82.                             <{assign var="names" value=" "|explode:$customer->getName()|escape}>
  83.                             ,'user.name': '<{$customer->getName()|escape}>'
  84.                             ,'user.firstName': '<{$names[0]|ucfirst}>'
  85.                             ,'user.lastName': '<{$names[1]|ucfirst}>'
  86.                         <{/if}>
  87.                         <{if $customer->getCompany()}>
  88.                             ,'user.companyName': '<{$customer->getCompany()|escape}>'
  89.                         <{/if}>
  90.                         <{if $customer->getVatNumber()}>
  91.                             ,'user.companyVat' : '<{$customer->getVatNumber()|escape}>'
  92.                         <{/if}>
  93.                         <{if $customer->getAddress()}>
  94.                             ,'user.address': '<{$customer->getAddress()|escape}>'
  95.                         <{/if}>
  96.                         <{if $customer->getZipcode()}>
  97.                             ,'user.zipcode': '<{$customer->getZipcode()|escape}>'
  98.                         <{/if}>
  99.                         <{if $customer->getCity()}>
  100.                             ,'user.city': '<{$customer->getCity()|escape}>'
  101.                         <{/if}>
  102.                         <{if $customer->getCountry()}>
  103.                             <{assign var="usercountry" value=$customer->getCountry()}>
  104.                             ,'user.country': '<{$usercountry->getName()|escape}>'
  105.                         <{/if}>
  106.                         <{if $webshop->paidOrders($customer->getEmail())}>
  107.                             ,'user.paidOrders': <{$webshop->paidOrders($customer->getEmail())}>
  108.                         <{/if}>
  109.                     });
  110.                 </script>
  111.             <{elseif $order && $order->getEmail()}>
  112.                 <script>
  113.                     window.dataLayer = window.dataLayer || [];
  114.                     window.dataLayer.push({
  115.                         event: 'orderInfo',
  116.                         'user.loggedIn': false
  117.                         ,'user.email': '<{$order->getEmail()|escape}>'
  118.                         <{if $order->getPhone()}>
  119.                             ,'user.phone': '<{$order->getPhone()|escape}>'
  120.                         <{/if}>
  121.                            <{if $order->getOrderName()}>
  122.                                <{assign var="names" value=" "|explode:$order->getOrderName()|escape}>
  123.                             ,'user.name': '<{$order->getOrderName()|escape}>'
  124.                             ,'user.firstName': '<{$names[0]|ucfirst}>'
  125.                             ,'user.lastName': '<{$names[1]|ucfirst}>'
  126.                         <{/if}>
  127.                         <{if $order->getOrderCompanyName()}>
  128.                             ,'user.companyName': '<{$order->getOrderCompanyName()|escape}>'
  129.                         <{/if}>
  130.                         <{if $order->getVatNumber()}>
  131.                             ,'user.companyVat' : '<{$order->getVatNumber()|escape}>'
  132.                         <{/if}>
  133.                         <{if $order->getOrderAddress()}>
  134.                             ,'user.address': '<{$order->getOrderAddress()|escape}>'
  135.                         <{/if}>
  136.                         <{if $order->getOrderZipcode()}>
  137.                             ,'user.zipcode': '<{$order->getOrderZipcode()|escape}>'
  138.                         <{/if}>
  139.                         <{if $order->getOrderCity()}>
  140.                             ,'user.city': '<{$order->getOrderCity()|escape}>'
  141.                         <{/if}>
  142.                         <{if $order->getOrderCountry()}>
  143.                             ,'user.country': '<{$order->getOrderCountry()|escape}>'
  144.                         <{/if}>
  145.                         <{if $order->getDelCountry()}>
  146.                             ,'user.delCountry': '<{$order->getDelCountry()|escape}>'
  147.                         <{/if}>
  148.                         <{if $webshop->paidOrders($order->getEmail())}>
  149.                             ,'user.paidOrders': <{$webshop->paidOrders($order->getEmail())}>
  150.                         <{/if}>
  151.                     });
  152.                 </script>
  153.             <{elseif $session_order && $session_order.email}>
  154.                 <script>
  155.                     window.dataLayer = window.dataLayer || [];
  156.                     window.dataLayer.push({
  157.                         event: 'sessionInfo',
  158.                         'user.loggedIn': false
  159.                         ,'user.email': '<{$session_order.email|escape}>'
  160.                         <{if $session_order.phone}>
  161.                             ,'user.phone': '<{$session_order.phone|escape}>'
  162.                         <{/if}>
  163.                            <{if $session_order.name}>
  164.                             <{assign var="names" value=" "|explode:$session_order.name|escape}>
  165.                             ,'user.name': '<{$session_order.name|escape|ucfirst}>'
  166.                             ,'user.firstName': '<{$names[0]|ucfirst}>'
  167.                             ,'user.lastName': '<{$names[1]|ucfirst}>'
  168.                         <{/if}>
  169.                         <{if $session_order.company_name}>
  170.                             ,'user.companyName': '<{$session_order.company_name|escape}>'
  171.                         <{/if}>
  172.                         <{if $session_order.vat_number}>
  173.                             ,'user.companyVat': '<{$session_order.vat_number|escape}>'
  174.                         <{/if}>
  175.                         <{if $session_order.address}>
  176.                             ,'user.address': '<{$session_order.address|escape}>'
  177.                         <{/if}>
  178.                         <{if $session_order.zipcode|escape}>
  179.                             ,'user.zipcode': '<{$session_order.zipcode|escape}>'
  180.                         <{/if}>
  181.                         <{if $session_order.city}>
  182.                             ,'user.city': '<{$session_order.city|escape|ucfirst}>'
  183.                         <{/if}>
  184.                         <{if $session_order.country_name}>
  185.                             ,'user.country': '<{$session_order.country_name|escape|ucfirst}>'
  186.                         <{/if}>
  187.                         <{if $webshop->paidOrders($session_order.email)}>
  188.                             ,'user.paidOrders': <{$webshop->paidOrders($session_order.email)}>
  189.                         <{/if}>
  190.                     });
  191.                 </script>
  192.             <{/if}>
  193.         <{* Customer Information end *}>
  194.  
  195.         <{* Category dataLayer start *}>
  196.             <{if $category}>
  197.                 <{if $category->isFront()}>
  198.                     <{assign var="products" value=$category->getOnlineProducts()}>
  199.                 <{/if}>
  200.  
  201.                 <{* GA4 View item list:
  202.                 https://developers.google.com/analytics/devguides/collection/ga4/ecommerce?client_type=gtm#view_item_list
  203.                 https://developers.google.com/analytics/devguides/collection/ga4/reference/events?client_type=gtm#view_item_list
  204.                 https://www.simoahava.com/analytics/google-analytics-4-ecommerce-guide-google-tag-manager/#view_item_list
  205.                 *}>
  206.                 <script>
  207.                     window.dataLayer = window.dataLayer || [];
  208.                     window.dataLayer.push({ ecommerce: null });
  209.                     window.dataLayer.push({
  210.                         event: 'view_item_list',
  211.                         ecommerce: {
  212.                             items: [
  213.                                 <{section name='catimpr' loop=$products max=10}>
  214.                                     {
  215.                                         <{if $products[catimpr]->getProductId()}>
  216.                                             item_id: '<{$products[catimpr]->getProductId()}>',
  217.                                         <{/if}>
  218.                                         <{if $products[catimpr]->getName()}>
  219.                                             item_name: '<{$products[catimpr]->getName()|escape}>',
  220.                                         <{/if}>
  221.                                         <{if $webshop->getName()}>
  222.                                             affiliation: '<{$webshop->getName()|escape}>',
  223.                                         <{/if}>
  224.                                         currency: '<{$webshop->getCurrency()}>',
  225.                                         index: <{$smarty.section.catimpr.index}>,
  226.                                         <{if $products[catimpr]->getBrand()}>
  227.                                             item_brand: '<{$products[catimpr]->getBrandName()|escape}>',
  228.                                         <{/if}>
  229.                                         <{if $products[catimpr]->getMainCategory()}>
  230.                                             <{assign var="prodmaincat" value=$products[catimpr]->getMainCategory()}>
  231.                                             <{if $prodmaincat->getParents()}>
  232.                                                 <{assign var="prodmaincatparents" value=$prodmaincat->getParents()}>
  233.                                                 <{assign var="catlevel" value=0}>
  234.                                                 <{section name="parents" loop=$prodmaincatparents max=5}>
  235.                                                     <{math assign="catlevel" equation=x+1 x=$catlevel}>
  236.                                                     <{if $smarty.section.parents.first}>
  237.                                                         item_category: '<{$prodmaincatparents[parents]->getName()|escape}>',
  238.                                                     <{else}>
  239.                                                         item_category<{$catlevel}>: '<{$prodmaincatparents[parents]->getName()|escape}>',
  240.                                                     <{/if}>
  241.                                                 <{/section}>
  242.                                                 <{math assign="catlevel" equation=x+1 x=$catlevel}>
  243.                                                 item_category<{$catlevel}>: '<{$products[catimpr]->getMainCategoryName()|escape}>',
  244.                                             <{else}>
  245.                                                 item_category: '<{$products[catimpr]->getMainCategoryName()|escape}>',
  246.                                             <{/if}>
  247.                                         <{elseif $products[catimpr]->getCategory()}>
  248.                                             <{assign var="prodcat" value=$products[catimpr]->getCategory()}>
  249.                                             <{if $prodcat->getParents()}>
  250.                                                 <{assign var="prodcatparents" value=$prodcat->getParents()}>
  251.                                                 <{assign var="catlevel" value=0}>
  252.                                                 <{section name="parents" loop=$prodcatparents max=5}>
  253.                                                     <{math assign="catlevel" equation=x+1 x=$catlevel}>
  254.                                                     <{if $smarty.section.parents.first}>
  255.                                                         item_category: '<{$prodcatparents[parents]->getName()|escape}>',
  256.                                                     <{else}>
  257.                                                         item_category<{$catlevel}>: '<{$prodcatparents[parents]->getName()|escape}>',
  258.                                                     <{/if}>
  259.                                                 <{/section}>
  260.                                                 <{math assign="catlevel" equation=x+1 x=$catlevel}>
  261.                                                 item_category<{$catlevel}>: '<{$products[catimpr]->getCategoryName()|escape}>',
  262.                                             <{else}>
  263.                                                 item_category: '<{$products[catimpr]->getCategoryName()|escape}>',
  264.                                             <{/if}>
  265.                                         <{/if}>
  266.                                         <{if $category->getCategoryId()}>
  267.                                             item_list_id: '<{$category->getCategoryId()}>',
  268.                                         <{/if}>
  269.                                         <{if $category->getName()|escape}>
  270.                                             item_list_name: '<{$category->getName()|escape}>',
  271.                                         <{/if}>
  272.                                         <{if $webshop->getGooglePlaceID()}>
  273.                                             location_id: '<{$webshop->getGooglePlaceID()}>',
  274.                                         <{/if}>
  275.                                         <{if $products[catimpr]->getRealPrice()}>
  276.                                             price: <{$products[catimpr]->getRealPrice()|number_format:2:".":""}>,
  277.                                         <{/if}>
  278.                                         quantity: 1
  279.                                     }
  280.                                     <{if !$smarty.section.catimpr.last}>,<{/if}>
  281.                                 <{/section}>
  282.                             ]
  283.                         }
  284.                     });
  285.                 </script>
  286.             <{/if}>
  287.         <{* Category dataLayer end *}>
  288.  
  289.         <{* Landingpage dataLayer start *}>
  290.             <{if $landing_page}>
  291.                 <{* GA4 View item list:
  292.                 https://developers.google.com/analytics/devguides/collection/ga4/ecommerce?client_type=gtm#view_item_list
  293.                 https://developers.google.com/analytics/devguides/collection/ga4/reference/events?client_type=gtm#view_item_list
  294.                 https://www.simoahava.com/analytics/google-analytics-4-ecommerce-guide-google-tag-manager/#view_item_list
  295.                 *}>
  296.                 <script>
  297.                     window.dataLayer = window.dataLayer || [];
  298.                     window.dataLayer.push({ ecommerce: null });
  299.                     window.dataLayer.push({
  300.                         event: 'view_item_list',
  301.                         ecommerce: {
  302.                             items: [
  303.                                 <{section name='lpimpr' loop=$products max=10}>
  304.                                     {
  305.                                         <{if $products[lpimpr]->getProductId()}>
  306.                                             item_id: '<{$products[lpimpr]->getProductId()}>',
  307.                                         <{/if}>
  308.                                         <{if $products[lpimpr]->getName()}>
  309.                                             item_name: '<{$products[lpimpr]->getName()|escape}>',
  310.                                         <{/if}>
  311.                                         <{if $webshop->getName()}>
  312.                                             affiliation: '<{$webshop->getName()|escape}>',
  313.                                         <{/if}>
  314.                                         currency: '<{$webshop->getCurrency()}>',
  315.                                         index: <{$smarty.section.lpimpr.index}>,
  316.                                         <{if $products[lpimpr]->getBrand()}>
  317.                                             item_brand: '<{$products[lpimpr]->getBrandName()|escape}>',
  318.                                         <{/if}>
  319.                                         <{if $products[lpimpr]->getMainCategory()}>
  320.                                             <{assign var="prodmaincat" value=$products[lpimpr]->getMainCategory()}>
  321.                                             <{if $prodmaincat->getParents()}>
  322.                                                 <{assign var="prodmaincatparents" value=$prodmaincat->getParents()}>
  323.                                                 <{assign var="catlevel" value=0}>
  324.                                                 <{section name="parents" loop=$prodmaincatparents max=5}>
  325.                                                     <{math assign="catlevel" equation=x+1 x=$catlevel}>
  326.                                                     <{if $smarty.section.parents.first}>
  327.                                                         item_category: '<{$prodmaincatparents[parents]->getName()|escape}>',
  328.                                                     <{else}>
  329.                                                         item_category<{$catlevel}>: '<{$prodmaincatparents[parents]->getName()|escape}>',
  330.                                                     <{/if}>
  331.                                                 <{/section}>
  332.                                                 <{math assign="catlevel" equation=x+1 x=$catlevel}>
  333.                                                 item_category<{$catlevel}>: '<{$products[lpimpr]->getMainCategoryName()|escape}>',
  334.                                             <{else}>
  335.                                                 item_category: '<{$products[lpimpr]->getMainCategoryName()|escape}>',
  336.                                             <{/if}>
  337.                                         <{elseif $products[lpimpr]->getCategory()}>
  338.                                             <{assign var="prodcat" value=$products[lpimpr]->getCategory()}>
  339.                                             <{if $prodcat->getParents()}>
  340.                                                 <{assign var="prodcatparents" value=$prodcat->getParents()}>
  341.                                                 <{assign var="catlevel" value=0}>
  342.                                                 <{section name="parents" loop=$prodcatparents max=5}>
  343.                                                     <{math assign="catlevel" equation=x+1 x=$catlevel}>
  344.                                                     <{if $smarty.section.parents.first}>
  345.                                                         item_category: '<{$prodcatparents[parents]->getName()|escape}>',
  346.                                                     <{else}>
  347.                                                         item_category<{$catlevel}>: '<{$prodcatparents[parents]->getName()|escape}>',
  348.                                                     <{/if}>
  349.                                                 <{/section}>
  350.                                                 <{math assign="catlevel" equation=x+1 x=$catlevel}>
  351.                                                 item_category<{$catlevel}>: '<{$products[lpimpr]->getCategoryName()|escape}>',
  352.                                             <{else}>
  353.                                                 item_category: '<{$products[lpimpr]->getCategoryName()|escape}>',
  354.                                             <{/if}>
  355.                                         <{/if}>
  356.                                         <{if $landing_page->getLandingPageId()}>
  357.                                             item_list_id: '<{$landing_page->getLandingPageId()}>',
  358.                                         <{/if}>
  359.                                         <{if $landing_page->getName()}>
  360.                                             item_list_name: '<{$landing_page->getName()|escape}>',
  361.                                         <{/if}>
  362.                                         <{if $webshop->getGooglePlaceID()}>
  363.                                             location_id: '<{$webshop->getGooglePlaceID()}>',
  364.                                         <{/if}>
  365.                                         <{if $products[lpimpr]->getRealPrice()}>
  366.                                             price: <{$products[lpimpr]->getRealPrice()|number_format:2:".":""}>,
  367.                                         <{/if}>
  368.                                         quantity: 1
  369.                                     }
  370.                                     <{if !$smarty.section.lpimpr.last}>,<{/if}>
  371.                                 <{/section}>
  372.                             ]
  373.                         }
  374.                     });
  375.                 </script>
  376.             <{/if}>
  377.         <{* Landingpage dataLayer end *}>
  378.  
  379.         <{* Search dataLayer start *}>
  380.             <{if $inc == "search.html"}>
  381.                 <{* GA4 search:
  382.                 https://developers.google.com/analytics/devguides/collection/ga4/reference/events?client_type=gtm#search
  383.                 *}>
  384.                 <script>
  385.                     window.dataLayer = window.dataLayer || [];
  386.                     window.dataLayer.push({ ecommerce: null });
  387.                     window.dataLayer.push({
  388.                         event: 'search',
  389.                         search_term: '<{$get.search}>'
  390.                     });
  391.                 </script>
  392.             <{/if}>
  393.         <{* Search dataLayer end *}>
  394.  
  395.         <{* Product dataLayer start *}>
  396.             <{if $product}>
  397.                 <{* GA4 View item:
  398.                 https://developers.google.com/analytics/devguides/collection/ga4/ecommerce?client_type=gtm#view_item
  399.                 https://developers.google.com/analytics/devguides/collection/ga4/reference/events?client_type=gtm#view_item
  400.                 https://www.simoahava.com/analytics/google-analytics-4-ecommerce-guide-google-tag-manager/#view_item
  401.                 *}>
  402.                 <script>
  403.                     window.dataLayer = window.dataLayer || [];
  404.                     window.dataLayer.push({ ecommerce: null });
  405.                     window.dataLayer.push({
  406.                         event: 'view_item',
  407.                         ecommerce: {
  408.                             items: [{
  409.                                 <{if $product->getProductId()}>
  410.                                     item_id: '<{$product->getProductId()}>',
  411.                                 <{/if}>
  412.                                 <{if $product->getName()}>
  413.                                     item_name: '<{$product->getName()|escape}>',
  414.                                 <{/if}>
  415.                                 <{if $webshop->getName()}>
  416.                                     affiliation: '<{$webshop->getName()|escape}>',
  417.                                 <{/if}>
  418.                                 currency: '<{$webshop->getCurrency()}>',
  419.                                 index: 0,
  420.                                 <{if $product->getBrand()}>
  421.                                     item_brand: '<{$product->getBrandName()|escape}>',
  422.                                 <{/if}>
  423.                                 <{if $product->getMainCategory()}>
  424.                                     <{assign var="prodmaincat" value=$product->getMainCategory()}>
  425.                                     <{if $prodmaincat->getParents()}>
  426.                                         <{assign var="prodmaincatparents" value=$prodmaincat->getParents()}>
  427.                                         <{assign var="catlevel" value=0}>
  428.                                         <{section name="parents" loop=$prodmaincatparents max=5}>
  429.                                             <{math assign="catlevel" equation=x+1 x=$catlevel}>
  430.                                             <{if $smarty.section.parents.first}>
  431.                                                 item_category: '<{$prodmaincatparents[parents]->getName()|escape}>',
  432.                                             <{else}>
  433.                                                 item_category<{$catlevel}>: '<{$prodmaincatparents[parents]->getName()|escape}>',
  434.                                             <{/if}>
  435.                                         <{/section}>
  436.                                         <{math assign="catlevel" equation=x+1 x=$catlevel}>
  437.                                         item_category<{$catlevel}>: '<{$product->getMainCategoryName()|escape}>',
  438.                                     <{else}>
  439.                                         item_category: '<{$product->getMainCategoryName()|escape}>',
  440.                                     <{/if}>
  441.                                 <{elseif $product->getCategory()}>
  442.                                     <{assign var="prodcat" value=$product->getCategory()}>
  443.                                     <{if $prodcat->getParents()}>
  444.                                         <{assign var="prodcatparents" value=$prodcat->getParents()}>
  445.                                         <{assign var="catlevel" value=0}>
  446.                                         <{section name="parents" loop=$prodcatparents max=5}>
  447.                                             <{math assign="catlevel" equation=x+1 x=$catlevel}>
  448.                                             <{if $smarty.section.parents.first}>
  449.                                                 item_category: '<{$prodcatparents[parents]->getName()|escape}>',
  450.                                             <{else}>
  451.                                                 item_category<{$catlevel}>: '<{$prodcatparents[parents]->getName()|escape}>',
  452.                                             <{/if}>
  453.                                         <{/section}>
  454.                                         <{math assign="catlevel" equation=x+1 x=$catlevel}>
  455.                                         item_category<{$catlevel}>: '<{$product->getCategoryName()|escape}>',
  456.                                     <{else}>
  457.                                         item_category: '<{$product->getCategoryName()|escape}>',
  458.                                     <{/if}>
  459.                                 <{/if}>
  460.                                 <{* TODO: add item_variant for products with attribute in URL *}>
  461.                                 <{if $webshop->getGooglePlaceID()}>
  462.                                     location_id: '<{$webshop->getGooglePlaceID()}>',
  463.                                 <{/if}>
  464.                                 <{if $product->getRealPrice()}>
  465.                                     price: <{$product->getRealPrice()|number_format:2:".":""}>,
  466.                                 <{/if}>
  467.                                 quantity: 1
  468.                             }]
  469.                         }
  470.                     });
  471.                 </script>
  472.                 <{* GA4 Add to cart:
  473.                 https://developers.google.com/analytics/devguides/collection/ga4/ecommerce?client_type=gtm#add_to_cart
  474.                 https://developers.google.com/analytics/devguides/collection/ga4/reference/events?client_type=gtm#add_to_cart
  475.                 https://www.simoahava.com/analytics/google-analytics-4-ecommerce-guide-google-tag-manager/#add_to_cart
  476.                 *}>
  477.                 <script>
  478.                     document.addEventListener("DOMContentLoaded", function (event) {
  479.                         var formId = document.querySelector('#basket_form');
  480.                         var quantityId = document.querySelector('#qty');
  481.                         formId.addEventListener("submit", function(evt) {
  482.                             var variantList = document.getElementById('attributes');
  483.                             var variantName = variantList.options[variantList.selectedIndex].dataset.item_variant;
  484.                             window.dataLayer = window.dataLayer || [];
  485.                             window.dataLayer.push({ ecommerce: null });
  486.                             window.dataLayer.push({
  487.                                 event: 'add_to_cart',
  488.                                 ecommerce: {
  489.                                     currency: '<{$webshop->getCurrency()}>',
  490.                                     value: <{$product->getRealPrice()|number_format:2:".":""}> * quantityId.value,
  491.                                     items: [{
  492.                                         <{if $product->hasVariant()}>
  493.                                             item_id: variantList.value + ':<{$product->getProductId()}>',
  494.                                             item_variant: variantName,
  495.                                         <{elseif $product->getProductId()}>
  496.                                             item_id: '<{$product->getProductId()}>',
  497.                                         <{/if}>
  498.                                         <{if $product->getName()}>
  499.                                             item_name: '<{$product->getName()|escape}>',
  500.                                         <{/if}>
  501.                                         <{if $webshop->getName()}>
  502.                                             affiliation: '<{$webshop->getName()|escape}>',
  503.                                         <{/if}>
  504.                                         currency: '<{$webshop->getCurrency()}>',
  505.                                         index: 0,
  506.                                         <{if $product->getBrand()}>
  507.                                             item_brand: '<{$product->getBrandName()|escape}>',
  508.                                         <{/if}>
  509.                                         <{if $product->getMainCategory()}>
  510.                                             <{assign var="prodmaincat" value=$product->getMainCategory()}>
  511.                                             <{if $prodmaincat->getParents()}>
  512.                                                 <{assign var="prodmaincatparents" value=$prodmaincat->getParents()}>
  513.                                                 <{assign var="catlevel" value=0}>
  514.                                                 <{section name="parents" loop=$prodmaincatparents max=5}>
  515.                                                     <{math assign="catlevel" equation=x+1 x=$catlevel}>
  516.                                                     <{if $smarty.section.parents.first}>
  517.                                                         item_category: '<{$prodmaincatparents[parents]->getName()|escape}>',
  518.                                                     <{else}>
  519.                                                         item_category<{$catlevel}>: '<{$prodmaincatparents[parents]->getName()|escape}>',
  520.                                                     <{/if}>
  521.                                                 <{/section}>
  522.                                                 <{math assign="catlevel" equation=x+1 x=$catlevel}>
  523.                                                 item_category<{$catlevel}>: '<{$product->getMainCategoryName()|escape}>',
  524.                                             <{else}>
  525.                                                 item_category: '<{$product->getMainCategoryName()|escape}>',
  526.                                             <{/if}>
  527.                                         <{elseif $product->getCategory()}>
  528.                                             <{assign var="prodcat" value=$product->getCategory()}>
  529.                                             <{if $prodcat->getParents()}>
  530.                                                 <{assign var="prodcatparents" value=$prodcat->getParents()}>
  531.                                                 <{assign var="catlevel" value=0}>
  532.                                                 <{section name="parents" loop=$prodcatparents max=5}>
  533.                                                     <{math assign="catlevel" equation=x+1 x=$catlevel}>
  534.                                                     <{if $smarty.section.parents.first}>
  535.                                                         item_category: '<{$prodcatparents[parents]->getName()|escape}>',
  536.                                                     <{else}>
  537.                                                         item_category<{$catlevel}>: '<{$prodcatparents[parents]->getName()|escape}>',
  538.                                                     <{/if}>
  539.                                                 <{/section}>
  540.                                                 <{math assign="catlevel" equation=x+1 x=$catlevel}>
  541.                                                 item_category<{$catlevel}>: '<{$product->getCategoryName()|escape}>',
  542.                                             <{else}>
  543.                                                 item_category: '<{$product->getCategoryName()|escape}>',
  544.                                             <{/if}>
  545.                                         <{/if}>
  546.                                         <{if $webshop->getGooglePlaceID()}>
  547.                                             location_id: '<{$webshop->getGooglePlaceID()}>',
  548.                                         <{/if}>
  549.                                         <{if $product->getRealPrice()}>
  550.                                             price: <{$product->getRealPrice()|number_format:2:".":""}>,
  551.                                         <{/if}>
  552.                                         quantity: quantityId.value
  553.                                     }]
  554.                                 }
  555.                             });
  556.                         });
  557.                     });
  558.                 </script>
  559.             <{/if}>
  560.         <{* Product dataLayer end *}>
  561.  
  562.         <{* Product listing pages start *}>
  563.             <{if $category || $landing_page || $inc == "search.html" || $inc == "basket.html" || $inc == "product.html"}>
  564.                 <{* GA4 Select item:
  565.                 https://developers.google.com/analytics/devguides/collection/ga4/ecommerce?client_type=gtm#select_item
  566.                 https://www.simoahava.com/analytics/google-analytics-4-ecommerce-guide-google-tag-manager/#select_item
  567.                 https://medium.com/@sbuckpesch/2-steps-to-a-complete-enhanced-e-commerce-conversion-setup-in-google-analytics-using-google-tag-50cc9d09ab51
  568.                 *}>
  569.                 <script type="application/javascript">
  570.                     document.addEventListener("click", function(event) {
  571.                         if (event.target.classList.contains('productEntityClick')){
  572.                             trackProductClickEvent(event.target, 'select_item')
  573.                         }
  574.                         if (event.target.classList.contains('productEntityAddToCart')){
  575.                               trackProductClickEvent(event.target, 'add_to_cart')
  576.                         }
  577.                         if (event.target.classList.contains('productEntityRemoveFromCart')){
  578.                               trackProductClickEvent(event.target, 'remove_from_cart')
  579.                         }
  580.                         if (event.target.classList.contains('productEntityIncreaseCart')){
  581.                               trackProductClickEvent(event.target, 'IncreaseCart')
  582.                         }
  583.                         if (event.target.classList.contains('productEntityDecreaseCart')){
  584.                               trackProductClickEvent(event.target, 'DecreaseCart')
  585.                         }
  586.                     });
  587.                     function findAncestor(el, selector) {
  588.                         while ((el = el.parentElement) && !((el.matches || el.matchesSelector).call(el, selector))) ;
  589.                         return el;
  590.                       }
  591.                       function trackProductClickEvent(clickedElement, event) {
  592.                         var productEntity = findAncestor(clickedElement, '.productEntity');
  593.                         if (productEntity) {
  594.                             var productKeyMapping = {
  595.                                 'item_id': 'item_id',
  596.                                 'item_name': 'item_name',
  597.                                   'affiliation': 'affiliation',
  598.                                 'currency': 'currency',
  599.                                 'index': 'index',
  600.                                   'item_brand': 'item_brand',
  601.                                   'item_category': 'item_category',
  602.                                   'item_category2': 'item_category2',
  603.                                   'item_category3': 'item_category3',
  604.                                   'item_category4': 'item_category4',
  605.                                 'item_category5': 'item_category5',
  606.                                   'item_list_id': 'item_list_id',
  607.                                 'item_list_name': 'item_list_name',
  608.                                 'item_variant': 'item_variant',
  609.                                 'location_id': 'location_id',
  610.                                 'price': 'price',
  611.                                   'quantity': 'quantity'
  612.                             };
  613.                             var productData = {};
  614.                             var keys = Object.keys(productKeyMapping);
  615.                             keys.forEach(function (key) {
  616.                                   if (typeof productEntity.dataset[key] !== 'undefined') {
  617.                                     productData[productKeyMapping[key]] = productEntity.dataset[key];
  618.                                   }
  619.                             });
  620.                             var ecommerceData = {};
  621.                               switch (event) {
  622.                                 case 'select_item':
  623.                                       ecommerceData = {
  624.                                         items: [productData]
  625.                                       };
  626.                                       window.dataLayer = window.dataLayer || [];
  627.                                     window.dataLayer.push({ ecommerce: null });
  628.                                     window.dataLayer.push({
  629.                                         'event': event,
  630.                                         'ecommerce': ecommerceData
  631.                                       });
  632.                                   break;
  633.                                   case 'add_to_cart':
  634.                                       productData.quantity = 1;
  635.                                       ecommerceData = {
  636.                                           items: [productData],
  637.                                         currency: '<{$webshop->getCurrency()}>',
  638.                                         value: [productData.price] * [productData.quantity]
  639.                                       };
  640.                                       window.dataLayer = window.dataLayer || [];
  641.                                     window.dataLayer.push({ ecommerce: null });
  642.                                     window.dataLayer.push({
  643.                                         'event': event,
  644.                                         'ecommerce': ecommerceData
  645.                                       });
  646.                                   break;
  647.                                 case 'remove_from_cart':
  648.                                       ecommerceData = {
  649.                                           items: [productData],
  650.                                         currency: '<{$webshop->getCurrency()}>',
  651.                                         value: [productData.price] * [productData.quantity]
  652.                                       };
  653.                                       window.dataLayer = window.dataLayer || [];
  654.                                     window.dataLayer.push({ ecommerce: null });
  655.                                     window.dataLayer.push({
  656.                                         'event': event,
  657.                                         'ecommerce': ecommerceData
  658.                                       });
  659.                                   break;
  660.                                   case 'IncreaseCart':
  661.                                       productData.quantity = 1;
  662.                                       ecommerceData = {
  663.                                         items: [productData],
  664.                                         currency: '<{$webshop->getCurrency()}>',
  665.                                         value: [productData.price] * [productData.quantity]
  666.                                       };
  667.                                       window.dataLayer = window.dataLayer || [];
  668.                                     window.dataLayer.push({ ecommerce: null });
  669.                                     window.dataLayer.push({
  670.                                         'event': 'add_to_cart',
  671.                                         'ecommerce': ecommerceData
  672.                                       });
  673.                                   break;
  674.                                   case 'DecreaseCart':
  675.                                       productData.quantity = 1;
  676.                                       ecommerceData = {
  677.                                         items: [productData],
  678.                                         currency: '<{$webshop->getCurrency()}>',
  679.                                         value: [productData.price] * [productData.quantity]
  680.                                       };
  681.                                       window.dataLayer = window.dataLayer || [];
  682.                                     window.dataLayer.push({ ecommerce: null });
  683.                                     window.dataLayer.push({
  684.                                         'event': 'remove_from_cart',
  685.                                         'ecommerce': ecommerceData
  686.                                       });
  687.                                   break;
  688.                               }
  689.                           }
  690.                       }
  691.                 </script>
  692.             <{/if}>
  693.         <{* Product listing pages end *}>
  694.  
  695.         <{* Basket dataLayer start *}>
  696.             <{if $inc == "basket.html"}>
  697.                 <{* GA4 View cart:
  698.                 https://developers.google.com/analytics/devguides/collection/ga4/ecommerce?client_type=gtm#view_cart
  699.                 https://developers.google.com/analytics/devguides/collection/ga4/reference/events?client_type=gtm#view_cart
  700.                 https://www.simoahava.com/analytics/google-analytics-4-ecommerce-guide-google-tag-manager/#view_cart
  701.                 *}>
  702.                 <script>
  703.                     window.dataLayer = window.dataLayer || [];
  704.                     window.dataLayer.push({ ecommerce: null });
  705.                     window.dataLayer.push({
  706.                         event: 'view_cart',
  707.                         ecommerce: {
  708.                             currency: '<{$webshop->getCurrency()}>',
  709.                               value: <{$total_price|number_format:2:".":""}>,
  710.                             items: [
  711.                                 <{section name=basketimpr loop=$basket}>
  712.                                     <{assign var="checkoutproduct" value=$basket[basketimpr].product}>
  713.                                     <{assign var=attributes value=$basket[basketimpr].attributes}>
  714.  
  715.                                     {
  716.                                         <{if $attributes|@count == 1}>
  717.                                             <{section name="j" loop=$attributes}>
  718.                                                 item_id: '<{$checkoutproduct->getProductId()}>:<{$attributes[j].value_id}>',
  719.                                                 item_variant: '<{$attributes[j].value}>',
  720.                                             <{/section}>
  721.                                         <{else}>
  722.                                             <{if $checkoutproduct->getProductId()}>
  723.                                                 item_id: '<{$checkoutproduct->getProductId()}>',
  724.                                             <{/if}>
  725.                                         <{/if}>
  726.                                         <{if $checkoutproduct->getName()}>
  727.                                             item_name: '<{$checkoutproduct->getName()|escape}>',
  728.                                         <{/if}>
  729.                                         <{if $webshop->getName()}>
  730.                                             affiliation: '<{$webshop->getName()|escape}>',
  731.                                         <{/if}>
  732.                                         <{if $voucher}>
  733.                                             coupon: '<{$voucher->getCode()|escape}>',
  734.                                         <{/if}>
  735.                                         currency: '<{$webshop->getCurrency()}>',
  736.                                         index: <{$smarty.section.basketimpr.index}>,
  737.                                         <{if $checkoutproduct->getBrand()}>
  738.                                             item_brand: '<{$checkoutproduct->getBrandName()|escape}>',
  739.                                         <{/if}>
  740.                                         <{if $checkoutproduct->getMainCategory()}>
  741.                                             <{assign var="prodmaincat" value=$checkoutproduct->getMainCategory()}>
  742.                                             <{if $prodmaincat->getParents()}>
  743.                                                 <{assign var="prodmaincatparents" value=$prodmaincat->getParents()}>
  744.                                                 <{assign var="catlevel" value=0}>
  745.                                                 <{section name="parents" loop=$prodmaincatparents max=5}>
  746.                                                     <{math assign="catlevel" equation=x+1 x=$catlevel}>
  747.                                                     <{if $smarty.section.parents.first}>
  748.                                                         item_category: '<{$prodmaincatparents[parents]->getName()|escape}>',
  749.                                                     <{else}>
  750.                                                         item_category<{$catlevel}>: '<{$prodmaincatparents[parents]->getName()|escape}>',
  751.                                                     <{/if}>
  752.                                                 <{/section}>
  753.                                                 <{math assign="catlevel" equation=x+1 x=$catlevel}>
  754.                                                 item_category<{$catlevel}>: '<{$checkoutproduct->getMainCategoryName()|escape}>',
  755.                                             <{else}>
  756.                                                 item_category: '<{$checkoutproduct->getMainCategoryName()|escape}>',
  757.                                             <{/if}>
  758.                                         <{elseif $checkoutproduct->getCategory()}>
  759.                                             <{assign var="prodcat" value=$checkoutproduct->getCategory()}>
  760.                                             <{if $prodcat->getParents()}>
  761.                                                 <{assign var="prodcatparents" value=$prodcat->getParents()}>
  762.                                                 <{assign var="catlevel" value=0}>
  763.                                                 <{section name="parents" loop=$prodcatparents max=5}>
  764.                                                     <{math assign="catlevel" equation=x+1 x=$catlevel}>
  765.                                                     <{if $smarty.section.parents.first}>
  766.                                                         item_category: '<{$prodcatparents[parents]->getName()|escape}>',
  767.                                                     <{else}>
  768.                                                         item_category<{$catlevel}>: '<{$prodcatparents[parents]->getName()|escape}>',
  769.                                                     <{/if}>
  770.                                                 <{/section}>
  771.                                                 <{math assign="catlevel" equation=x+1 x=$catlevel}>
  772.                                                 item_category<{$catlevel}>: '<{$checkoutproduct->getCategoryName()|escape}>',
  773.                                             <{else}>
  774.                                                 item_category: '<{$checkoutproduct->getCategoryName()|escape}>',
  775.                                             <{/if}>
  776.                                         <{/if}>
  777.                                         <{if $webshop->getGooglePlaceID()}>
  778.                                             location_id: '<{$webshop->getGooglePlaceID()}>',
  779.                                         <{/if}>
  780.                                         <{if $checkoutproduct->getPrice()}>
  781.                                             price: <{$checkoutproduct->getPrice()|number_format:2:".":""}>,
  782.                                         <{/if}>
  783.                                         quantity: <{$basket[basketimpr].amount}>
  784.                                     }
  785.                                     <{if !$smarty.section.basketimpr.last}>,<{/if}>
  786.                                 <{/section}>
  787.                             ]
  788.                         }
  789.                     });
  790.                 </script>
  791.  
  792.             <{/if}>
  793.         <{* Basket dataLayer end *}>
  794.  
  795.         <{* Address dataLayer start *}>
  796.             <{if $inc == "address.html"}>
  797.                 <{* GA4 Begin checkout:
  798.                 https://developers.google.com/analytics/devguides/collection/ga4/ecommerce?client_type=gtm#begin_checkout
  799.                 https://developers.google.com/analytics/devguides/collection/ga4/reference/events?client_type=gtm#begin_checkout
  800.                 https://www.simoahava.com/analytics/google-analytics-4-ecommerce-guide-google-tag-manager/#begin_checkout
  801.                 *}>
  802.                 <script>
  803.                     window.dataLayer = window.dataLayer || [];
  804.                     window.dataLayer.push({ ecommerce: null });
  805.                     window.dataLayer.push({
  806.                         event: 'begin_checkout',
  807.                         ecommerce: {
  808.                             currency: '<{$webshop->getCurrency()}>',
  809.                               value: <{$total_price|number_format:2:".":""}>,
  810.                             <{if $voucher}>
  811.                                 coupon: '<{$voucher->getCode()|escape}>',
  812.                             <{/if}>
  813.                             items: [
  814.                             <{section name=basketimpr loop=$basket}>
  815.                                     <{assign var="checkoutproduct" value=$basket[basketimpr].product}>
  816.                                     <{assign var=attributes value=$basket[basketimpr].attributes}>
  817.  
  818.                                     {
  819.                                         <{if $attributes|@count == 1}>
  820.                                             <{section name="j" loop=$attributes}>
  821.                                                 item_id: '<{$checkoutproduct->getProductId()}>:<{$attributes[j].value_id}>',
  822.                                                 item_variant: '<{$attributes[j].value}>',
  823.                                             <{/section}>
  824.                                         <{else}>
  825.                                             <{if $checkoutproduct->getProductId()}>
  826.                                                 item_id: '<{$checkoutproduct->getProductId()}>',
  827.                                             <{/if}>
  828.                                         <{/if}>
  829.                                         <{if $checkoutproduct->getName()}>
  830.                                             item_name: '<{$checkoutproduct->getName()|escape}>',
  831.                                         <{/if}>
  832.                                         <{if $webshop->getName()}>
  833.                                             affiliation: '<{$webshop->getName()|escape}>',
  834.                                         <{/if}>
  835.                                         <{if $voucher}>
  836.                                             coupon: '<{$voucher->getCode()|escape}>',
  837.                                         <{/if}>
  838.                                         currency: '<{$webshop->getCurrency()}>',
  839.                                         index: <{$smarty.section.basketimpr.index}>,
  840.                                         <{if $checkoutproduct->getBrand()}>
  841.                                             item_brand: '<{$checkoutproduct->getBrandName()|escape}>',
  842.                                         <{/if}>
  843.                                         <{if $checkoutproduct->getMainCategory()}>
  844.                                             <{assign var="prodmaincat" value=$checkoutproduct->getMainCategory()}>
  845.                                             <{if $prodmaincat->getParents()}>
  846.                                                 <{assign var="prodmaincatparents" value=$prodmaincat->getParents()}>
  847.                                                 <{assign var="catlevel" value=0}>
  848.                                                 <{section name="parents" loop=$prodmaincatparents max=5}>
  849.                                                     <{math assign="catlevel" equation=x+1 x=$catlevel}>
  850.                                                     <{if $smarty.section.parents.first}>
  851.                                                         item_category: '<{$prodmaincatparents[parents]->getName()|escape}>',
  852.                                                     <{else}>
  853.                                                         item_category<{$catlevel}>: '<{$prodmaincatparents[parents]->getName()|escape}>',
  854.                                                     <{/if}>
  855.                                                 <{/section}>
  856.                                                 <{math assign="catlevel" equation=x+1 x=$catlevel}>
  857.                                                 item_category<{$catlevel}>: '<{$checkoutproduct->getMainCategoryName()|escape}>',
  858.                                             <{else}>
  859.                                                 item_category: '<{$checkoutproduct->getMainCategoryName()|escape}>',
  860.                                             <{/if}>
  861.                                         <{elseif $checkoutproduct->getCategory()}>
  862.                                             <{assign var="prodcat" value=$checkoutproduct->getCategory()}>
  863.                                             <{if $prodcat->getParents()}>
  864.                                                 <{assign var="prodcatparents" value=$prodcat->getParents()}>
  865.                                                 <{assign var="catlevel" value=0}>
  866.                                                 <{section name="parents" loop=$prodcatparents max=5}>
  867.                                                     <{math assign="catlevel" equation=x+1 x=$catlevel}>
  868.                                                     <{if $smarty.section.parents.first}>
  869.                                                         item_category: '<{$prodcatparents[parents]->getName()|escape}>',
  870.                                                     <{else}>
  871.                                                         item_category<{$catlevel}>: '<{$prodcatparents[parents]->getName()|escape}>',
  872.                                                     <{/if}>
  873.                                                 <{/section}>
  874.                                                 <{math assign="catlevel" equation=x+1 x=$catlevel}>
  875.                                                 item_category<{$catlevel}>: '<{$checkoutproduct->getCategoryName()|escape}>',
  876.                                             <{else}>
  877.                                                 item_category: '<{$checkoutproduct->getCategoryName()|escape}>',
  878.                                             <{/if}>
  879.                                         <{/if}>
  880.                                         <{if $webshop->getGooglePlaceID()}>
  881.                                             location_id: '<{$webshop->getGooglePlaceID()}>',
  882.                                         <{/if}>
  883.                                         <{if $checkoutproduct->getPrice()}>
  884.                                             price: <{$checkoutproduct->getPrice()|number_format:2:".":""}>,
  885.                                         <{/if}>
  886.                                         quantity: <{$basket[basketimpr].amount}>
  887.                                     }
  888.                                     <{if !$smarty.section.basketimpr.last}>,<{/if}>
  889.                                 <{/section}>
  890.                             ]
  891.                         }
  892.                     });
  893.                 </script>
  894.  
  895.             <{/if}>
  896.         <{* Address dataLayer end *}>
  897.  
  898.         <{* Shipping dataLayer start *}>
  899.             <{if $inc == "shipping.html"}>
  900.                 <{* GA4 Add shipping information:
  901.                 https://developers.google.com/analytics/devguides/collection/ga4/ecommerce?client_type=gtm#add_shipping_info
  902.                 https://developers.google.com/analytics/devguides/collection/ga4/reference/events?client_type=gtm#add_shipping_info
  903.                 https://www.simoahava.com/analytics/google-analytics-4-ecommerce-guide-google-tag-manager/#add_shipping_info
  904.                 *}>
  905.                 <script>
  906.                     document.addEventListener("DOMContentLoaded", function (event) {
  907.                         var formId = document.querySelector('#shipping_form');
  908.                         formId.addEventListener("submit", function(evt) {
  909.                             var selectShipping = document.querySelector('[name=shipping_id]:checked');
  910.                             window.dataLayer = window.dataLayer || [];
  911.                             window.dataLayer.push({ ecommerce: null });
  912.                             window.dataLayer.push({
  913.                                 event: 'add_shipping_info',
  914.                                 ecommerce: {
  915.                                     currency: '<{$webshop->getCurrency()}>',
  916.                                     value: <{$total_price|number_format:2:".":""}>,
  917.                                     <{if $voucher}>
  918.                                         coupon: '<{$voucher->getCode()|escape}>',
  919.                                     <{/if}>
  920.                                    
  921.                                     shipping_tier: selectShipping.dataset.shipping_name.toString(),
  922.                                     items: [
  923.                                     <{section name=basketimpr loop=$basket}>
  924.                                             <{assign var="checkoutproduct" value=$basket[basketimpr].product}>
  925.                                             <{assign var=attributes value=$basket[basketimpr].attributes}>
  926.  
  927.                                             {
  928.                                                 <{if $attributes|@count == 1}>
  929.                                                     <{section name="j" loop=$attributes}>
  930.                                                         item_id: '<{$checkoutproduct->getProductId()}>:<{$attributes[j].value_id}>',
  931.                                                         item_variant: '<{$attributes[j].value}>',
  932.                                                     <{/section}>
  933.                                                 <{else}>
  934.                                                     <{if $checkoutproduct->getProductId()}>
  935.                                                         item_id: '<{$checkoutproduct->getProductId()}>',
  936.                                                     <{/if}>
  937.                                                 <{/if}>
  938.                                                 <{if $checkoutproduct->getName()}>
  939.                                                     item_name: '<{$checkoutproduct->getName()|escape}>',
  940.                                                 <{/if}>
  941.                                                 <{if $webshop->getName()}>
  942.                                                     affiliation: '<{$webshop->getName()|escape}>',
  943.                                                 <{/if}>
  944.                                                 <{if $voucher}>
  945.                                                     coupon: '<{$voucher->getCode()|escape}>',
  946.                                                 <{/if}>
  947.                                                 currency: '<{$webshop->getCurrency()}>',
  948.                                                 index: <{$smarty.section.basketimpr.index}>,
  949.                                                 <{if $checkoutproduct->getBrand()}>
  950.                                                     item_brand: '<{$checkoutproduct->getBrandName()|escape}>',
  951.                                                 <{/if}>
  952.                                                 <{if $checkoutproduct->getMainCategory()}>
  953.                                                     <{assign var="prodmaincat" value=$checkoutproduct->getMainCategory()}>
  954.                                                     <{if $prodmaincat->getParents()}>
  955.                                                         <{assign var="prodmaincatparents" value=$prodmaincat->getParents()}>
  956.                                                         <{assign var="catlevel" value=0}>
  957.                                                         <{section name="parents" loop=$prodmaincatparents max=5}>
  958.                                                             <{math assign="catlevel" equation=x+1 x=$catlevel}>
  959.                                                             <{if $smarty.section.parents.first}>
  960.                                                                 item_category: '<{$prodmaincatparents[parents]->getName()|escape}>',
  961.                                                             <{else}>
  962.                                                                 item_category<{$catlevel}>: '<{$prodmaincatparents[parents]->getName()|escape}>',
  963.                                                             <{/if}>
  964.                                                         <{/section}>
  965.                                                         <{math assign="catlevel" equation=x+1 x=$catlevel}>
  966.                                                         item_category<{$catlevel}>: '<{$checkoutproduct->getMainCategoryName()|escape}>',
  967.                                                     <{else}>
  968.                                                         item_category: '<{$checkoutproduct->getMainCategoryName()|escape}>',
  969.                                                     <{/if}>
  970.                                                 <{elseif $checkoutproduct->getCategory()}>
  971.                                                     <{assign var="prodcat" value=$checkoutproduct->getCategory()}>
  972.                                                     <{if $prodcat->getParents()}>
  973.                                                         <{assign var="prodcatparents" value=$prodcat->getParents()}>
  974.                                                         <{assign var="catlevel" value=0}>
  975.                                                         <{section name="parents" loop=$prodcatparents max=5}>
  976.                                                             <{math assign="catlevel" equation=x+1 x=$catlevel}>
  977.                                                             <{if $smarty.section.parents.first}>
  978.                                                                 item_category: '<{$prodcatparents[parents]->getName()|escape}>',
  979.                                                             <{else}>
  980.                                                                 item_category<{$catlevel}>: '<{$prodcatparents[parents]->getName()|escape}>',
  981.                                                             <{/if}>
  982.                                                         <{/section}>
  983.                                                         <{math assign="catlevel" equation=x+1 x=$catlevel}>
  984.                                                         item_category<{$catlevel}>: '<{$checkoutproduct->getCategoryName()|escape}>',
  985.                                                     <{else}>
  986.                                                         item_category: '<{$checkoutproduct->getCategoryName()|escape}>',
  987.                                                     <{/if}>
  988.                                                 <{/if}>
  989.                                                 <{if $webshop->getGooglePlaceID()}>
  990.                                                     location_id: '<{$webshop->getGooglePlaceID()}>',
  991.                                                 <{/if}>
  992.                                                 <{if $checkoutproduct->getPrice()}>
  993.                                                     price: <{$checkoutproduct->getPrice()|number_format:2:".":""}>,
  994.                                                 <{/if}>
  995.                                                 quantity: <{$basket[basketimpr].amount}>
  996.                                             }
  997.                                             <{if !$smarty.section.basketimpr.last}>,<{/if}>
  998.                                         <{/section}>
  999.                                     ]
  1000.                                 }
  1001.                             });
  1002.                         });
  1003.                     });
  1004.                 </script>
  1005.  
  1006.             <{/if}>
  1007.         <{* Shipping dataLayer end *}>
  1008.  
  1009.         <{* Approve dataLayer start *}>
  1010.             <{if ($webshop->getSkipApprove() && $inc == "shipping.html") || $inc == "approve.html"}>
  1011.                 <{* GA4 Add payment information:
  1012.                 https://developers.google.com/analytics/devguides/collection/ga4/ecommerce?client_type=gtm#add_payment_info
  1013.                 https://developers.google.com/analytics/devguides/collection/ga4/reference/events?client_type=gtm#add_payment_info
  1014.                 https://www.simoahava.com/analytics/google-analytics-4-ecommerce-guide-google-tag-manager/#add_payment_info
  1015.                 *}>
  1016.                 <script>
  1017.                     document.addEventListener("click", function(event) {
  1018.                         if (event.target.classList.contains('paymentStep')){
  1019.                             var selectPayment = document.querySelector('[name=payment_gateway_id]:checked');
  1020.                             window.dataLayer = window.dataLayer || [];
  1021.                             window.dataLayer.push({ ecommerce: null });
  1022.                             window.dataLayer.push({
  1023.                                 event: 'add_shipping_info',
  1024.                                 ecommerce: {
  1025.                                     currency: '<{$webshop->getCurrency()}>',
  1026.                                     value: <{$total_price|number_format:2:".":""}>,
  1027.                                     <{if $voucher}>
  1028.                                         coupon: '<{$voucher->getCode()|escape}>',
  1029.                                     <{/if}>
  1030.                                     payment_type: selectPayment.dataset.payment_name.toString(),
  1031.                                     items: [
  1032.                                     <{section name=basketimpr loop=$basket}>
  1033.                                             <{assign var="checkoutproduct" value=$basket[basketimpr].product}>
  1034.                                             <{assign var=attributes value=$basket[basketimpr].attributes}>
  1035.  
  1036.                                             {
  1037.                                                 <{if $attributes|@count == 1}>
  1038.                                                     <{section name="j" loop=$attributes}>
  1039.                                                         item_id: '<{$checkoutproduct->getProductId()}>:<{$attributes[j].value_id}>',
  1040.                                                         item_variant: '<{$attributes[j].value}>',
  1041.                                                     <{/section}>
  1042.                                                 <{else}>
  1043.                                                     <{if $checkoutproduct->getProductId()}>
  1044.                                                         item_id: '<{$checkoutproduct->getProductId()}>',
  1045.                                                     <{/if}>
  1046.                                                 <{/if}>
  1047.                                                 <{if $checkoutproduct->getName()}>
  1048.                                                     item_name: '<{$checkoutproduct->getName()|escape}>',
  1049.                                                 <{/if}>
  1050.                                                 <{if $webshop->getName()}>
  1051.                                                     affiliation: '<{$webshop->getName()|escape}>',
  1052.                                                 <{/if}>
  1053.                                                 <{if $voucher}>
  1054.                                                     coupon: '<{$voucher->getCode()|escape}>',
  1055.                                                 <{/if}>
  1056.                                                 currency: '<{$webshop->getCurrency()}>',
  1057.                                                 index: <{$smarty.section.basketimpr.index}>,
  1058.                                                 <{if $checkoutproduct->getBrand()}>
  1059.                                                     item_brand: '<{$checkoutproduct->getBrandName()|escape}>',
  1060.                                                 <{/if}>
  1061.                                                 <{if $checkoutproduct->getMainCategory()}>
  1062.                                                     <{assign var="prodmaincat" value=$checkoutproduct->getMainCategory()}>
  1063.                                                     <{if $prodmaincat->getParents()}>
  1064.                                                         <{assign var="prodmaincatparents" value=$prodmaincat->getParents()}>
  1065.                                                         <{assign var="catlevel" value=0}>
  1066.                                                         <{section name="parents" loop=$prodmaincatparents max=5}>
  1067.                                                             <{math assign="catlevel" equation=x+1 x=$catlevel}>
  1068.                                                             <{if $smarty.section.parents.first}>
  1069.                                                                 item_category: '<{$prodmaincatparents[parents]->getName()|escape}>',
  1070.                                                             <{else}>
  1071.                                                                 item_category<{$catlevel}>: '<{$prodmaincatparents[parents]->getName()|escape}>',
  1072.                                                             <{/if}>
  1073.                                                         <{/section}>
  1074.                                                         <{math assign="catlevel" equation=x+1 x=$catlevel}>
  1075.                                                         item_category<{$catlevel}>: '<{$checkoutproduct->getMainCategoryName()|escape}>',
  1076.                                                     <{else}>
  1077.                                                         item_category: '<{$checkoutproduct->getMainCategoryName()|escape}>',
  1078.                                                     <{/if}>
  1079.                                                 <{elseif $checkoutproduct->getCategory()}>
  1080.                                                     <{assign var="prodcat" value=$checkoutproduct->getCategory()}>
  1081.                                                     <{if $prodcat->getParents()}>
  1082.                                                         <{assign var="prodcatparents" value=$prodcat->getParents()}>
  1083.                                                         <{assign var="catlevel" value=0}>
  1084.                                                         <{section name="parents" loop=$prodcatparents max=5}>
  1085.                                                             <{math assign="catlevel" equation=x+1 x=$catlevel}>
  1086.                                                             <{if $smarty.section.parents.first}>
  1087.                                                                 item_category: '<{$prodcatparents[parents]->getName()|escape}>',
  1088.                                                             <{else}>
  1089.                                                                 item_category<{$catlevel}>: '<{$prodcatparents[parents]->getName()|escape}>',
  1090.                                                             <{/if}>
  1091.                                                         <{/section}>
  1092.                                                         <{math assign="catlevel" equation=x+1 x=$catlevel}>
  1093.                                                         item_category<{$catlevel}>: '<{$checkoutproduct->getCategoryName()|escape}>',
  1094.                                                     <{else}>
  1095.                                                         item_category: '<{$checkoutproduct->getCategoryName()|escape}>',
  1096.                                                     <{/if}>
  1097.                                                 <{/if}>
  1098.                                                 <{if $webshop->getGooglePlaceID()}>
  1099.                                                     location_id: '<{$webshop->getGooglePlaceID()}>',
  1100.                                                 <{/if}>
  1101.                                                 <{if $checkoutproduct->getPrice()}>
  1102.                                                     price: <{$checkoutproduct->getPrice()|number_format:2:".":""}>,
  1103.                                                 <{/if}>
  1104.                                                 quantity: <{$basket[basketimpr].amount}>
  1105.                                             }
  1106.                                             <{if !$smarty.section.basketimpr.last}>,<{/if}>
  1107.                                         <{/section}>
  1108.                                     ]
  1109.                                 }
  1110.                             });
  1111.                         }
  1112.                     });
  1113.                 </script>
  1114.             <{/if}>
  1115.         <{* Approve dataLayer end *}>
  1116.  
  1117.         <{* Thanks dataLayer start *}>
  1118.             <{if $inc == "thanks.html" && $order}>
  1119.                 <{* Only once start *}>
  1120.                     <{if !$order->getTrackingCalled()}>
  1121.                         <{assign var="products" value=$order->getProducts()}>
  1122.                         <{assign var="orderproducts" value=$order->getOrderProducts()}>
  1123.                         <{assign var="totaldiscount" value=0}>
  1124.  
  1125.                         <{* GA4 Purchase:
  1126.                         https://developers.google.com/analytics/devguides/collection/ga4/ecommerce?client_type=gtm#purchase
  1127.                         https://developers.google.com/analytics/devguides/collection/ga4/reference/events?client_type=gtm#purchase
  1128.                         https://www.simoahava.com/analytics/google-analytics-4-ecommerce-guide-google-tag-manager/#purchase
  1129.                         *}>
  1130.                         <script>
  1131.                             window.dataLayer = window.dataLayer || [];
  1132.                             window.dataLayer.push({ ecommerce: null });
  1133.                             window.dataLayer.push({
  1134.                                 event: 'purchase',
  1135.                                 ecommerce: {
  1136.                                     <{if $webshop->getCurrency()}>
  1137.                                         currency: '<{$webshop->getCurrency()}>',
  1138.                                     <{/if}>
  1139.                                     <{if $order->getWebshopOrderId()}>
  1140.                                         transaction_id: '<{$order->getWebshopOrderId()}>',
  1141.                                     <{/if}>
  1142.                                     <{if $order->getTotalPrice()}>
  1143.                                         value: '<{$order->getTotalPrice()|number_format:2:".":""}>',
  1144.                                     <{/if}>
  1145.                                     <{if $webshop->getName()|escape}>
  1146.                                         affiliation: '<{$webshop->getName()|escape}>',
  1147.                                     <{/if}>
  1148.                                     <{if $order->getVoucherCode()}>
  1149.                                         coupon: '<{$order->getVoucherCode()|escape}>',
  1150.                                     <{/if}>
  1151.                                     <{if $order->getShippingPrice()}>
  1152.                                         shipping: '<{$order->getShippingPrice()|number_format:2:".":""}>',
  1153.                                     <{/if}>
  1154.                                     <{if $order->getVat()}>
  1155.                                         tax: '<{$order->getVat()|number_format:2:".":""}>',
  1156.                                     <{/if}>
  1157.                                     <{* Google Ads Conversion with Cart Data:
  1158.                                     https://support.google.com/google-ads/answer/9028614?hl=en#zippy=%2Cinstall-with-google-tag-manager
  1159.                                     *}>
  1160.                                         <{if $order->getVoucherDiscountAmount()}>
  1161.                                             discount: <{$order->getVoucherDiscountAmount()}>,
  1162.                                         <{/if}>
  1163.                                         <{if $webshop->getGoogleMerchantId()}>
  1164.                                             aw_merchant_id: <{$webshop->getGoogleMerchantId()}>,
  1165.                                             aw_feed_country: 'DK',
  1166.                                             aw_feed_language: 'DA',
  1167.                                         <{/if}>
  1168.                                     items: [
  1169.                                         <{section name=purchaseimpr loop=$orderproducts}>
  1170.                                             <{assign var=attributes value=$orderproducts[purchaseimpr]->getAttributes()}>
  1171.                                             <{assign var="p" value=$orderproducts[purchaseimpr]->getProduct()}>
  1172.                                             <{if $orderproducts[purchaseimpr]->getFromBundle() == "0"}>
  1173.                                                 {
  1174.                                                     <{if $attributes|@count == 1}>
  1175.                                                         <{section name="j" loop=$attributes}>
  1176.                                                             item_id: '<{$orderproducts[purchaseimpr]->getProductId()}>:<{$attributes[j].attribute_value_id}>',
  1177.                                                             item_variant: '<{$attributes[j].val}>',
  1178.                                                         <{/section}>
  1179.                                                     <{else}>
  1180.                                                         item_id: '<{$orderproducts[purchaseimpr]->getProductId()}>',
  1181.                                                     <{/if}>
  1182.                                                     item_name: '<{$orderproducts[purchaseimpr]->getName()|escape}>',
  1183.                                                     <{if $webshop->getName()}>
  1184.                                                         affiliation: '<{$webshop->getName()|escape}>',
  1185.                                                     <{/if}>
  1186.                                                     <{if $voucher}>
  1187.                                                         coupon: '<{$voucher->getCode()|escape}>',
  1188.                                                     <{/if}>
  1189.                                                     currency: '<{$webshop->getCurrency()}>',
  1190.                                                     index: <{$smarty.section.purchaseimpr.index}>,
  1191.                                                     <{if $p->getBrand()}>
  1192.                                                         item_brand: '<{$p->getBrandName()|escape}>',
  1193.                                                     <{/if}>
  1194.                                                     <{if $p->getMainCategory()}>
  1195.                                                         <{assign var="prodmaincat" value=$p->getMainCategory()}>
  1196.                                                         <{if $prodmaincat->getParents()}>
  1197.                                                             <{assign var="prodmaincatparents" value=$prodmaincat->getParents()}>
  1198.                                                             <{assign var="catlevel" value=0}>
  1199.                                                             <{section name="parents" loop=$prodmaincatparents max=5}>
  1200.                                                                 <{math assign="catlevel" equation=x+1 x=$catlevel}>
  1201.                                                                 <{if $smarty.section.parents.first}>
  1202.                                                                     item_category: '<{$prodmaincatparents[parents]->getName()|escape}>',
  1203.                                                                 <{else}>
  1204.                                                                     item_category<{$catlevel}>: '<{$prodmaincatparents[parents]->getName()|escape}>',
  1205.                                                                 <{/if}>
  1206.                                                             <{/section}>
  1207.                                                             <{math assign="catlevel" equation=x+1 x=$catlevel}>
  1208.                                                             item_category<{$catlevel}>: '<{$p->getMainCategoryName()|escape}>',
  1209.                                                         <{else}>
  1210.                                                             item_category: '<{$p->getMainCategoryName()|escape}>',
  1211.                                                         <{/if}>
  1212.                                                     <{elseif $p->getCategory()}>
  1213.                                                         <{assign var="prodcat" value=$p->getCategory()}>
  1214.                                                         <{if $prodcat->getParents()}>
  1215.                                                             <{assign var="prodcatparents" value=$prodcat->getParents()}>
  1216.                                                             <{assign var="catlevel" value=0}>
  1217.                                                             <{section name="parents" loop=$prodcatparents max=5}>
  1218.                                                                 <{math assign="catlevel" equation=x+1 x=$catlevel}>
  1219.                                                                 <{if $smarty.section.parents.first}>
  1220.                                                                     item_category: '<{$prodcatparents[parents]->getName()|escape}>',
  1221.                                                                 <{else}>
  1222.                                                                     item_category<{$catlevel}>: '<{$prodcatparents[parents]->getName()|escape}>',
  1223.                                                                 <{/if}>
  1224.                                                             <{/section}>
  1225.                                                             <{math assign="catlevel" equation=x+1 x=$catlevel}>
  1226.                                                             item_category<{$catlevel}>: '<{$p->getCategoryName()|escape}>',
  1227.                                                         <{else}>
  1228.                                                             item_category: '<{$p->getCategoryName()|escape}>',
  1229.                                                         <{/if}>
  1230.                                                     <{/if}>
  1231.                                                     <{if $webshop->getGooglePlaceID()}>
  1232.                                                         location_id: '<{$webshop->getGooglePlaceID()}>',
  1233.                                                     <{/if}>
  1234.                                                     price: <{$orderproducts[purchaseimpr]->getPrice()|number_format:2:".":""}>,
  1235.                                                     quantity: <{$orderproducts[purchaseimpr]->getAmount()}>
  1236.                                                 }
  1237.                                             <{/if}>
  1238.                                             <{if !$smarty.section.purchaseimpr.last}>,<{/if}>
  1239.                                         <{/section}>
  1240.                                     ]
  1241.                                 }
  1242.                             });
  1243.                         </script>
  1244.  
  1245.                         <{* Google Customer Reviews start *}>
  1246.                             <{if $webshop->getGoogleMerchantId() && $webshop->getGoogleMerchantDeliveryDays()}>
  1247.                                 <{assign var="p" value=$order->getProducts()}>
  1248.                                 <script src="https://apis.google.com/js/platform.js?onload=renderOptIn" async defer></script>
  1249.                                 <script>
  1250.                                     window.renderOptIn = function() {
  1251.                                         window.gapi.load('surveyoptin', function() {
  1252.                                             window.gapi.surveyoptin.render(
  1253.                                                 {
  1254.                                                     'merchant_id': <{$webshop->getGoogleMerchantId()}>,
  1255.                                                     'order_id': '<{$order->getWebshopOrderId()}>',
  1256.                                                     'email': '<{$order->getEmail()|escape}>',
  1257.                                                     'delivery_country': 'DK',
  1258.                                                     'estimated_delivery_date': '<{"+"|cat:$webshop->getGoogleMerchantDeliveryDays()|cat:" days"|date_format:"%Y-%m-%d"}>',
  1259.                                                         'products':
  1260.                                                         <{strip}>
  1261.                                                             [
  1262.                                                             <{section name="googlemerchant" loop=$p}>
  1263.                                                                 {
  1264.                                                                     <{assign var="prodgtin" value=$p[googlemerchant]->getGtin()}>
  1265.                                                                     <{if $prodgtin}>
  1266.                                                                         'gtin':'<{$prodgtin}>'
  1267.                                                                     <{/if}>
  1268.                                                                 }
  1269.                                                                 <{if $smarty.section.googlemerchant.last}><{else}>,<{/if}>
  1270.                                                             <{/section}>
  1271.                                                             ]
  1272.                                                         <{/strip}>
  1273.                                                 });
  1274.                                         });
  1275.                                     }
  1276.                                 </script>
  1277.                             <{/if}>
  1278.                         <{* Google Customer Reviews end *}>
  1279.  
  1280.                     <{/if}>
  1281.  
  1282.                     <{$order->setTrackingCalled()}>
  1283.                 <{* Only once end *}>
  1284.  
  1285.             <{/if}>
  1286.         <{* Thanks dataLayer end *}>
  1287.  
  1288.         <{* Page dataLayer start *}>
  1289.             <{if $page}>
  1290.             <{/if}>
  1291.         <{* Page dataLayer end *}>
  1292.  
  1293.         <{* Blog post dataLayer start *}>
  1294.             <{if $blog_post || $blog}>
  1295.             <{/if}>
  1296.         <{* Blog post dataLayer end *}>
  1297.  
  1298.         <{* 404 dataLayer start *}>
  1299.             <{if $inc == "404.html"}>
  1300.             <{/if}>
  1301.         <{* 404 dataLayer end *}>
  1302.  
  1303.         <{* 410 dataLayer start *}>
  1304.             <{if $inc == "410.html"}>
  1305.             <{/if}>
  1306.         <{* 410 dataLayer end *}>
  1307.  
  1308.         <{* User sign in dataLayer start *}>
  1309.             <{if $inc == "user-sign-in.html" && $customer}>
  1310.             <{/if}>
  1311.         <{* User sign in dataLayer end *}>
  1312.  
  1313.         <{* User signup dataLayer start *}>
  1314.             <{if $inc == "user-sign-up.html" && $created}>
  1315.             <{/if}>
  1316.         <{* User signup dataLayer end*}>
  1317.  
  1318.         <{* Google Optimize Anti-flicker start *}>
  1319.             <{if $webshop->getGoogleOptimizeId()}>
  1320.                 <style>.async-hide { opacity: 0 !important} </style>
  1321.                 <script>(function(a,s,y,n,c,h,i,d,e){s.className+=' '+y;h.start=1*new Date;
  1322.                     h.end=i=function(){s.className=s.className.replace(RegExp(' ?'+y),'')};
  1323.                     (a[n]=a[n]||[]).hide=h;setTimeout(function(){i();h.end=null},c);h.timeout=c;
  1324.                 })(window,document.documentElement,'async-hide','dataLayer',4000,
  1325.                 {'<{$webshop->getGoogleTagManagerId()}>':true});</script>
  1326.             <{/if}>
  1327.         <{* Google Optimize Anti-flicker end *}>
  1328.  
  1329.         <{* Google Tag Manager container start *}>
  1330.             <script>
  1331.                 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
  1332.                 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
  1333.                 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
  1334.                 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
  1335.                 })(window,document,'script','dataLayer','<{$webshop->getGoogleTagManagerId()}>');
  1336.             </script>
  1337.         <{* Google Tag Manager container end *}>
  1338.  
  1339.     <{/if}>
  1340.  
Advertisement
RAW Paste Data Copied
Advertisement