From 5ed924e8408c401876c9d4f3728430088c5e7566 Mon Sep 17 00:00:00 2001 From: MaxBUhe Date: Mon, 19 Jun 2023 11:34:45 +0200 Subject: [PATCH 1/2] [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 From 3f59d1f2103f6d8ca637635202511e62441534d1 Mon Sep 17 00:00:00 2001 From: MaxBUhe Date: Mon, 19 Jun 2023 14:50:34 +0200 Subject: [PATCH 2/2] bump version && changelog to 1.9.0 --- CHANGELOG.md | 4 ++++ metadata.php | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b168c0..c5c1949 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.9.0](https://git.d3data.de/D3Public/GoogleAnalytics4/compare/1.8.0...1.9.0) - 2023-06-19 +### Changed +- add_to_cart event template-structure + ## [1.8.0](https://git.d3data.de/D3Public/GoogleAnalytics4/compare/1.7.0...1.8.0) - 2023-05-31 ### Fixed - bug in explicit manager selection diff --git a/metadata.php b/metadata.php index b21f73b..2ffaabb 100755 --- a/metadata.php +++ b/metadata.php @@ -17,7 +17,7 @@ $aModule = [ Die Entwicklung basiert auf einem Fork von Marat Bedoev - Github-Link ", 'thumbnail' => 'thumbnail.png', - 'version' => '1.8.0', + 'version' => '1.9.0', 'author' => 'Data Development (Inh.: Thomas Dartsch)', 'email' => 'support@shopmodule.com', 'url' => 'https://www.oxidmodule.com/',