From 5ed924e8408c401876c9d4f3728430088c5e7566 Mon Sep 17 00:00:00 2001 From: MaxBUhe Date: Mon, 19 Jun 2023 11:34:45 +0200 Subject: [PATCH] [rework] change structure of GA-event moving the procedere into one step so there's not an accidental triggering of an GA-Push-Event which at the end overwrites the View-Item-Push-Event in the cmpEvent --- Application/views/ga4/add_to_cart.tpl | 81 ++++++++++++--------------- 1 file changed, 36 insertions(+), 45 deletions(-) diff --git a/Application/views/ga4/add_to_cart.tpl b/Application/views/ga4/add_to_cart.tpl index 0721a48..700d44b 100644 --- a/Application/views/ga4/add_to_cart.tpl +++ b/Application/views/ga4/add_to_cart.tpl @@ -1,56 +1,47 @@ [{$smarty.block.parent}] -[{assign var="d3ProductObject" value=$oView->getProduct()}] -[{assign var="d3PriceObject" value=$d3ProductObject->getPrice()}] +[{* variable $gtmProduct is passed from parent tempalte *}] +[{assign var="d3PriceObject" value=$gtmProduct->getPrice()}] +[{assign var="gtmCurrency" value=$oView->getActCurrency()}] +[{assign var="gtmManufacturer" value=$gtmProduct->getManufacturer()}] +[{assign var="gtmCategory" value=$gtmProduct->getCategory()}] [{capture assign=d3_ga4_add_to_cart}] -[{block name="d3_ga4_add_to_basket"}] + [{block name="d3_ga4_add_to_basket"}] $("#toBasket").click(function(event) { + dataLayer.push({"event": null, "eventLabel": null, "ecommerce": null}); /* Clear the previous ecommerce object. */ - [{*** Debug cases ***}] - [{*event.preventDefault();*}] + let itemCategories = '[{if $gtmCategory}][{$gtmCategory->getLink()|parse_url:5|ltrim:"/"|rtrim:"/"}][{else}]no category[{/if}]'.split('/'); - let iArtQuantity = $("#amountToBasket").val(); + [{*** Debug cases ***}] + [{*event.preventDefault();*}] - dataLayer.push({ - 'isAddToBasket': true, - 'event':'add_to_cart', - 'eventLabel': 'add_to_cart', - 'ecommerce': { - 'currency': "[{$currency->name}]", - 'value': iArtQuantity*[{$d3PriceObject->getPrice()}], - 'items': [ - { - 'item_id': '[{$gtmProduct->getFieldData('oxartnum')}]', - 'item_name': '[{$gtmProduct->getFieldData('oxtitle')}]', - 'price': [{$d3PriceObject->getPrice()}], - 'item_brand': '[{if $gtmManufacturer}][{$gtmManufacturer->oxmanufacturers__oxtitle->value}][{/if}]', - 'item_variant': '[{if $gtmProduct->getFieldData('oxvarselect')}][{$gtmProduct->getFieldData('oxvarselect')}][{/if}]', - 'item_category': itemCategories[0] || 'no category', - 'item_category_2':itemCategories[1] || '', - 'item_category_3':itemCategories[2] || '', - 'item_category_4':itemCategories[3] || '', - 'quantity': iArtQuantity - } - ] + let iArtQuantity = $("#amountToBasket").val(); + + dataLayer.push({ + 'isAddToBasket': true, + 'event':'add_to_cart', + 'eventLabel': 'add_to_cart', + 'ecommerce': { + 'currency': "[{$currency->name}]", + 'value': iArtQuantity*[{$d3PriceObject->getPrice()}], + 'items': [ + { + 'item_id': '[{$gtmProduct->getFieldData('oxartnum')}]', + 'item_name': '[{$gtmProduct->getFieldData('oxtitle')}]', + 'price': [{$d3PriceObject->getPrice()}], + 'item_brand': '[{if $gtmManufacturer}][{$gtmManufacturer->oxmanufacturers__oxtitle->value}][{/if}]', + 'item_variant': '[{if $gtmProduct->getFieldData('oxvarselect')}][{$gtmProduct->getFieldData('oxvarselect')}][{/if}]', + 'item_category': itemCategories[0] || 'no category', + 'item_category_2':itemCategories[1] || '', + 'item_category_3':itemCategories[2] || '', + 'item_category_4':itemCategories[3] || '', + 'quantity': iArtQuantity + } + ] } }); }); -[{/block}] -[{/capture}] -[{oxscript add=$d3_ga4_add_to_cart}] - -[{strip}] - [{* variable $gtmProduct is passed from parent tempalte *}] - - [{assign var="gtmCurrency" value=$oView->getActCurrency()}] - [{assign var="gtmManufacturer" value=$gtmProduct->getManufacturer()}] - [{assign var="gtmCategory" value=$gtmProduct->getCategory()}] - - -[{/strip}] \ No newline at end of file + [{/block}] + [{/capture}] +[{oxscript add=$d3_ga4_add_to_cart}] \ No newline at end of file