Skip to content

Instantly share code, notes, and snippets.

@dmacompton
Created May 12, 2015 09:55
Show Gist options
  • Save dmacompton/6dd06cbb45ad05615ab5 to your computer and use it in GitHub Desktop.
Save dmacompton/6dd06cbb45ad05615ab5 to your computer and use it in GitHub Desktop.
GTM Bitrix
<?php
$ID = urldecode(urldecode($_REQUEST["ORDER_ID"]));
$arFilter = Array(
"USER_ID" => $USER->GetID(),
"LID" => SITE_ID,
"ACCOUNT_NUMBER" => $ID,
);
$dbOrder = CSaleOrder::GetList(Array("ID" => "ASC"), $arFilter);
while ($arOrder = $dbOrder->GetNext()) {
$arResult['ORDER_ID'] = $arOrder['ID'];
$total = $arOrder['PRICE'];
}
if (empty($_SESSION['ecomm_send'][$arResult['ORDER_ID']])) {
$code = 'var transactionId = "' . $arResult['ORDER_ID'] . '";
var cartProducts = [];
var affil = "ga-script.org";' . "\n";
$dbBasket = CSaleBasket::GetList(
array("NAME" => "ASC"), array("ORDER_ID" => $arResult['ORDER_ID']), false, false, array("ID", "DETAIL_PAGE_URL", "NAME", "NOTES", "QUANTITY", "PRICE", "CURRENCY", "PRODUCT_ID", "DISCOUNT_PRICE", "WEIGHT", "CATALOG_XML_ID", "VAT_RATE", "PRODUCT_XML_ID")
);
$arResult["BASKET"] = Array();
while ($p = $dbBasket->Fetch()) {
$code .= "cartProducts.push({
'id': transactionId,
'sku': '" . $p['ID'] . "',
'name': '" . $p['NAME'] . "',
'category': '',
'price': '" . $p['PRICE'] . "',
'quantity': '" . $p['QUANTITY'] . "'
});\n";
}
$code .= "dataLayer.push({
'transactionId' : transactionId,
'transactionAffiliation': affil,
'transactionTotal': " . $total . ",
'transactionTax': '',
'transactionShipping': '',
'transactionProducts': cartProducts,
'event': 'trackTrans'});\n";
$ecomm = "<script>var dataLayer = dataLayer || [];</script><script>" . $code . "</script>";
global $APPLICATION;
$APPLICATION->SetPageProperty('ecommerce', $ecomm);
$_SESSION['ecomm_send'][$arResult['ORDER_ID']] = 'Y';
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment