[Changed] template structure, template-structure information
all block extensions now only include the template instead of having the extension included immediately (dedicated event-templates within views/event); information about the structure changed to the correct paths
This commit is contained in:
parent
a990834da4
commit
229cf3695f
@ -1,3 +1,3 @@
|
|||||||
[{$smarty.block.parent}]
|
[{$smarty.block.parent}]
|
||||||
|
|
||||||
[{include file="addtocart.tpl" htmlIdAmountOfArticles='#amountToBasket'}]
|
[{include file="event/add_to_cart.tpl" htmlIdAmountOfArticles='#amountToBasket'}]
|
@ -1,3 +1,3 @@
|
|||||||
[{$smarty.block.parent}]
|
[{$smarty.block.parent}]
|
||||||
|
|
||||||
[{include file="addtocart.tpl" htmlIdAmountOfArticles='#amountToBasket'}]
|
[{include file="event/add_to_cart.tpl" htmlIdAmountOfArticles='#amountToBasket'}]
|
@ -1,56 +1,3 @@
|
|||||||
[{$smarty.block.parent}]
|
[{$smarty.block.parent}]
|
||||||
|
|
||||||
[{block name="d3_ga4_purchase_block"}]
|
[{include file="event/purchase.tpl"}]
|
||||||
[{capture name="d3_ga4_purchase"}]
|
|
||||||
[{strip}]
|
|
||||||
dataLayer.push({"event": null, "eventLabel": null, "ecommerce": null}); /* Clear the previous ecommerce object. */
|
|
||||||
[{assign var="gtmOrder" value=$oView->getOrder()}]
|
|
||||||
[{assign var="gtmBasket" value=$oView->getBasket()}]
|
|
||||||
[{assign var="gtmArticles" value=$gtmOrder->getOrderArticles()}]
|
|
||||||
[{assign var="gtmOrderVouchers" value=$gtmOrder->getVoucherNrList()}]
|
|
||||||
|
|
||||||
dataLayer.push({
|
|
||||||
'event': 'purchase',
|
|
||||||
'eventLabel':'Checkout Step 5',
|
|
||||||
'ecommerce': {
|
|
||||||
'transaction_id': '[{$gtmOrder->getFieldData("oxordernr")}]',
|
|
||||||
'affiliation': '[{$oxcmp_shop->getFieldData("oxname")}]',
|
|
||||||
'value': [{$gtmOrder->getTotalOrderSum()}],
|
|
||||||
'tax': [{math equation="x+y" x=$gtmOrder->getFieldData("oxartvatprice1") y=$gtmOrder->getFieldData("oxartvatprice2") }],
|
|
||||||
'shipping': [{$gtmOrder->getFieldData("oxdelcost")}],
|
|
||||||
'currency': '[{$gtmOrder->getFieldData('oxcurrency')}]',
|
|
||||||
'coupon': '[{foreach from=$gtmOrderVouchers item="gtmOrderVoucher" name="gtmOrderVoucherIteration"}][{$gtmOrderVoucher}][{if !$smarty.foreach.gtmOrderVoucherIteration.last}], [{/if}][{/foreach}]',
|
|
||||||
'paymentType': '[{$gtmBasket->getPaymentOnPaymentId()}]',
|
|
||||||
'items': [
|
|
||||||
[{foreach from=$gtmArticles item="gtmBasketItem" name="gtmArticles"}]
|
|
||||||
[{assign var="gtmPurchaseItemPriceObject" value=$gtmBasketItem->getPrice()}]
|
|
||||||
[{assign var="gtmPurchaseItem" value=$gtmBasketItem->getArticle()}]
|
|
||||||
[{assign var="gtmPurchaseItemCategory" value=$gtmPurchaseItem->getCategory()}]
|
|
||||||
|
|
||||||
{
|
|
||||||
'item_id': '[{$gtmBasketItem->getFieldData("oxartnum")}]',
|
|
||||||
'item_name': '[{$gtmBasketItem->getFieldData("oxtitle")}]',
|
|
||||||
'affiliation': '[{$gtmBasketItem->getFieldData("oxtitle")}]',
|
|
||||||
'coupon': '[{foreach from=$gtmOrderVouchers item="gtmOrderVoucher" name="gtmOrderVoucherIteration"}][{$gtmOrderVoucher}][{if !$smarty.foreach.gtmOrderVoucherIteration.last}], [{/if}][{/foreach}]',
|
|
||||||
'item_variant': '[{$gtmBasketItem->getFieldData("oxselvariant")}]',
|
|
||||||
[{if $gtmPurchaseItemCategory}]
|
|
||||||
'item_category': '[{$gtmPurchaseItemCategory->getSplitCategoryArray(0)}]',
|
|
||||||
'item_category_2': '[{$gtmPurchaseItemCategory->getSplitCategoryArray(1)}]',
|
|
||||||
'item_category_3': '[{$gtmPurchaseItemCategory->getSplitCategoryArray(2)}]',
|
|
||||||
'item_category_4': '[{$gtmPurchaseItemCategory->getSplitCategoryArray(3)}]',
|
|
||||||
'item_list_name': '[{$gtmPurchaseItemCategory->getSplitCategoryArray()}]',
|
|
||||||
[{/if}]
|
|
||||||
'price': [{$gtmPurchaseItemPriceObject->getPrice()}],
|
|
||||||
'quantity': [{$gtmBasketItem->getFieldData("oxamount")}],
|
|
||||||
'position': [{$smarty.foreach.gtmArticles.iteration}]
|
|
||||||
}[{if !$smarty.foreach.gtmArticles.last}],[{/if}]
|
|
||||||
[{/foreach}]
|
|
||||||
]
|
|
||||||
}[{if $oViewConf->isDebugModeOn()}],
|
|
||||||
'debug_mode': 'true'
|
|
||||||
[{/if}]
|
|
||||||
})
|
|
||||||
[{/strip}]
|
|
||||||
[{/capture}]
|
|
||||||
[{oxscript add=$smarty.capture.d3_ga4_purchase}]
|
|
||||||
[{/block}]
|
|
3
Application/views/blocks/remove_from_cart.tpl
Normal file
3
Application/views/blocks/remove_from_cart.tpl
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[{$smarty.block.parent}]
|
||||||
|
|
||||||
|
[{include file="event/remove_from_cart.tpl"}]
|
@ -1,3 +1,3 @@
|
|||||||
[{$smarty.block.parent}]
|
[{$smarty.block.parent}]
|
||||||
|
|
||||||
[{include file="addtocart.tpl" htmlIdAmountOfArticles='#amountToBasket'}]
|
[{include file="event/add_to_cart.tpl" htmlIdAmountOfArticles='#amountToBasket'}]
|
@ -1,50 +1,3 @@
|
|||||||
[{$smarty.block.parent}]
|
[{$smarty.block.parent}]
|
||||||
|
|
||||||
[{*$oxcmp_basket|get_class_methods|dumpvar*}]
|
[{include file="event/view_cart.tpl"}]
|
||||||
|
|
||||||
[{assign var="d3BasketPrice" value=$oxcmp_basket->getPrice()}]
|
|
||||||
[{assign var='gtmCartArticles' value=$oView->getBasketArticles()}]
|
|
||||||
|
|
||||||
[{block name="d3_ga4_view_cart_block"}]
|
|
||||||
[{capture name="d3_ga4_view_cart"}]
|
|
||||||
[{strip}]
|
|
||||||
dataLayer.push({"event": null, "eventLabel": null, "ecommerce": null}); /* Clear the previous ecommerce object. */
|
|
||||||
dataLayer.push({
|
|
||||||
'event': 'view_cart',
|
|
||||||
'eventLabel':'Checkout Step 1',
|
|
||||||
'ecommerce': {
|
|
||||||
'actionField': "step: 1",
|
|
||||||
'currency': "[{$currency->name}]",
|
|
||||||
'value': [{$d3BasketPrice->getPrice()}],
|
|
||||||
'coupon': '[{foreach from=$oxcmp_basket->getVouchers() item=sVoucher key=key name=Voucher}][{$sVoucher->sVoucherNr}][{if !$smarty.foreach.Voucher.last}], [{/if}][{/foreach}]',
|
|
||||||
'items': [
|
|
||||||
[{foreach from=$oxcmp_basket->getContents() item=basketitem name=gtmCartContents key=basketindex}]
|
|
||||||
[{assign var="d3oItemPrice" value=$basketitem->getPrice()}]
|
|
||||||
[{assign var="gtmBasketItem" value=$basketitem->getArticle()}]
|
|
||||||
[{assign var="gtmBasketItemCategory" value=$gtmBasketItem->getCategory()}]
|
|
||||||
{
|
|
||||||
'item_id': '[{$gtmCartArticles[$basketindex]->getFieldData('oxartnum')}]',
|
|
||||||
'item_name': '[{$gtmCartArticles[$basketindex]->getFieldData('oxtitle')}]',
|
|
||||||
'item_variant': '[{$gtmCartArticles[$basketindex]->getFieldData('oxvarselect')}]',
|
|
||||||
[{if $gtmBasketItemCategory}]
|
|
||||||
'item_category': '[{$gtmBasketItemCategory->getSplitCategoryArray(0)}]',
|
|
||||||
'item_category_2': '[{$gtmBasketItemCategory->getSplitCategoryArray(1)}]',
|
|
||||||
'item_category_3': '[{$gtmBasketItemCategory->getSplitCategoryArray(2)}]',
|
|
||||||
'item_category_4': '[{$gtmBasketItemCategory->getSplitCategoryArray(3)}]',
|
|
||||||
'item_list_name': '[{$gtmBasketItemCategory->getSplitCategoryArray()}]',
|
|
||||||
[{/if}]
|
|
||||||
'price': [{$d3oItemPrice->getPrice()}],
|
|
||||||
'coupon': '[{foreach from=$oxcmp_basket->getVouchers() item=sVoucher key=key name=Voucher}][{$sVoucher->sVoucherNr}][{if !$smarty.foreach.Voucher.last}], [{/if}][{/foreach}]',
|
|
||||||
'quantity': [{$basketitem->getAmount()}],
|
|
||||||
'position': [{$smarty.foreach.gtmCartContents.index}]
|
|
||||||
}[{if !$smarty.foreach.gtmCartContents.last}],[{/if}]
|
|
||||||
[{/foreach}]
|
|
||||||
]
|
|
||||||
}[{if $oViewConf->isDebugModeOn()}],
|
|
||||||
'debug_mode': 'true'
|
|
||||||
[{/if}]
|
|
||||||
});
|
|
||||||
[{/strip}]
|
|
||||||
[{/capture}]
|
|
||||||
[{oxscript add=$smarty.capture.d3_ga4_view_cart}]
|
|
||||||
[{/block}]
|
|
@ -1,40 +1,3 @@
|
|||||||
[{$smarty.block.parent}]
|
[{$smarty.block.parent}]
|
||||||
[{assign var="gtmProduct" value=$oView->getProduct()}]
|
|
||||||
[{assign var="gtmCategory" value=$gtmProduct->getCategory()}]
|
|
||||||
[{assign var="gtmManufacturer" value=$gtmProduct->getManufacturer()}]
|
|
||||||
|
|
||||||
[{block name="d3_ga4_view_item_block"}]
|
[{include file="event/view_item.tpl"}]
|
||||||
[{capture name="d3_ga4_view_item"}]
|
|
||||||
[{strip}]
|
|
||||||
dataLayer.push({"event": null, "eventLabel": null, "ecommerce": null}); /* Clear the previous ecommerce object. */
|
|
||||||
|
|
||||||
dataLayer.push({
|
|
||||||
'event': 'view_item',
|
|
||||||
'eventLabel':'Product View',
|
|
||||||
'ecommerce': {
|
|
||||||
'currency': '[{$currency->name}]',
|
|
||||||
'items': [
|
|
||||||
{
|
|
||||||
'item_name': '[{$gtmProduct->getFieldData("oxtitle")}]',
|
|
||||||
'item_id': '[{$gtmProduct->getFieldData("oxartnum")}]',
|
|
||||||
'item_brand': '[{if $gtmManufacturer}][{$gtmManufacturer->oxmanufacturers__oxtitle->value}][{/if}]',
|
|
||||||
'item_variant': '[{if $gtmProduct->getFieldData("oxvarselect")}][{$gtmProduct->getFieldData("oxvarselect")}][{/if}]',
|
|
||||||
[{if $gtmCategory}]
|
|
||||||
'item_category': '[{$gtmCategory->getSplitCategoryArray(0)}]',
|
|
||||||
'item_category_2':'[{$gtmCategory->getSplitCategoryArray(1)}]',
|
|
||||||
'item_category_3':'[{$gtmCategory->getSplitCategoryArray(2)}]',
|
|
||||||
'item_category_4':'[{$gtmCategory->getSplitCategoryArray(3)}]',
|
|
||||||
'item_list_name':'[{$gtmCategory->getSplitCategoryArray()}]',
|
|
||||||
[{/if}]
|
|
||||||
[{assign var="d3PriceObject" value=$gtmProduct->getPrice()}]
|
|
||||||
'price': [{$d3PriceObject->getPrice()}]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}[{if $oViewConf->isDebugModeOn()}],
|
|
||||||
'debug_mode': 'true'
|
|
||||||
[{/if}]
|
|
||||||
});
|
|
||||||
[{/strip}]
|
|
||||||
[{/capture}]
|
|
||||||
[{oxscript add=$smarty.capture.d3_ga4_view_item}]
|
|
||||||
[{/block}]
|
|
3
Application/views/blocks/view_item_list.tpl
Normal file
3
Application/views/blocks/view_item_list.tpl
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[{$smarty.block.parent}]
|
||||||
|
|
||||||
|
[{include file="event/view_item_list.tpl"}]
|
3
Application/views/blocks/view_search_result.tpl
Normal file
3
Application/views/blocks/view_search_result.tpl
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[{$smarty.block.parent}]
|
||||||
|
|
||||||
|
[{include file="event/view_search_result.tpl"}]
|
@ -1,61 +1,61 @@
|
|||||||
|
|
||||||
[{if $d3CmpBasket->getAddToBasketDecision() && $d3CmpBasket->d3GtmRequestedArticleLoadedByAnid() !== null}]
|
[{if $d3CmpBasket->getAddToBasketDecision() && $d3CmpBasket->d3GtmRequestedArticleLoadedByAnid() !== null}]
|
||||||
[{assign var="oGtmProduct" value=$d3CmpBasket->d3GtmRequestedArticleLoadedByAnid()}]
|
[{assign var="oGtmProduct" value=$d3CmpBasket->d3GtmRequestedArticleLoadedByAnid()}]
|
||||||
[{assign var="oGtmAmountArticlesAdded" value=$d3CmpBasket->getD3GtmAddToCartAmountArticles()}]
|
[{assign var="oGtmAmountArticlesAdded" value=$d3CmpBasket->getD3GtmAddToCartAmountArticles()}]
|
||||||
[{*$smarty.block.parent*}]
|
[{*$smarty.block.parent*}]
|
||||||
[{* variable $oGtmProduct is passed from parent tempalte *}]
|
[{* variable $oGtmProduct is passed from parent tempalte *}]
|
||||||
[{assign var="d3PriceObject" value=$oGtmProduct->getPrice()}]
|
[{assign var="d3PriceObject" value=$oGtmProduct->getPrice()}]
|
||||||
[{assign var="gtmCurrency" value=$oView->getActCurrency()}]
|
[{assign var="gtmCurrency" value=$oView->getActCurrency()}]
|
||||||
[{assign var="gtmManufacturer" value=$oGtmProduct->getManufacturer()}]
|
[{assign var="gtmManufacturer" value=$oGtmProduct->getManufacturer()}]
|
||||||
[{assign var="gtmCategory" value=$oGtmProduct->getCategory()}]
|
[{assign var="gtmCategory" value=$oGtmProduct->getCategory()}]
|
||||||
|
|
||||||
[{block name="d3_ga4_add_to_cart_list_block"}]
|
[{block name="d3_ga4_add_to_cart_list_block"}]
|
||||||
[{capture name="d3_ga4_add_to_cart_listtpl"}]
|
[{capture name="d3_ga4_add_to_cart_listtpl"}]
|
||||||
[{strip}]
|
[{strip}]
|
||||||
dataLayer.push({"event": null, "eventLabel": null, "ecommerce": null}); /* Clear the previous ecommerce object. */
|
dataLayer.push({"event": null, "eventLabel": null, "ecommerce": null}); /* Clear the previous ecommerce object. */
|
||||||
|
|
||||||
[{*** Debug cases ***}]
|
[{*** Debug cases ***}]
|
||||||
[{*event.preventDefault();*}]
|
[{*event.preventDefault();*}]
|
||||||
|
|
||||||
let iArtQuantity = $("[{$htmlIdAmountOfArticles}]").val();
|
let iArtQuantity = $("[{$htmlIdAmountOfArticles}]").val();
|
||||||
let iArtQuantityAdded = [{$oGtmAmountArticlesAdded}];
|
let iArtQuantityAdded = [{$oGtmAmountArticlesAdded}];
|
||||||
|
|
||||||
if(!iArtQuantity && (iArtQuantityAdded === 1)){
|
if(!iArtQuantity && (iArtQuantityAdded === 1)){
|
||||||
iArtQuantity = 1;
|
iArtQuantity = 1;
|
||||||
}else{
|
}else{
|
||||||
iArtQuantity = iArtQuantityAdded;
|
iArtQuantity = iArtQuantityAdded;
|
||||||
}
|
}
|
||||||
|
|
||||||
dataLayer.push({
|
dataLayer.push({
|
||||||
'isAddToBasket': true,
|
'isAddToBasket': true,
|
||||||
'event':'add_to_cart',
|
'event':'add_to_cart',
|
||||||
'eventLabel': 'add_to_cart',
|
'eventLabel': 'add_to_cart',
|
||||||
'ecommerce': {
|
'ecommerce': {
|
||||||
'currency': "[{$currency->name}]",
|
'currency': "[{$currency->name}]",
|
||||||
'value': iArtQuantity*[{$d3PriceObject->getPrice()}],
|
'value': iArtQuantity*[{$d3PriceObject->getPrice()}],
|
||||||
'items': [
|
'items': [
|
||||||
{
|
{
|
||||||
'item_id': '[{$oGtmProduct->getFieldData('oxartnum')}]',
|
'item_id': '[{$oGtmProduct->getFieldData('oxartnum')}]',
|
||||||
'item_name': '[{$oGtmProduct->getFieldData('oxtitle')}]',
|
'item_name': '[{$oGtmProduct->getFieldData('oxtitle')}]',
|
||||||
'price': [{$d3PriceObject->getPrice()}],
|
'price': [{$d3PriceObject->getPrice()}],
|
||||||
'item_brand': '[{if $gtmManufacturer}][{$gtmManufacturer->oxmanufacturers__oxtitle->value}][{/if}]',
|
'item_brand': '[{if $gtmManufacturer}][{$gtmManufacturer->oxmanufacturers__oxtitle->value}][{/if}]',
|
||||||
'item_variant': '[{if $oGtmProduct->getFieldData('oxvarselect')}][{$oGtmProduct->getFieldData('oxvarselect')}][{/if}]',
|
'item_variant': '[{if $oGtmProduct->getFieldData('oxvarselect')}][{$oGtmProduct->getFieldData('oxvarselect')}][{/if}]',
|
||||||
[{if $gtmCategory}]
|
[{if $gtmCategory}]
|
||||||
'item_category': '[{$gtmCategory->getSplitCategoryArray(0)}]',
|
'item_category': '[{$gtmCategory->getSplitCategoryArray(0)}]',
|
||||||
'item_category_2':'[{$gtmCategory->getSplitCategoryArray(1)}]',
|
'item_category_2':'[{$gtmCategory->getSplitCategoryArray(1)}]',
|
||||||
'item_category_3':'[{$gtmCategory->getSplitCategoryArray(2)}]',
|
'item_category_3':'[{$gtmCategory->getSplitCategoryArray(2)}]',
|
||||||
'item_category_4':'[{$gtmCategory->getSplitCategoryArray(3)}]',
|
'item_category_4':'[{$gtmCategory->getSplitCategoryArray(3)}]',
|
||||||
'item_list_name':'[{$gtmCategory->getSplitCategoryArray()}]',
|
'item_list_name':'[{$gtmCategory->getSplitCategoryArray()}]',
|
||||||
[{/if}]
|
[{/if}]
|
||||||
'quantity': iArtQuantity
|
'quantity': iArtQuantity
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}[{if $oViewConf->isDebugModeOn()}],
|
}[{if $oViewConf->isDebugModeOn()}],
|
||||||
'debug_mode': 'true'
|
'debug_mode': 'true'
|
||||||
[{/if}]
|
[{/if}]
|
||||||
});
|
});
|
||||||
[{/strip}]
|
[{/strip}]
|
||||||
[{/capture}]
|
[{/capture}]
|
||||||
[{oxscript add=$smarty.capture.d3_ga4_add_to_cart_listtpl}]
|
[{oxscript add=$smarty.capture.d3_ga4_add_to_cart_listtpl}]
|
||||||
[{/block}]
|
[{/block}]
|
||||||
[{/if}]
|
[{/if}]
|
56
Application/views/event/purchase.tpl
Normal file
56
Application/views/event/purchase.tpl
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
[{block name="d3_ga4_purchase_block"}]
|
||||||
|
[{capture name="d3_ga4_purchase"}]
|
||||||
|
[{strip}]
|
||||||
|
dataLayer.push({"event": null, "eventLabel": null, "ecommerce": null}); /* Clear the previous ecommerce object. */
|
||||||
|
[{assign var="gtmOrder" value=$oView->getOrder()}]
|
||||||
|
[{assign var="gtmBasket" value=$oView->getBasket()}]
|
||||||
|
[{assign var="gtmArticles" value=$gtmOrder->getOrderArticles()}]
|
||||||
|
[{assign var="gtmOrderVouchers" value=$gtmOrder->getVoucherNrList()}]
|
||||||
|
|
||||||
|
dataLayer.push({
|
||||||
|
'event': 'purchase',
|
||||||
|
'eventLabel':'Checkout Step 5',
|
||||||
|
'ecommerce':
|
||||||
|
{
|
||||||
|
'transaction_id': '[{$gtmOrder->getFieldData("oxordernr")}]',
|
||||||
|
'affiliation': '[{$oxcmp_shop->getFieldData("oxname")}]',
|
||||||
|
'value': [{$gtmOrder->getTotalOrderSum()}],
|
||||||
|
'tax': [{math equation="x+y" x=$gtmOrder->getFieldData("oxartvatprice1") y=$gtmOrder->getFieldData("oxartvatprice2") }],
|
||||||
|
'shipping': [{$gtmOrder->getFieldData("oxdelcost")}],
|
||||||
|
'currency': '[{$gtmOrder->getFieldData('oxcurrency')}]',
|
||||||
|
'coupon': '[{foreach from=$gtmOrderVouchers item="gtmOrderVoucher" name="gtmOrderVoucherIteration"}][{$gtmOrderVoucher}][{if !$smarty.foreach.gtmOrderVoucherIteration.last}], [{/if}][{/foreach}]',
|
||||||
|
'paymentType': '[{$gtmBasket->getPaymentOnPaymentId()}]',
|
||||||
|
'items':
|
||||||
|
[
|
||||||
|
[{foreach from=$gtmArticles item="gtmBasketItem" name="gtmArticles"}]
|
||||||
|
[{assign var="gtmPurchaseItemPriceObject" value=$gtmBasketItem->getPrice()}]
|
||||||
|
[{assign var="gtmPurchaseItem" value=$gtmBasketItem->getArticle()}]
|
||||||
|
[{assign var="gtmPurchaseItemCategory" value=$gtmPurchaseItem->getCategory()}]
|
||||||
|
|
||||||
|
{
|
||||||
|
'item_id': '[{$gtmBasketItem->getFieldData("oxartnum")}]',
|
||||||
|
'item_name': '[{$gtmBasketItem->getFieldData("oxtitle")}]',
|
||||||
|
'affiliation': '[{$gtmBasketItem->getFieldData("oxtitle")}]',
|
||||||
|
'coupon': '[{foreach from=$gtmOrderVouchers item="gtmOrderVoucher" name="gtmOrderVoucherIteration"}][{$gtmOrderVoucher}][{if !$smarty.foreach.gtmOrderVoucherIteration.last}], [{/if}][{/foreach}]',
|
||||||
|
'item_variant': '[{$gtmBasketItem->getFieldData("oxselvariant")}]',
|
||||||
|
[{if $gtmPurchaseItemCategory}]
|
||||||
|
'item_category': '[{$gtmPurchaseItemCategory->getSplitCategoryArray(0)}]',
|
||||||
|
'item_category_2': '[{$gtmPurchaseItemCategory->getSplitCategoryArray(1)}]',
|
||||||
|
'item_category_3': '[{$gtmPurchaseItemCategory->getSplitCategoryArray(2)}]',
|
||||||
|
'item_category_4': '[{$gtmPurchaseItemCategory->getSplitCategoryArray(3)}]',
|
||||||
|
'item_list_name': '[{$gtmPurchaseItemCategory->getSplitCategoryArray()}]',
|
||||||
|
[{/if}]
|
||||||
|
'price': [{$gtmPurchaseItemPriceObject->getPrice()}],
|
||||||
|
'quantity': [{$gtmBasketItem->getFieldData("oxamount")}],
|
||||||
|
'position': [{$smarty.foreach.gtmArticles.iteration}]
|
||||||
|
}[{if !$smarty.foreach.gtmArticles.last}],[{/if}]
|
||||||
|
[{/foreach}]
|
||||||
|
]
|
||||||
|
}[{if $oViewConf->isDebugModeOn()}],
|
||||||
|
'debug_mode': 'true'
|
||||||
|
[{/if}]
|
||||||
|
})
|
||||||
|
[{/strip}]
|
||||||
|
[{/capture}]
|
||||||
|
[{oxscript add=$smarty.capture.d3_ga4_purchase}]
|
||||||
|
[{/block}]
|
@ -1,5 +1,3 @@
|
|||||||
[{$smarty.block.parent}]
|
|
||||||
|
|
||||||
[{block name="d3_ga4_remove_from_cart_block"}]
|
[{block name="d3_ga4_remove_from_cart_block"}]
|
||||||
[{if $hasBeenReloaded}]
|
[{if $hasBeenReloaded}]
|
||||||
[{assign var="d3BasketPrice" value=$oxcmp_basket->getPrice()}]
|
[{assign var="d3BasketPrice" value=$oxcmp_basket->getPrice()}]
|
50
Application/views/event/view_cart.tpl
Normal file
50
Application/views/event/view_cart.tpl
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
[{*$oxcmp_basket|get_class_methods|dumpvar*}]
|
||||||
|
|
||||||
|
[{assign var="d3BasketPrice" value=$oxcmp_basket->getPrice()}]
|
||||||
|
[{assign var='gtmCartArticles' value=$oView->getBasketArticles()}]
|
||||||
|
|
||||||
|
[{block name="d3_ga4_view_cart_block"}]
|
||||||
|
[{capture name="d3_ga4_view_cart"}]
|
||||||
|
[{strip}]
|
||||||
|
dataLayer.push({"event": null, "eventLabel": null, "ecommerce": null}); /* Clear the previous ecommerce object. */
|
||||||
|
dataLayer.push({
|
||||||
|
'event': 'view_cart',
|
||||||
|
'eventLabel':'Checkout Step 1',
|
||||||
|
'ecommerce':
|
||||||
|
{
|
||||||
|
'actionField': "step: 1",
|
||||||
|
'currency': "[{$currency->name}]",
|
||||||
|
'value': [{$d3BasketPrice->getPrice()}],
|
||||||
|
'coupon': '[{foreach from=$oxcmp_basket->getVouchers() item=sVoucher key=key name=Voucher}][{$sVoucher->sVoucherNr}][{if !$smarty.foreach.Voucher.last}], [{/if}][{/foreach}]',
|
||||||
|
'items':
|
||||||
|
[
|
||||||
|
[{foreach from=$oxcmp_basket->getContents() item=basketitem name=gtmCartContents key=basketindex}]
|
||||||
|
[{assign var="d3oItemPrice" value=$basketitem->getPrice()}]
|
||||||
|
[{assign var="gtmBasketItem" value=$basketitem->getArticle()}]
|
||||||
|
[{assign var="gtmBasketItemCategory" value=$gtmBasketItem->getCategory()}]
|
||||||
|
{
|
||||||
|
'item_id': '[{$gtmCartArticles[$basketindex]->getFieldData('oxartnum')}]',
|
||||||
|
'item_name': '[{$gtmCartArticles[$basketindex]->getFieldData('oxtitle')}]',
|
||||||
|
'item_variant': '[{$gtmCartArticles[$basketindex]->getFieldData('oxvarselect')}]',
|
||||||
|
[{if $gtmBasketItemCategory}]
|
||||||
|
'item_category': '[{$gtmBasketItemCategory->getSplitCategoryArray(0)}]',
|
||||||
|
'item_category_2': '[{$gtmBasketItemCategory->getSplitCategoryArray(1)}]',
|
||||||
|
'item_category_3': '[{$gtmBasketItemCategory->getSplitCategoryArray(2)}]',
|
||||||
|
'item_category_4': '[{$gtmBasketItemCategory->getSplitCategoryArray(3)}]',
|
||||||
|
'item_list_name': '[{$gtmBasketItemCategory->getSplitCategoryArray()}]',
|
||||||
|
[{/if}]
|
||||||
|
'price': [{$d3oItemPrice->getPrice()}],
|
||||||
|
'coupon': '[{foreach from=$oxcmp_basket->getVouchers() item=sVoucher key=key name=Voucher}][{$sVoucher->sVoucherNr}][{if !$smarty.foreach.Voucher.last}], [{/if}][{/foreach}]',
|
||||||
|
'quantity': [{$basketitem->getAmount()}],
|
||||||
|
'position': [{$smarty.foreach.gtmCartContents.index}]
|
||||||
|
}[{if !$smarty.foreach.gtmCartContents.last}],[{/if}]
|
||||||
|
[{/foreach}]
|
||||||
|
]
|
||||||
|
}[{if $oViewConf->isDebugModeOn()}],
|
||||||
|
'debug_mode': 'true'
|
||||||
|
[{/if}]
|
||||||
|
});
|
||||||
|
[{/strip}]
|
||||||
|
[{/capture}]
|
||||||
|
[{oxscript add=$smarty.capture.d3_ga4_view_cart}]
|
||||||
|
[{/block}]
|
41
Application/views/event/view_item.tpl
Normal file
41
Application/views/event/view_item.tpl
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
[{assign var="gtmProduct" value=$oView->getProduct()}]
|
||||||
|
[{assign var="gtmCategory" value=$gtmProduct->getCategory()}]
|
||||||
|
[{assign var="gtmManufacturer" value=$gtmProduct->getManufacturer()}]
|
||||||
|
|
||||||
|
[{block name="d3_ga4_view_item_block"}]
|
||||||
|
[{capture name="d3_ga4_view_item"}]
|
||||||
|
[{strip}]
|
||||||
|
dataLayer.push({"event": null, "eventLabel": null, "ecommerce": null}); /* Clear the previous ecommerce object. */
|
||||||
|
|
||||||
|
dataLayer.push({
|
||||||
|
'event': 'view_item',
|
||||||
|
'eventLabel':'Product View',
|
||||||
|
'ecommerce':
|
||||||
|
{
|
||||||
|
'currency': '[{$currency->name}]',
|
||||||
|
'items':
|
||||||
|
[
|
||||||
|
{
|
||||||
|
'item_name': '[{$gtmProduct->getFieldData("oxtitle")}]',
|
||||||
|
'item_id': '[{$gtmProduct->getFieldData("oxartnum")}]',
|
||||||
|
'item_brand': '[{if $gtmManufacturer}][{$gtmManufacturer->oxmanufacturers__oxtitle->value}][{/if}]',
|
||||||
|
'item_variant': '[{if $gtmProduct->getFieldData("oxvarselect")}][{$gtmProduct->getFieldData("oxvarselect")}][{/if}]',
|
||||||
|
[{if $gtmCategory}]
|
||||||
|
'item_category': '[{$gtmCategory->getSplitCategoryArray(0)}]',
|
||||||
|
'item_category_2':'[{$gtmCategory->getSplitCategoryArray(1)}]',
|
||||||
|
'item_category_3':'[{$gtmCategory->getSplitCategoryArray(2)}]',
|
||||||
|
'item_category_4':'[{$gtmCategory->getSplitCategoryArray(3)}]',
|
||||||
|
'item_list_name':'[{$gtmCategory->getSplitCategoryArray()}]',
|
||||||
|
[{/if}]
|
||||||
|
[{assign var="d3PriceObject" value=$gtmProduct->getPrice()}]
|
||||||
|
'price': [{$d3PriceObject->getPrice()}]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}[{if $oViewConf->isDebugModeOn()}],
|
||||||
|
'debug_mode': 'true'
|
||||||
|
[{/if}]
|
||||||
|
});
|
||||||
|
[{/strip}]
|
||||||
|
[{/capture}]
|
||||||
|
[{oxscript add=$smarty.capture.d3_ga4_view_item}]
|
||||||
|
[{/block}]
|
@ -1,46 +1,45 @@
|
|||||||
[{$smarty.block.parent}]
|
[{assign var="gtmProducts" value=$oView->getArticleList()}]
|
||||||
[{assign var="gtmProducts" value=$oView->getArticleList()}]
|
[{assign var="gtmCategory" value=$oView->getActiveCategory()}]
|
||||||
[{assign var="gtmCategory" value=$oView->getActiveCategory()}]
|
|
||||||
|
[{assign var="breadCrumb" value=''}]
|
||||||
[{assign var="breadCrumb" value=''}]
|
|
||||||
|
[{block name="d3_ga4_view_item_list_block"}]
|
||||||
[{block name="d3_ga4_view_item_list_block"}]
|
[{if $gtmProducts|@count}]
|
||||||
[{if $gtmProducts|@count}]
|
[{capture name="d3_ga4_view_item_list"}]
|
||||||
[{capture name="d3_ga4_view_item_list"}]
|
[{strip}]
|
||||||
[{strip}]
|
dataLayer.push({ecommerce: null});
|
||||||
dataLayer.push({ecommerce: null});
|
dataLayer.push({
|
||||||
dataLayer.push({
|
'event':'view_item_list',
|
||||||
'event':'view_item_list',
|
'event_name': 'view_item_list',
|
||||||
'event_name': 'view_item_list',
|
'ecommerce': {
|
||||||
'ecommerce': {
|
'item_list_id': '[{$oView->getCategoryId()}]',
|
||||||
'item_list_id': '[{$oView->getCategoryId()}]',
|
'item_list_name': '[{foreach from=$oView->getBreadCrumb() item=sCrum}][{if $sCrum.title }][{$breadCrumb|cat:$sCrum.title|cat:" > "}][{/if}][{/foreach}]',
|
||||||
'item_list_name': '[{foreach from=$oView->getBreadCrumb() item=sCrum}][{if $sCrum.title }][{$breadCrumb|cat:$sCrum.title|cat:" > "}][{/if}][{/foreach}]',
|
'items': [
|
||||||
'items': [
|
[{foreach from=$gtmProducts name="gtmProducts" item="gtmProduct"}]
|
||||||
[{foreach from=$gtmProducts name="gtmProducts" item="gtmProduct"}]
|
[{assign var="d3PriceObject" value=$gtmProduct->getPrice()}]
|
||||||
[{assign var="d3PriceObject" value=$gtmProduct->getPrice()}]
|
[{assign var="gtmManufacturer" value=$gtmProduct->getManufacturer()}]
|
||||||
[{assign var="gtmManufacturer" value=$gtmProduct->getManufacturer()}]
|
[{if !$gtmCategory}][{assign var="gtmCategory" value=$gtmProduct->getCategory()}][{/if}]
|
||||||
[{if !$gtmCategory}][{assign var="gtmCategory" value=$gtmProduct->getCategory()}][{/if}]
|
{
|
||||||
{
|
'item_id': '[{$gtmProduct->getFieldData("oxartnum")}]',
|
||||||
'item_id': '[{$gtmProduct->getFieldData("oxartnum")}]',
|
'item_name': '[{$gtmProduct->getFieldData("oxtitle")}]',
|
||||||
'item_name': '[{$gtmProduct->getFieldData("oxtitle")}]',
|
'price': [{$d3PriceObject->getPrice()}],
|
||||||
'price': [{$d3PriceObject->getPrice()}],
|
'item_brand': '[{if $gtmManufacturer}][{$gtmManufacturer->oxmanufacturers__oxtitle->value}][{/if}]',
|
||||||
'item_brand': '[{if $gtmManufacturer}][{$gtmManufacturer->oxmanufacturers__oxtitle->value}][{/if}]',
|
[{if $gtmCategory}]
|
||||||
[{if $gtmCategory}]
|
'item_category': '[{$gtmCategory->getSplitCategoryArray(0)}]',
|
||||||
'item_category': '[{$gtmCategory->getSplitCategoryArray(0)}]',
|
'item_category_2':'[{$gtmCategory->getSplitCategoryArray(1)}]',
|
||||||
'item_category_2':'[{$gtmCategory->getSplitCategoryArray(1)}]',
|
'item_category_3':'[{$gtmCategory->getSplitCategoryArray(2)}]',
|
||||||
'item_category_3':'[{$gtmCategory->getSplitCategoryArray(2)}]',
|
'item_category_4':'[{$gtmCategory->getSplitCategoryArray(3)}]',
|
||||||
'item_category_4':'[{$gtmCategory->getSplitCategoryArray(3)}]',
|
[{/if}]
|
||||||
[{/if}]
|
'quantity': 1
|
||||||
'quantity': 1
|
}[{if !$smarty.foreach.gtmProducts.last}],[{/if}]
|
||||||
}[{if !$smarty.foreach.gtmProducts.last}],[{/if}]
|
[{/foreach}]
|
||||||
[{/foreach}]
|
]
|
||||||
]
|
}[{if $oViewConf->isDebugModeOn()}],
|
||||||
}[{if $oViewConf->isDebugModeOn()}],
|
'debug_mode': 'true'
|
||||||
'debug_mode': 'true'
|
[{/if}]
|
||||||
[{/if}]
|
});
|
||||||
});
|
[{/strip}]
|
||||||
[{/strip}]
|
[{/capture}]
|
||||||
[{/capture}]
|
[{oxscript add=$smarty.capture.d3_ga4_view_item_list}]
|
||||||
[{oxscript add=$smarty.capture.d3_ga4_view_item_list}]
|
[{/if}]
|
||||||
[{/if}]
|
|
||||||
[{/block}]
|
[{/block}]
|
@ -1,5 +1,3 @@
|
|||||||
[{$smarty.block.parent}]
|
|
||||||
|
|
||||||
[{assign var="gtmProducts" value=$oView->getArticleList()}]
|
[{assign var="gtmProducts" value=$oView->getArticleList()}]
|
||||||
|
|
||||||
[{block name="d3_ga4_view_search_result_block"}]
|
[{block name="d3_ga4_view_search_result_block"}]
|
@ -8,7 +8,7 @@
|
|||||||
<p class="alert alert-info">[{oxmultilang ident="WISH_LIST_EMPTY"}]</p>
|
<p class="alert alert-info">[{oxmultilang ident="WISH_LIST_EMPTY"}]</p>
|
||||||
[{/if}]
|
[{/if}]
|
||||||
|
|
||||||
[{include file="addtocart.tpl" htmlIdAmountOfArticles='#amountToBasket'}]
|
[{include file="event/add_to_cart.tpl" htmlIdAmountOfArticles='#amountToBasket'}]
|
||||||
|
|
||||||
[{insert name="oxid_tracker" title=$template_title}]
|
[{insert name="oxid_tracker" title=$template_title}]
|
||||||
[{/capture}]
|
[{/capture}]
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
[{/if}]
|
[{/if}]
|
||||||
[{/block}]
|
[{/block}]
|
||||||
|
|
||||||
[{include file="addtocart.tpl" htmlIdAmountOfArticles='#amountToBasket'}]
|
[{include file="event/add_to_cart.tpl" htmlIdAmountOfArticles='#amountToBasket'}]
|
||||||
|
|
||||||
[{insert name="oxid_tracker" title=$template_title}]
|
[{insert name="oxid_tracker" title=$template_title}]
|
||||||
[{/capture}]
|
[{/capture}]
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
</p>
|
</p>
|
||||||
[{/if}]
|
[{/if}]
|
||||||
|
|
||||||
[{include file="addtocart.tpl" htmlIdAmountOfArticles='#amountToBasket'}]
|
[{include file="event/add_to_cart.tpl" htmlIdAmountOfArticles='#amountToBasket'}]
|
||||||
|
|
||||||
[{insert name="oxid_tracker" title=$template_title}]
|
[{insert name="oxid_tracker" title=$template_title}]
|
||||||
[{/capture}]
|
[{/capture}]
|
||||||
|
@ -4,6 +4,13 @@ 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/),
|
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).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [1.14.0](https://git.d3data.de/D3Public/GoogleAnalytics4/compare/1.13.0...1.14.0) - 2024-01-03
|
||||||
|
### Added
|
||||||
|
- add_to_cart Event to several new shop-pages (landing-page, Account, category article-list)
|
||||||
|
### Changed
|
||||||
|
- template structure
|
||||||
|
- code cleanup
|
||||||
|
|
||||||
## [1.13.0](https://git.d3data.de/D3Public/GoogleAnalytics4/compare/1.12.0...1.13.0) - 2023-09-13
|
## [1.13.0](https://git.d3data.de/D3Public/GoogleAnalytics4/compare/1.12.0...1.13.0) - 2023-09-13
|
||||||
### Added
|
### Added
|
||||||
- extended Docs
|
- extended Docs
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Technische Doku
|
# Technische Doku
|
||||||
## GA4 Events / Customizing
|
## GA4 Events / Customizing
|
||||||
Für alle implementierten GA4 Events existieren Templates unter `source/modules/d3/googleanalytics4/Application/views/ga4/`, dabei entspricht der Dateiname dem Eventnamen in GA4.
|
Für alle implementierten GA4 Events existieren Templates unter `source/modules/d3/googleanalytics4/Application/views/event/`, dabei entspricht der Dateiname dem Eventnamen in GA4.
|
||||||
Die Einbindung dieser Event-Templates erfolgt über TPL-Blöcke unter `source/modules/d3/googleanalytics4/Application/views/blocks/`.
|
Die Einbindung dieser Event-Templates erfolgt über TPL-Blöcke unter `source/modules/d3/googleanalytics4/Application/views/blocks/`.
|
||||||
*Hinweis: nicht alle templates sind bereits gefüllt. Wünschen Sie die Implementierung eines unausgefüllten templates?
|
*Hinweis: nicht alle templates sind bereits gefüllt. Wünschen Sie die Implementierung eines unausgefüllten templates?
|
||||||
Kommen Sie auf uns zu unter https://www.d3data.de/
|
Kommen Sie auf uns zu unter https://www.d3data.de/
|
||||||
|
16
metadata.php
16
metadata.php
@ -62,8 +62,14 @@ $aModule = [
|
|||||||
OEStartController::class => d3GtmStartController::class
|
OEStartController::class => d3GtmStartController::class
|
||||||
],
|
],
|
||||||
'templates' => [
|
'templates' => [
|
||||||
// own callable files
|
// Event files that store the GA4 Event-Information
|
||||||
'addtocart.tpl' => 'd3/googleanalytics4/Application/views/ga4/add_to_cart.tpl',
|
'event/add_to_cart.tpl' => 'd3/googleanalytics4/Application/views/event/add_to_cart.tpl',
|
||||||
|
'event/view_item.tpl' => 'd3/googleanalytics4/Application/views/event/view_item.tpl',
|
||||||
|
'event/view_cart.tpl' => 'd3/googleanalytics4/Application/views/event/view_cart.tpl',
|
||||||
|
'event/purchase.tpl' => 'd3/googleanalytics4/Application/views/event/purchase.tpl',
|
||||||
|
'event/view_item_list.tpl' => 'd3/googleanalytics4/Application/views/event/view_item_list.tpl',
|
||||||
|
'event/view_search_result.tpl' => 'd3/googleanalytics4/Application/views/event/view_search_result.tpl',
|
||||||
|
'event/remove_from_cart.tpl' => 'd3/googleanalytics4/Application/views/event/remove_from_cart.tpl',
|
||||||
|
|
||||||
// complete overwritten file of OXID-Originals
|
// complete overwritten file of OXID-Originals
|
||||||
// the path of the template-name is the original path to the file in OXID-context from tpl/->
|
// the path of the template-name is the original path to the file in OXID-context from tpl/->
|
||||||
@ -108,14 +114,14 @@ $aModule = [
|
|||||||
[
|
[
|
||||||
'template' => 'page/list/list.tpl',
|
'template' => 'page/list/list.tpl',
|
||||||
'block' => 'page_list_productlist',
|
'block' => 'page_list_productlist',
|
||||||
'file' => '/Application/views/ga4/view_item_list.tpl',
|
'file' => '/Application/views/blocks/view_item_list.tpl',
|
||||||
'position' => 150
|
'position' => 150
|
||||||
],
|
],
|
||||||
// view_search_result
|
// view_search_result
|
||||||
[
|
[
|
||||||
'template' => 'page/search/search.tpl',
|
'template' => 'page/search/search.tpl',
|
||||||
'block' => 'search_results',
|
'block' => 'search_results',
|
||||||
'file' => '/Application/views/ga4/view_search_result.tpl',
|
'file' => '/Application/views/blocks/view_search_result.tpl',
|
||||||
'position' => 150
|
'position' => 150
|
||||||
],
|
],
|
||||||
// add_to_cart
|
// add_to_cart
|
||||||
@ -141,7 +147,7 @@ $aModule = [
|
|||||||
[
|
[
|
||||||
'template' => 'page/checkout/basket.tpl',
|
'template' => 'page/checkout/basket.tpl',
|
||||||
'block' => 'checkout_basket_main',
|
'block' => 'checkout_basket_main',
|
||||||
'file' => '/Application/views/ga4/remove_from_cart.tpl',
|
'file' => '/Application/views/blocks/remove_from_cart.tpl',
|
||||||
'position' => 150
|
'position' => 150
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
Loading…
Reference in New Issue
Block a user