Ich möchte eine DataLayer für GTM auf meiner Bestellbestätigungsseite auf Prestashop hinzufügen. So wie es in der Smarty-Dokumentation genau ist, verwende ich {literal}
, {ldelim}
und {rdelim}
.GTM, Prestashop und Smarty {literal}
Mein Skript muss dynamisch sein, um die korrekten Daten an GTM zu senden, hängt von der Anweisung ab, die der Client gerade übergeben hat.
Ich ändere die header.tpl-Datei, da ich die JS vor dem GTM-Tag setzen muss.
Hier mein Code:
{if isset($page_name) && $page_name|escape:'html':'UTF-8' == "order-confirmation"}
{literal}
<script>
{/literal}
window.dataLayer = window.dataLayer || []
dataLayer.push({ldelim}
'transactionId': '{$id_order}',
'transactionTotal': {$total_paid_tax_incl},
'transactionProducts': [
{foreach from=$products item=product}
{ldelim} // List of productFieldObjects.
'sku': '{$product.id}',
'name': '{$product.name}', // Name or ID is required.
//'category': '{$product.X}',
'price': {$product.price},
'quantity': 1 // Optional fields may be omitted or set to empty string.
{rdelim}{if !$smarty.foreach.product.last},{/if}
{/foreach}
]
{rdelim});
{literal}
</script>
{/literal}
{/if}
Das Ergebnis wird nichts angezeigt wird ... aber wenn ich die entfernen
{literal}<script>{/literal}
und die
{literal}</script>{/literal}
Teil, der JS ist Anzeige fein, aber natürlich außerhalb einer
<script>...</script>
...
Danke für die Hilfe,
Perceval
Danke für Ihre Antwort, ich habe habe deinen Code ausprobiert, aber es funktioniert nicht ... Smarty mach mich verrückt><' – percypyan
Yeah ... schlau, es ist nicht großartig ... Was ist nicht Arbeit? – sarcom