[Added] twig files ( unfixed )

This commit is contained in:
2025-05-23 14:25:32 +02:00
parent fcdb794c93
commit a1df8be9c1
27 changed files with 947 additions and 0 deletions

View File

@ -0,0 +1,108 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>{{ title }}</title>
<meta http-equiv="Content-Type" content="text/html; charset={{ charset }}">
{% if isset(meta_refresh_sec, meta_refresh_url) %}
<meta http-equiv=Refresh content="{{ meta_refresh_sec }};URL={{ meta_refresh_url|replace("&amp;", "&") }}">
{% endif %}
<link rel="shortcut icon" href="{{ oViewConf.getBaseDir() }}favicon.ico">
{% block admin_headitem_inccss %}
<link rel="stylesheet" href="{{ oViewConf.getResourceUrl() }}main.css">
<link rel="stylesheet" href="{{ oViewConf.getResourceUrl() }}colors_{{ oViewConf.getEdition()|lower }}.css">
<link rel="stylesheet" type="text/css" href="{{ oViewConf.getResourceUrl() }}yui/build/assets/skins/sam/container.css">
{% endblock %}
{% block admin_headitem_incjs %}
<script type="text/javascript" src="{{ oViewConf.getResourceUrl() }}yui/build/utilities/utilities.js"></script>
<script type="text/javascript" src="{{ oViewConf.getResourceUrl() }}yui/build/container/container-min.js"></script>
<script type="text/javascript" src="{{ oViewConf.getResourceUrl() }}yui/oxid-help.js"></script>
{% endblock %}
{% block admin_headitem_js %}
<script type="text/javascript">
<!--
// standard messages
var sUnassignMessage = "{{ translate({ ident: 'GENERAL_YOUWANTTOUNASSIGN' }) }}";
var sDeleteMessage = "{{ translate({ ident: 'GENERAL_YOUWANTTODELETE' }) }}";
// class info
var sDefClass = '{{ default_edit }}';
var sActClass = '{{ actlocation }}';
{% if updatelist == 1 %}
window.onload = function ()
{
top.oxid.admin.updateList('{{ oxid }}');
}
{% endif %}
var ajaxpopup = null;
function showDialog( sParams )
{
ajaxpopup = window.open('{{ oViewConf.getSelfLink()|replace("&amp;", "&") }}'+sParams, 'ajaxpopup', 'width=850,height=680,scrollbars=yes,resizable=yes');
}
function focusPopup()
{
if ( ajaxpopup )ajaxpopup.focus();
}
window.onclick = focusPopup;
function cleanupLongDesc( sValue )
{
if ( sValue == '<br>' || sValue == '<br />' ) {
return '';
}
return sValue;
}
function copyLongDesc( sIdent )
{
var textVal = null;
try {
if ( WPro.editors[sIdent] != null ) {
WPro.editors[sIdent].prepareSubmission();
textVal = cleanupLongDesc( WPro.editors[sIdent].getValue() );
}
} catch(err) {
var varEl = document.getElementById(sIdent);
if (varEl != null) {
textVal = cleanupLongDesc( varEl.value );
}
}
if (textVal == null) {
var varName = 'editor_'+sIdent;
var varEl = document.getElementById(varName);
if (varEl != null) {
textVal = cleanupLongDesc( varEl.value );
}
}
if (textVal != null) {
var oTarget = document.getElementsByName( 'editval['+ sIdent + ']' );
if ( oTarget != null && ( oField = oTarget.item( 0 ) ) != null ) {
oField.value = textVal;
}
}
}
-->
</script>
{% endblock %}
</head>
<body>
{% include "tooltips.html.twig" %}
<div id="oxajax_data"></div>
<div class="{{ box|default('box') }}" style="height: 100%;">
{% include "inc_error.html.twig" with {Errorlist: Errors.default} %}
<!-- Input help popup -->
<div id="helpTextContainer" class="yui-skin-sam">
<div id="helpPanel"></div>
</div>

View File

@ -0,0 +1,197 @@
{% include "@d3googleanalytics4/admin/d3ga4uiheaditem.html.twig" with {title: "GENERAL_ADMIN_TITLE"|translate} %}
<style>
body {
background-image: linear-gradient(to top, #d5d4d0 0%, #d5d4d0 1%, #eeeeec 31%, #efeeec 75%, #e9e9e7 100%);
}
</style>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
{% if readonly %}
{% set readonly = "readonly disabled" %}
{% else %}
{% set readonly = "" %}
{% endif %}
<div>
<form name="d3gtmformedit" id="d3gtmformedit" action="{{ oViewConf.getSelfLink() }}" enctype="multipart/form-data" method="post">
<div class="row">
<div class="col-6">
{{ oViewConf.getHiddenSid() }}
<input type="hidden" name="cl" value="{{ oViewConf.getActiveClassName() }}">
<input type="hidden" name="fnc" value="">
<input type="hidden" name="editlanguage" value="{{ editlanguage }}">
<div class="card mb-5">
<div class="card-header">
{{ translate({ ident: "D3BASECONFIG" }) }}
</div>
<div class="card-body">
<div class="form-check mb-3">
<input class="form-check-input" type="checkbox" value="" name="editval[bool][_blEnableGa4]" {% if d3ViewObject.d3GetModuleConfigParam('_blEnableGa4') %}checked{% endif %} id="blGA4enab">
<label class="form-check-label" for="flexCheckDefault">
{{ translate({ ident: "D3ACTIVATEMOD" }) }} {% if false is same as(d3ViewObject.d3GetModuleConfigParam('_blEnableGa4')) %}<span style="color: red">{{ translate({ ident: "D3INACTIVATEMOD" }) }}</span>{% endif %}
</label>
</div>
<div class="mb-3">
<div class="input-group w-50">
<span class="input-group-text" id="basic-addon3">{{ translate({ ident: "D3CONTAINERID" }) }}</span>
<input type="text" class="form-control" id="_sContainerID" name="editval[str][_sContainerID]" aria-describedby="basic-addon3" value="{{ d3ViewObject.d3GetModuleConfigParam('_sContainerID') }}">
</div>
<div class="text-muted">{{ translate({ ident: "D3CONTAINERID_HELP" }) }}</div>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="_blEnableDebug" name="editval[bool][_blEnableDebug]" {% if d3ViewObject.d3GetModuleConfigParam('_blEnableDebug') %}checked{% endif %}>
<label class="form-check-label" for="flexCheckDefault">
{{ translate({ ident: "D3USEDEBUGMODE" }) }}{% include "inputhelp.html.twig" with {'sHelpId': help_id("D3USEDEBUGMODE_HELP"), 'sHelpText': help_text("D3USEDEBUGMODE_HELP")} %}
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="_blActivateConsentMode" name="editval[bool][_blEnableConsentMode]" {% if d3ViewObject.d3GetModuleConfigParam('_blEnableConsentMode') %}checked{% endif %}>
<label class="form-check-label" for="flexCheckChecked">
{{ translate({ ident: "D3USEGOOGLECONSENTMODE" }) }}{% include "inputhelp.html.twig" with {'sHelpId': help_id("D3USEGOOGLECONSENTMODE_HELP"), 'sHelpText': help_text("D3USEGOOGLECONSENTMODE_HELP")} %}
</label>
</div>
</div>
<button type="submit" name="save" class="btn btn-light" onClick="Javascript:document.d3gtmformedit.fnc.value='save'">{{ translate({ ident: "GENERAL_SAVE" }) }}</button>
</div>
</div>
<div class="col-6">
<div class="card border border-0">
<div class="accordion" id="accordionPanelsStayOpenExample">
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#panelsStayOpen-cmpsettings" aria-expanded="true" aria-controls="panelsStayOpen-cmpsettings">
{{ translate({ ident: "D3CMPTABTITLE" }) }}
</button>
</h2>
<div id="panelsStayOpen-cmpsettings" class="accordion-collapse collapse show">
<div class="accordion-body">
<div class="form-check">
<input class="form-check-input" type="checkbox" name="editval[bool][_blEnableOwnCookieManager]" value="" id="_hasOwnCookieManager" {% if d3ViewObject.d3GetModuleConfigParam('_blEnableOwnCookieManager') %}checked{% endif %}>
<label class="form-check-label" for="flexCheckChecked">
{{ translate({ ident: "D3CMPUSEQ" }) }}{% include "inputhelp.html.twig" with {'sHelpId': help_id("D3CMPUSEQ_HELP"), 'sHelpText': help_text("D3CMPUSEQ_HELP")} %}
</label>
</div>
<div class="mb-3">
<label>
{{ translate({ ident: "D3CMP" }) }}
</label>
<select class="form-select w-50" name="editval[select][_HAS_STD_MANAGER]" aria-label="Default select example">
{% for sInternalName, sPublicName in d3ManagerTypeArray %}
<option value="{{ sInternalName }}" {% if sInternalName is same as(d3CurrentCMP) %}SELECTED{% endif %}>{{ sPublicName }}</option>
{% endfor %}
</select>
</div>
<div>
<div class="input-group w-75">
<span class="input-group-text" id="basic-addon3">{{ translate({ ident: "D3CNTRLPARAM" }) }}</span>
<input type="text" class="form-control" id="_controlParameter" name="editval[str][_sControlParameter]" value="{{ d3ViewObject.d3GetModuleConfigParam('_sControlParameter') }}" aria-describedby="basic-addon3">
</div>
<div class="text-muted">{{ translate({ ident: "D3CNTRLPARAM_HELP" }) }}</div>
</div>
</div>
<button type="submit" name="save" class="btn btn-light w-100" onClick="Javascript:document.d3gtmformedit.fnc.value='save'">{{ translate({ ident: "GENERAL_SAVE" }) }}</button>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#panelsStayOpen-serversidetagging" aria-expanded="false" aria-controls="panelsStayOpen-serversidetagging">
{{ translate({ ident: "D3SERVERSIDETAGGING" }) }}
</button>
</h2>
<div id="panelsStayOpen-serversidetagging" class="accordion-collapse collapse">
<div class="accordion-body">
<div class="card bg-light rounded mb-3">
<div class="card-body">
{{ translate({ ident: "D3SERVERSIDETAGGING_HINT" }) }}
</div>
</div>
<div class="input-group mb-3">
<span class="input-group-text w-25" id="basic-addon3">{{ translate({ ident: "D3SERVERSIDETAGGING_TITLE_ACTIVE" }) }}</span>
<input type="text" class="form-control" id="_serversidetagging_js" name="editval[str][_sServersidetagging_js]" value="{{ d3ViewObject.d3GetModuleConfigParam('_sServersidetagging_js') }}" aria-describedby="basic-addon3">
</div>
<div class="input-group mb-3">
<span class="input-group-text w-25" id="basic-addon3">{{ translate({ ident: "D3SERVERSIDETAGGING_TITLE_PASSIVE" }) }}</span>
<input type="text" class="form-control" id="_serversidetagging_nojs" name="editval[str][_sServersidetagging_nojs]" value="{{ d3ViewObject.d3GetModuleConfigParam('_sServersidetagging_nojs') }}" aria-describedby="basic-addon3">
</div>
<div>
<button type="button" class="btn btn-light mt-3" data-bs-toggle="modal" data-bs-target="#exampleModal">
{{ translate({ ident: "D3DETAILED_DESC" }) }}
</button>
<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
<h4>{{ translate({ ident: "D3SERVERSIDETAGGING_TITLE_ACTIVE" }) }}</h4>
{{ translate({ ident: "D3SERVERSIDETAGGING_ACTIVE" }) }}
<hr>
<h4>{{ translate({ ident: "D3SERVERSIDETAGGING_TITLE_PASSIVE" }) }}</h4>
{{ translate({ ident: "D3SERVERSIDETAGGING_PASSIVE" }) }}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">{{ translate({ ident: "D3CLOSE" }) }}</button>
</div>
</div>
</div>
</div>
</div>
</div>
<button type="submit" name="save" class="btn btn-light w-100" onClick="Javascript:document.d3gtmformedit.fnc.value='save'">{{ translate({ ident: "GENERAL_SAVE" }) }}</button>
</div>
</div>
{% if d3ViewConfObject.d3IsUsercentricsCMPChosen() %}
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#panelsStayOpen-usercentricsdynamicoptions" aria-expanded="false" aria-controls="panelsStayOpen-usercentricsdynamicoptions">
{{ translate({ ident: "D3USRCNTRCSDYNOPT" }) }}
</button>
</h2>
<div id="panelsStayOpen-usercentricsdynamicoptions" class="accordion-collapse collapse">
<div class="accordion-body">
<div class="card bg-light rounded mb-3">
<div class="card-body">
<div class="text-danger mb-3">
{{ translate({ ident: "D3USRCNTRCSCFG_WARNING" }) }}
</div>
{{ translate({ ident: "D3USRCNTRCSCFG_DOCS" }) }}
</div>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="enabledefaultmeasurementvalues" name="editval[bool][_blEnableMeasurementCapabilities]" {% if d3ViewObject.d3GetModuleConfigParam('_blEnableMeasurementCapabilities') %}checked{% endif %}>
<label class="form-check-label" for="flexCheckDefault">
{{ translate({ ident: "D3USRCNTRCSCFG_ACT_INDIVDEFVAL" }) }}
</label>
</div>
<div class="input-group mb-3">
<span class="input-group-text w-25" id="basic-addon3">{{ translate({ ident: "D3USRCNTRCSCFG_STD_CNST" }) }}</span>
<textarea name="editval[str][_sMeasurementCapabilities]" class="form-control" rows="15">{{ d3ViewObject.d3GetModuleConfigParam('_sDefaultMeasurementCapabilities') }}</textarea>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="enableUsercentricsConsentModeApi" name="editval[bool][_blEnableUsercentricsConsentModeApi]" {% if d3ViewObject.d3GetModuleConfigParam('_blEnableUsercentricsConsentModeApi') %}checked{% endif %}>
<label class="form-check-label" for="flexCheckDefault">
{{ translate({ ident: "D3USRCNTRCSCFG_ACT_CNSTMDE_API" }) }}
</label>
</div>
<div class="input-group mb-3">
<span class="input-group-text w-25" id="basic-addon3">{{ translate({ ident: "D3USRCNTRCSCFG_CNSTMDE_API" }) }}</span>
<textarea name="editval[str][_sUsercentricsConsentModeApi]" class="form-control" rows="40">{{ d3ViewObject.d3GetModuleConfigParam('_sDefaultUsercentricsConsentModeApi') }}</textarea>
</div>
</div>
<button type="submit" name="save" class="btn btn-light w-100" onClick="Javascript:document.d3gtmformedit.fnc.value='save'">{{ translate({ ident: "GENERAL_SAVE" }) }}</button>
</div>
</div>
{% endif %}
</div>
</div>
</div>
</div>
</form>
</div>

View File

@ -0,0 +1,53 @@
{# $oxcmp_basket|get_class_methods|dumpvar #}
{% set gtmBasketPrice = oxcmp_basket.getPrice() %}
{% set gtmBasketObject = oxcmp_basket %}
{% set gtmCartArticles = gtmBasketObject.getBasketArticles() %}
{% set gtmPaymentObject = oView.getPayment() %}
{% block gtm_ga4_add_payment_info_block %}
{% capture name = "gtm_ga4_add_payment_info" %}
{% spaceless %}
dataLayer.push({"event": null, "eventLabel": null, "ecommerce": null}); /* Clear the previous ecommerce object. */
dataLayer.push({
'event': 'add_payment_info',
'eventLabel':'Checkout - Payment info',
'payment_type':'{{ gtmPaymentObject.gtmGetSelectedPaymentName() }}',
'ecommerce':
{
'actionField': "Payment-Info",
'currency': "{{ currency.name }}",
'value': {{ gtmBasketPrice.getPrice() }},
'coupon': '{% for key, sVoucher in oxcmp_basket.getVouchers() %}{{ sVoucher.sVoucherNr }}{% if not loop.last %}, {% endif %}{% endfor %}',
'items':
[
{% for basketindex, basketitem in oxcmp_basket.getContents() %}
{% set gtmItemPriceObject = basketitem.getPrice() %}
{% set gtmBasketItem = basketitem.getArticle() %}
{% set gtmBasketItemCategory = 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, true) }}',
'item_category_2': '{{ gtmBasketItemCategory.getSplitCategoryArray(1, true) }}',
'item_category_3': '{{ gtmBasketItemCategory.getSplitCategoryArray(2, true) }}',
'item_category_4': '{{ gtmBasketItemCategory.getSplitCategoryArray(3, true) }}',
'item_list_name': '{{ gtmBasketItemCategory.getSplitCategoryArray() }}',
{% endif %}
'price': {{ gtmItemPriceObject.getPrice() }},
'coupon': '{% for key, sVoucher in oxcmp_basket.getVouchers() %}{{ sVoucher.sVoucherNr }}{% if not loop.last %}, {% endif %}{% endfor %}',
'quantity': {{ basketitem.getAmount() }},
'position': {{ loop.index0 }}
}{% if not loop.last %},{% endif %}
{% endfor %}
]
}{% if oViewConf.isDebugModeOn() %},
'debug_mode': 'true'
{% endif %}
});
{% endspaceless %}
{% endcapture %}
{{ script({ add: smarty.capture.gtm_ga4_add_payment_info, dynamic: __oxid_include_dynamic }) }}
{% endblock %}

View File

@ -0,0 +1,61 @@
{% if d3CmpBasket and d3CmpBasket.getAddToBasketDecision() and d3CmpBasket.d3GtmRequestedArticleLoadedByAnid() != "null" %}
{% set oGtmProduct = d3CmpBasket.d3GtmRequestedArticleLoadedByAnid() %}
{% set oGtmAmountArticlesAdded = d3CmpBasket.getD3GtmAddToCartAmountArticles() %}
{# $smarty.block.parent #}
{# variable $oGtmProduct is passed from parent tempalte #}
{% set d3PriceObject = oGtmProduct.getPrice() %}
{% set gtmCurrency = oView.getActCurrency() %}
{% set gtmManufacturer = oGtmProduct.getManufacturer() %}
{% set gtmCategory = oGtmProduct.getCategory() %}
{% block d3_ga4_add_to_cart_list_block %}
{% capture name = "d3_ga4_add_to_cart_listtpl" %}
{% spaceless %}
dataLayer.push({"event": null, "eventLabel": null, "ecommerce": null}); /* Clear the previous ecommerce object. */
{# ** Debug cases ** #}
{# event.preventDefault(); #}
let iArtQuantity = $("{{ htmlIdAmountOfArticles }}").val();
let iArtQuantityAdded = {{ oGtmAmountArticlesAdded }};
if(!iArtQuantity && (iArtQuantityAdded is same as(1)){
)
iArtQuantity = 1;
}else{
iArtQuantity = iArtQuantityAdded;
}
dataLayer.push({
'isAddToBasket': true,
'event':'add_to_cart',
'eventLabel': 'add_to_cart',
'ecommerce': {
'currency': "{{ currency.name }}",
'value': iArtQuantity*{{ d3PriceObject.getPrice() }},
'items': [
{
'item_id': '{{ oGtmProduct.getFieldData('oxartnum') }}',
'item_name': '{{ oGtmProduct.getFieldData('oxtitle') }}',
'price': {{ d3PriceObject.getPrice() }},
'item_brand': '{% if gtmManufacturer %}{{ gtmManufacturer.oxmanufacturers__oxtitle.value }}{% endif %}',
'item_variant': '{% if oGtmProduct.getFieldData('oxvarselect') %}{{ oGtmProduct.getFieldData('oxvarselect') }}{% endif %}',
{% if gtmCategory %}
'item_category': '{{ gtmCategory.getSplitCategoryArray(0, true) }}',
'item_category_2':'{{ gtmCategory.getSplitCategoryArray(1, true) }}',
'item_category_3':'{{ gtmCategory.getSplitCategoryArray(2, true) }}',
'item_category_4':'{{ gtmCategory.getSplitCategoryArray(3, true) }}',
'item_list_name':'{{ gtmCategory.getSplitCategoryArray() }}',
{% endif %}
'quantity': iArtQuantity
}
]
}{% if oViewConf.isDebugModeOn() %},
'debug_mode': 'true'
{% endif %}
});
{% endspaceless %}
{% endcapture %}
{{ script({ add: smarty.capture.d3_ga4_add_to_cart_listtpl, dynamic: __oxid_include_dynamic }) }}
{% endblock %}

View File

@ -0,0 +1,52 @@
{# $oxcmp_basket|get_class_methods|dumpvar #}
{% set d3BasketPrice = oxcmp_basket.getPrice() %}
{% set d3BasketObject = oxcmp_basket %}
{% set gtmCartArticles = d3BasketObject.getBasketArticles() %}
{% set gtmCurrency = oView.getActCurrency() %}
{% block d3_ga4_begin_checkout_block %}
{% capture name = "d3_ga4_begin_checkout" %}
{% spaceless %}
dataLayer.push({"event": null, "eventLabel": null, "ecommerce": null}); /* Clear the previous ecommerce object. */
dataLayer.push({
'event': 'begin_checkout',
'eventLabel':'Begin of checkout',
'ecommerce':
{
'actionField': "Begin",
'currency': "{{ gtmCurrency.name }}",
'value': {{ d3BasketPrice.getPrice() }},
'coupon': '{% for key, sVoucher in oxcmp_basket.getVouchers() %}{{ sVoucher.sVoucherNr }}{% if not loop.last %}, {% endif %}{% endfor %}',
'items':
[
{% for basketindex, basketitem in oxcmp_basket.getContents() %}
{% set d3oItemPrice = basketitem.getPrice() %}
{% set gtmBasketItem = basketitem.getArticle() %}
{% set gtmBasketItemCategory = 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, true) }}',
'item_category_2': '{{ gtmBasketItemCategory.getSplitCategoryArray(1, true) }}',
'item_category_3': '{{ gtmBasketItemCategory.getSplitCategoryArray(2, true) }}',
'item_category_4': '{{ gtmBasketItemCategory.getSplitCategoryArray(3, true) }}',
'item_list_name': '{{ gtmBasketItemCategory.getSplitCategoryArray() }}',
{% endif %}
'price': {{ d3oItemPrice.getPrice() }},
'coupon': '{% for key, sVoucher in oxcmp_basket.getVouchers() %}{{ sVoucher.sVoucherNr }}{% if not loop.last %}, {% endif %}{% endfor %}',
'quantity': {{ basketitem.getAmount() }},
'position': {{ loop.index0 }}
}{% if not loop.last %},{% endif %}
{% endfor %}
]
}{% if oViewConf.isDebugModeOn() %},
'debug_mode': 'true'
{% endif %}
});
{% endspaceless %}
{% endcapture %}
{{ script({ add: smarty.capture.d3_ga4_begin_checkout, dynamic: __oxid_include_dynamic }) }}
{% endblock %}

View File

@ -0,0 +1,56 @@
{% block d3_ga4_purchase_block %}
{% capture name = "d3_ga4_purchase" %}
{% spaceless %}
dataLayer.push({"event": null, "eventLabel": null, "ecommerce": null}); /* Clear the previous ecommerce object. */
{% set gtmOrder = oView.getOrder() %}
{% set gtmBasket = oView.getBasket() %}
{% set gtmArticles = gtmOrder.getOrderArticles() %}
{% set gtmOrderVouchers = 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': {{ gtmOrder.getFieldData("oxartvatprice1")+gtmOrder.getFieldData("oxartvatprice2") }},
'shipping': {{ gtmOrder.getFieldData("oxdelcost") }},
'currency': '{{ gtmOrder.getFieldData('oxcurrency') }}',
'coupon': '{% for gtmOrderVoucher in gtmOrderVouchers %}{{ gtmOrderVoucher }}{% if not loop.last %}, {% endif %}{% endfor %}',
'paymentType': '{{ gtmBasket.getPaymentOnPaymentId() }}',
'items':
[
{% for gtmBasketItem in gtmArticles %}
{% set gtmPurchaseItemPriceObject = gtmBasketItem.getPrice() %}
{% set gtmPurchaseItem = gtmBasketItem.getArticle() %}
{% set gtmPurchaseItemCategory = gtmPurchaseItem.getCategory() %}
{
'item_id': '{{ gtmBasketItem.getFieldData("oxartnum") }}',
'item_name': '{{ gtmBasketItem.getFieldData("oxtitle") }}',
'affiliation': '{{ gtmBasketItem.getFieldData("oxtitle") }}',
'coupon': '{% for gtmOrderVoucher in gtmOrderVouchers %}{{ gtmOrderVoucher }}{% if not loop.last %}, {% endif %}{% endfor %}',
'item_variant': '{{ gtmBasketItem.getFieldData("oxselvariant") }}',
{% if gtmPurchaseItemCategory %}
'item_category': '{{ gtmPurchaseItemCategory.getSplitCategoryArray(0, true) }}',
'item_category_2': '{{ gtmPurchaseItemCategory.getSplitCategoryArray(1, true) }}',
'item_category_3': '{{ gtmPurchaseItemCategory.getSplitCategoryArray(2, true) }}',
'item_category_4': '{{ gtmPurchaseItemCategory.getSplitCategoryArray(3, true) }}',
'item_list_name': '{{ gtmPurchaseItemCategory.getSplitCategoryArray() }}',
{% endif %}
'price': {{ gtmPurchaseItemPriceObject.getPrice() }},
'quantity': {{ gtmBasketItem.getFieldData("oxamount") }},
'position': {{ loop.index }}
}{% if not loop.last %},{% endif %}
{% endfor %}
]
}{% if oViewConf.isDebugModeOn() %},
'debug_mode': 'true'
{% endif %}
})
{% endspaceless %}
{% endcapture %}
{{ script({ add: smarty.capture.d3_ga4_purchase, dynamic: __oxid_include_dynamic }) }}
{% endblock %}

View File

@ -0,0 +1,46 @@
{% block d3_ga4_remove_from_cart_block %}
{% if hasBeenReloaded %}
{% set d3BasketPrice = oxcmp_basket.getPrice() %}
{% capture name = "d3_ga4_remove_from_cart" %}
{% spaceless %}
dataLayer.push({"event": null, "eventLabel": null, "ecommerce": null}); /* Clear the previous ecommerce object. */
dataLayer.push({
'isRemoveFromCart': true,
'event': 'remove_from_cart',
'eventLabel':'remove_from_cart',
'ecommerce': {
'actionField': "step: 1",
'currency': "{{ currency.name }}",
'value': {{ d3BasketPrice.getPrice() }},
'coupon': '{% for key, sVoucher in oxcmp_basket.getVouchers() %}{{ sVoucher.sVoucherNr }}{% if not loop.last %}, {% endif %}{% endfor %}',
'items': [
{% for rmItemindex, rmItem in toRemoveArticles.getArray() %}
{% set d3oItemPrice = rmItem.getPrice() %}
{% set gtmBasketItemCategory = rmItem.getCategory() %}
{
'item_id': '{{ rmItem.getFieldData('oxartnum') }}',
'item_name': '{{ rmItem.getFieldData('oxtitle') }}',
'item_variant': '{{ rmItem.getFieldData('oxvarselect') }}',
{% if gtmBasketItemCategory %}
'item_category': '{{ gtmBasketItemCategory.getSplitCategoryArray(0, true) }}',
'item_category_2': '{{ gtmBasketItemCategory.getSplitCategoryArray(1, true) }}',
'item_category_3': '{{ gtmBasketItemCategory.getSplitCategoryArray(2, true) }}',
'item_category_4': '{{ gtmBasketItemCategory.getSplitCategoryArray(3, true) }}',
'item_list_name': '{{ gtmBasketItemCategory.getSplitCategoryArray() }}',
{% endif %}
'price': {{ d3oItemPrice.getPrice() }},
'coupon': '{% for key, sVoucher in oxcmp_basket.getVouchers() %}{{ sVoucher.sVoucherNr }}{% if not loop.last %}, {% endif %}{% endfor %}',
'quantity': '{{ rmItem.getFieldData('d3AmountThatGotRemoved') }}',
'position': {{ loop.index0 }}
}{% if not loop.last %},{% endif %}
{% endfor %}
]
}{% if oViewConf.isDebugModeOn() %},
'debug_mode': 'true'
{% endif %}
});
{% endspaceless %}
{% endcapture %}
{{ script({ add: smarty.capture.d3_ga4_remove_from_cart, dynamic: __oxid_include_dynamic }) }}
{% endif %}
{% endblock %}

View File

@ -0,0 +1,50 @@
{# $oxcmp_basket|get_class_methods|dumpvar #}
{% set d3BasketPrice = oxcmp_basket.getPrice() %}
{% set gtmCartArticles = oView.getBasketArticles() %}
{% block d3_ga4_view_cart_block %}
{% capture name = "d3_ga4_view_cart" %}
{% spaceless %}
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': '{% for key, sVoucher in oxcmp_basket.getVouchers() %}{{ sVoucher.sVoucherNr }}{% if not loop.last %}, {% endif %}{% endfor %}',
'items':
[
{% for basketindex, basketitem in oxcmp_basket.getContents() %}
{% set d3oItemPrice = basketitem.getPrice() %}
{% set gtmBasketItem = basketitem.getArticle() %}
{% set gtmBasketItemCategory = 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, true) }}',
'item_category_2': '{{ gtmBasketItemCategory.getSplitCategoryArray(1, true) }}',
'item_category_3': '{{ gtmBasketItemCategory.getSplitCategoryArray(2, true) }}',
'item_category_4': '{{ gtmBasketItemCategory.getSplitCategoryArray(3, true) }}',
'item_list_name': '{{ gtmBasketItemCategory.getSplitCategoryArray() }}',
{% endif %}
'price': {{ d3oItemPrice.getPrice() }},
'coupon': '{% for key, sVoucher in oxcmp_basket.getVouchers() %}{{ sVoucher.sVoucherNr }}{% if not loop.last %}, {% endif %}{% endfor %}',
'quantity': {{ basketitem.getAmount() }},
'position': {{ loop.index0 }}
}{% if not loop.last %},{% endif %}
{% endfor %}
]
}{% if oViewConf.isDebugModeOn() %},
'debug_mode': 'true'
{% endif %}
});
{% endspaceless %}
{% endcapture %}
{{ script({ add: smarty.capture.d3_ga4_view_cart, dynamic: __oxid_include_dynamic }) }}
{% endblock %}

View File

@ -0,0 +1,41 @@
{% set gtmProduct = oView.getProduct() %}
{% set gtmCategory = gtmProduct.getCategory() %}
{% set gtmManufacturer = gtmProduct.getManufacturer() %}
{% block d3_ga4_view_item_block %}
{% capture name = "d3_ga4_view_item" %}
{% spaceless %}
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 }}{% endif %}',
'item_variant': '{% if gtmProduct.getFieldData("oxvarselect") %}{{ gtmProduct.getFieldData("oxvarselect") }}{% endif %}',
{% if gtmCategory %}
'item_category': '{{ gtmCategory.getSplitCategoryArray(0, true) }}',
'item_category_2':'{{ gtmCategory.getSplitCategoryArray(1, true) }}',
'item_category_3':'{{ gtmCategory.getSplitCategoryArray(2, true) }}',
'item_category_4':'{{ gtmCategory.getSplitCategoryArray(3, true) }}',
'item_list_name':'{{ gtmCategory.getSplitCategoryArray() }}',
{% endif %}
{% set d3PriceObject = gtmProduct.getPrice() %}
'price': {{ d3PriceObject.getPrice() }}
}
]
}{% if oViewConf.isDebugModeOn() %},
'debug_mode': 'true'
{% endif %}
});
{% endspaceless %}
{% endcapture %}
{{ script({ add: smarty.capture.d3_ga4_view_item, dynamic: __oxid_include_dynamic }) }}
{% endblock %}

View File

@ -0,0 +1,45 @@
{% set gtmProducts = oView.getArticleList() %}
{% set gtmCategory = oView.getActiveCategory() %}
{% set breadCrumb = '' %}
{% block d3_ga4_view_item_list_block %}
{% if gtmProducts|length %}
{% capture name = "d3_ga4_view_item_list" %}
{% spaceless %}
dataLayer.push({ecommerce: null});
dataLayer.push({
'event':'view_item_list',
'event_name': 'view_item_list',
'ecommerce': {
'item_list_id': '{{ oView.getCategoryId() }}',
'item_list_name': '{% for sCrum in oView.getBreadCrumb() %}{% if sCrum.title %}{{ breadCrumb|cat(sCrum.title)|cat(") > " }}{% endif %}{% endfor %}',
'items': [
{% for gtmProduct in gtmProducts %}
{% set d3PriceObject = gtmProduct.getPrice() %}
{% set gtmManufacturer = gtmProduct.getManufacturer() %}
{% if not gtmCategory %}{% set gtmCategory = gtmProduct.getCategory() %}{% endif %}
{
'item_id': '{{ gtmProduct.getFieldData("oxartnum") }}',
'item_name': '{{ gtmProduct.getFieldData("oxtitle") }}',
'price': {{ d3PriceObject.getPrice() }},
'item_brand': '{% if gtmManufacturer %}{{ gtmManufacturer.oxmanufacturers__oxtitle.value }}{% endif %}',
{% if gtmCategory %}
'item_category': '{{ gtmCategory.getSplitCategoryArray(0, true) }}',
'item_category_2':'{{ gtmCategory.getSplitCategoryArray(1, true) }}',
'item_category_3':'{{ gtmCategory.getSplitCategoryArray(2, true) }}',
'item_category_4':'{{ gtmCategory.getSplitCategoryArray(3, true) }}',
{% endif %}
'quantity': 1
}{% if not loop.last %},{% endif %}
{% endfor %}
]
}{% if oViewConf.isDebugModeOn() %},
'debug_mode': 'true'
{% endif %}
});
{% endspaceless %}
{% endcapture %}
{{ script({ add: smarty.capture.d3_ga4_view_item_list, dynamic: __oxid_include_dynamic }) }}
{% endif %}
{% endblock %}

View File

@ -0,0 +1,44 @@
{% set gtmProducts = oView.getArticleList() %}
{% block d3_ga4_view_search_result_block %}
{% if gtmProducts %}
{% capture name = "d3_ga4_view_search_result" %}
{% spaceless %}
dataLayer.push({"event": null, "eventLabel": null, "ecommerce": null}); /* Clear the previous ecommerce object. */
dataLayer.push({
'event': 'view_search_result',
'eventLabel':'view_search_result{% if oViewConf.isDebugModeOn() %}_test{% endif %}',
'ecommerce': {
'search_term': '{{ searchparamforhtml }}',
'items': [
{% for gtmProduct in gtmProducts %}
{% set d3PriceObject = gtmProduct.getPrice() %}
{% set gtmManufacturer = gtmProduct.getManufacturer() %}
{% set gtmCategory = gtmProduct.getCategory() %}
{
'item_id': '{{ gtmProduct.getFieldData("oxartnum") }}',
'item_name': '{{ gtmProduct.getFieldData("oxtitle") }}',
'price': {{ d3PriceObject.getPrice() }},
'item_brand': '{% if gtmManufacturer %}{{ gtmManufacturer.oxmanufacturers__oxtitle.value }}{% endif %}',
{% if gtmCategory %}
'item_category': '{{ gtmCategory.getSplitCategoryArray(0, true) }}',
'item_category_2':'{{ gtmCategory.getSplitCategoryArray(1, true) }}',
'item_category_3':'{{ gtmCategory.getSplitCategoryArray(2, true) }}',
'item_category_4':'{{ gtmCategory.getSplitCategoryArray(3, true) }}',
'item_list_name':'{{ gtmCategory.getSplitCategoryArray() }}',
{% endif %}
'quantity': 1
}{% if not loop.last %},{% endif %}
{% endfor %}
]
}{% if oViewConf.isDebugModeOn() %},
'debug_mode': 'true'
{% endif %}
});
{% endspaceless %}
{% endcapture %}
{{ script({ add: smarty.capture.d3_ga4_view_search_result, dynamic: __oxid_include_dynamic }) }}
{% endif %}
{% endblock %}
{% include '@d3googleanalytics4/event/add_to_cart.html.twig' with {htmlIdAmountOfArticles: '#amountToBasket'} %}

View File

@ -0,0 +1,55 @@
{# Always prepare the data layer to avoid errors #}
{% if oViewConf.isGA4enabled() %}
{% set d3GtmContainerIdString = oViewConf.getGtmContainerId() %}
<script>
var dataLayer = {{ oViewConf.getGtmDataLayer() }} || [];
</script>
{% endif %}
{% if oViewConf.isGA4enabled() and oViewConf.D3blShowGtmScript() %}
{% if d3GtmContainerIdString %}
{% spaceless %}
{% if oViewConf.isGtmConsentModeSetActivated() %}
<script type="text/javascript">
{% if oViewConf.d3IsUsercentricsCMPChosen() and oViewConf.d3GetModuleConfigParam('_blEnableMeasurementCapabilities') %}
{{ oViewConf.d3GetModuleConfigParam('_sMeasurementCapabilities')|strip }}
{% else %}
function gtag() {
dataLayer.push(arguments);
}
gtag("consent", "default", {
ad_user_data: "denied",
ad_personalization: "denied",
ad_storage: "denied",
analytics_storage: "denied",
wait_for_update: 2000
});
{% endif %}
</script>
{% endif %}
{% if oViewConf.d3IsUsercentricsCMPChosen() and oViewConf.d3GetModuleConfigParam('_blEnableUsercentricsConsentModeApi') %}
<script type="text/javascript">
{{ oViewConf.d3GetModuleConfigParam('_sUsercentricsConsentModeApi')|strip }}
</script>
{% endif %}
<!-- Google Tag Manager -->
<script {{ oViewConf.getGtmScriptAttributes() }}>
(function (w, d, s, l, i) {
w[l] = w[l] || [];
w[l].push({'gtm.start': new Date().getTime(), event: 'gtm.js'});
var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : '';
j.async = true;
j.src = '{{ oViewConf.getServerSidetaggingJsDomain() }}?id=' + i + dl;
f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', '{{ d3GtmContainerIdString }}');
</script>
<!-- End Google Tag Manager -->
{% endspaceless %}
{% endif %}
{% endif %}
{{ parent() }}

View File

@ -0,0 +1,12 @@
{% if oViewConf.D3blShowGtmScript() %}
{% if oViewConf.getGtmContainerId() %}{% spaceless %}
<!-- Google Tag Manager (noscript) -->
<noscript>
<iframe src="{{ oViewConf.getServerSidetaggingNoJsDomain() }}?id={{ oViewConf.getGtmContainerId() }}"
height="0" width="0" style="display:none;visibility:hidden"></iframe>
</noscript>
<!-- End Google Tag Manager (noscript) -->
{% endspaceless %}{% endif %}
{% endif %}
{{ parent() }}

View File

@ -0,0 +1,18 @@
{% capture append = "oxidBlock_content" %}
{% set template_title = "MY_WISH_LIST"|translate %}
<h1 class="page-header">{{ translate({ ident: "MY_WISH_LIST" }) }}</h1>
{% if oView.getNoticeProductList() %}
{% include "widget/product/list.html.twig" with {type: "line", listId: "noticelistProductList", title: "", products: oView.getNoticeProductList(), removeFunction: "tonoticelist", owishid: oxcmp_user.oxuser__oxid.value} %}
{% else %}
<p class="alert alert-info">{{ translate({ ident: "WISH_LIST_EMPTY" }) }}</p>
{% endif %}
{% include '@d3googleanalytics4/event/add_to_cart.html.twig' with {htmlIdAmountOfArticles: '#amountToBasket'} %}
{{ insert_tracker({title: template_title}) }}
{% endcapture %}
{% capture append = "oxidBlock_sidebar" %}
{% include "page/account/inc/account_menu.html.twig" with {active_link: "noticelist"} %}
{% endcapture %}
{% include "layout/page.html.twig" with {sidebar: "Left"} %}

View File

@ -0,0 +1,32 @@
{% capture append = "oxidBlock_content" %}
{% set template_title = "LISTMANIA"|translate %}
{% set _actvrecommlist = oView.getActiveRecommList() %}
<h1 class="page-header">{{ translate({ ident: "LISTMANIA" }) }}</h1>
{% if oView.isSavedList() %}
{% set _statusMessage = "LISTMANIA_LIST_SAVED"|translate %}
{% include "message/success.html.twig" with {statusMessage: _statusMessage} %}
{% endif %}
{% block account_redommendationlist_content %}
{% include "form/recommendation_edit.html.twig" with {actvrecommlist: _actvrecommlist} %}
<hr>
{% if not oView.getActiveRecommList() %}
{% set blEdit = true %}
{% include "page/recommendations/inc/list.html.twig" %}
{% endif %}
{% endblock %}
{% include '@d3googleanalytics4/event/add_to_cart.html.twig' with {htmlIdAmountOfArticles: '#amountToBasket'} %}
{{ insert_tracker({title: template_title}) }}
{% endcapture %}
{% capture append = "oxidBlock_sidebar" %}
{% include "page/account/inc/account_menu.html.twig" with {active_link: "recommendationlist"} %}
{% endcapture %}
{% include "layout/page.html.twig" with {sidebar: "Left"} %}

View File

@ -0,0 +1,44 @@
{% capture append = "oxidBlock_content" %}
{% set template_title = "MY_GIFT_REGISTRY"|translate %}
{% if not oView.getWishListUsers() and oView.getWishListSearchParam() %}
{% set _statusMessage = "MESSAGE_SORRY_NO_GIFT_REGISTRY"|translate %}
{% include "message/error.html.twig" with {statusMessage: _statusMessage} %}
{% endif %}
{% set editval = oView.getEnteredData() %}
{% if oView.isWishListEmailSent() %}
{% set _statusMessage = "GIFT_REGISTRY_SENT_SUCCESSFULLY"|translate(editval.rec_email) %}
{% include "message/notice.html.twig" with {statusMessage: _statusMessage} %}
{% endif %}
<h1 class="page-header">{{ oView.getTitle() }}</h1>
<div class="wishlist-search">
{% include "form/wishlist_search.html.twig" with {searchClass: "account_wishlist"} %}
</div>
<hr>
<div class="wishlist">
{% if oView.getWishList() %}
{% include "form/wishlist_publish.html.twig" %}
<hr>
{% include "form/wishlist_suggest.html.twig" %}
{% endif %}
</div>
{% if oView.getWishList() %}
{% include "widget/product/list.html.twig" with {type: "line", listId: "wishlistProductList", title: "", products: oView.getWishProductList(), removeFunction: "towishlist", toBasketFunction: "tobasket", owishid: oxcmp_user.oxuser__oxid.value} %}
{% else %}
<p class="alert alert-info">
{{ translate({ ident: "GIFT_REGISTRY_EMPTY" }) }}
</p>
{% endif %}
{% include '@d3googleanalytics4/event/add_to_cart.html.twig' with {htmlIdAmountOfArticles: '#amountToBasket'} %}
{{ insert_tracker({title: template_title}) }}
{% endcapture %}
{% capture append = "oxidBlock_sidebar" %}
{% include "page/account/inc/account_menu.html.twig" with {active_link: "wishlist"} %}
{% endcapture %}
{% include "layout/page.html.twig" with {sidebar: "Left"} %}

View File

@ -0,0 +1,3 @@
{{ parent() }}
{% include "@d3googleanalytics4/event/add_payment_info.html.twig" %}

View File

@ -0,0 +1,3 @@
{{ parent() }}
{% include "@d3googleanalytics4/event/begin_checkout.html.twig" %}

View File

@ -0,0 +1,3 @@
{{ parent() }}
{% include "@d3googleanalytics4/event/purchase.html.twig" %}

View File

@ -0,0 +1,3 @@
{{ parent() }}
{% include "@d3googleanalytics4/event/remove_from_cart.html.twig" %}

View File

@ -0,0 +1,3 @@
{{ parent() }}
{% include "@d3googleanalytics4/event/view_cart.html.twig" %}

View File

@ -0,0 +1,3 @@
{{ parent() }}
{% include '@d3googleanalytics4/event/add_to_cart.html.twig' with {htmlIdAmountOfArticles: '#amountToBasket'} %}

View File

@ -0,0 +1,3 @@
{{ parent() }}
{% include "@d3googleanalytics4/event/view_item.html.twig" %}

View File

@ -0,0 +1,3 @@
{{ parent() }}
{% include '@d3googleanalytics4/event/add_to_cart.html.twig' with {htmlIdAmountOfArticles: '#amountToBasket'} %}

View File

@ -0,0 +1,3 @@
{{ parent() }}
{% include "@d3googleanalytics4/event/view_item_list.html.twig" %}

View File

@ -0,0 +1,3 @@
{{ parent() }}
{% include "@d3googleanalytics4/event/view_search_result.html.twig" %}

View File

@ -0,0 +1,3 @@
{{ parent() }}
{% include '@d3googleanalytics4/event/add_to_cart.html.twig' with {htmlIdAmountOfArticles: '#amountToBasket'} %}