Skip to content

Instantly share code, notes, and snippets.

@adam-clason
Created December 3, 2015 19:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save adam-clason/d61cc4b867f68128fb1e to your computer and use it in GitHub Desktop.
Save adam-clason/d61cc4b867f68128fb1e to your computer and use it in GitHub Desktop.
<iscomment>Google Tag Manager Conversion Data Layer Object</iscomment>
<script type="text/javascript">
<isscript>
var orderPromotionIDs = [];
</isscript>
var dataLayer = [{
'transactionId': '<isprint value="${pdict.Order.orderNo}"/>',
'transactionAffiliation': 'Wet Seal',
'transactionTotal': <isprint value="${pdict.Order.adjustedMerchandizeTotalPrice.value.toFixed(2)}"/>,
'transactionTax': <isprint value="${pdict.Order.totalTax.value.toFixed(2)}"/>,
'transactionShipping': <isprint value="${pdict.Order.getAdjustedShippingTotalNetPrice().value.toFixed(2)}"/>,
'transactionProducts': [
<isloop items="${pdict.Order.productLineItems}" status="loopstate" var="pli">
{
'sku': '${pli.productID}',
'name': '${pli.productName}',
'price': ${pli.adjustedNetPrice.value/pli.quantity.value},
'quantity': ${pli.quantity.value.toFixed()}
}<isif condition="${!loopstate.last}">,</isif>
<isloop items="${pli.priceAdjustments}" var="pa" status="prAdloopstatus">
<isscript>
if ( orderPromotionIDs.indexOf(pa.promotion.ID) == -1 ) {
orderPromotionIDs.push(pa.promotion.ID);
}
</isscript>
</isloop>
</isloop>
],
<isloop items="${pdict.Order.bonusDiscountLineItems}" var="bonusDiscountLineItem" status="loopstate">
<isscript>
if ( orderPromotionIDs.indexOf(bonusDiscountLineItem.getPromotion().getID()) == -1 ) {
orderPromotionIDs.push(bonusDiscountLineItem.getPromotion().getID());
}
</isscript>
</isloop>
<isloop items="${pdict.Order.priceAdjustments}" var="priceAdjustment" status="cliloopstate">
<isif condition="${!empty(priceAdjustment.promotionID) && !(priceAdjustment.promotionID=="B_RWD_PAY") && !('Loyalty_Flag' in priceAdjustment.promotion.custom && priceAdjustment.promotion.custom.Loyalty_Flag)}">
<isscript>
if ( orderPromotionIDs.indexOf(priceAdjustment.promotionID) == -1 ) {
orderPromotionIDs.push(priceAdjustment.promotionID);
}
</isscript>
</isif>
</isloop>
<isloop items="${pdict.Order.shipments}" var="ordShipment" status="shiploopstate">
<isloop items="${ordShipment.shippingLineItems}" var="sp" status="sp_status">
<isloop items="${sp.shippingPriceAdjustments}" var="spx" status="spx_loopstate">
<isscript>
if ( !empty(spx.promotionID) && spx.promotionID != null && orderPromotionIDs.indexOf(spx.promotionID) == -1 ) {
orderPromotionIDs.push(spx.promotionID);
}
</isscript>
</isloop>
</isloop>
</isloop>
'transactionPromotions' : "${ orderPromotionIDs.join(',') }"
}];
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment