1'use strict'; 2var gtCurPage = window.User.clickStream; 3var userid = ""; 4var prodholder = new Array(); 5var customerNo = window.User.customerNo; 6if (window.User.isCustomerAuthenticated != false || window.User.isRegistered == true) { 7 userid = window.User.id; 8} 9var emailID = window.emailID; 10var emailID_SHA1 = window.emailID_SHA1; 11 12function filterArrDt(arr) { 13 var finishedArr = new Array(); 14 15 arr.forEach(function (o) { 16 if (typeof o === "object") { 17 var finishedObj = new Object(); 18 19 Object.keys(o).forEach(function (k) { 20 if (!o[k]) { return; } 21 finishedObj[k] = o[k]; 22 }); 23 24 if (Object.keys(finishedObj).length > 0) { 25 finishedArr.push(finishedObj); 26 } 27 } else if (!!o) { 28 finishedArr.push(o); 29 } 30 }); 31 32 return finishedArr; 33} 34 35function filterDt(o) { 36 var finishedObj = {}; 37 38 39 Object.keys(o).forEach(function (k) { 40 if (!o[k]) { return; } 41 else if (o[k] instanceof Array) { 42 finishedObj[k] = filterArrDt(o[k]); 43 } else { 44 finishedObj[k] = o[k]; 45 } 46 }, this); 47 48 return finishedObj; 49} 50function pushDtLayer(o) { 51 window.dataLayer = window.dataLayer || []; 52 window.dataLayer.push(filterDt(o)); 53 //alert(JSON.stringify(util.filterObj(o))); 54} 55function DtgetPageCategory() { 56 //return window.pageContext.title || "Content"; ###### this throws product name 57 if (searchItems.error == "Page Not Found") { 58 return "Error Page"; 59 } 60 switch(gtCurPage) { 61 case 'product-showincategory': 62 case 'product-show': 63 return "Product Page"; 64 case 'search-show': 65 case 'search-getsuggestions': 66 if(!searchItems.rs55){ 67 return "No Search Results Page"; 68 }else{ 69 if(typeof searchItems.search != undefined){ 70 if(searchItems.search){ 71 return "Site Search"; 72 }else if (window.location.href.indexOf("store-locator") > -1) { 73 return "Store Locator"; 74 }else if (window.User.isContent) { 75 return 'Content'; 76 }else{ 77 return "Category Page"; 78 } 79 }else{ 80 return "Category Page"; 81 } 82 } 83 case 'search-showcontent': 84 return "Category Page"; 85 case 'home-show': 86 case 'default-start': 87 return "Homepage"; 88 case 'cart-show': 89 case 'cart-addtowishlist': 90 return "Cart Page"; 91 case 'customerservice-contactus': 92 return "Contact Customer Service"; 93 case 'customerservice-concierge': 94 return "Ask An Expert"; 95 case 'account-startregister': 96 case 'beautystation-show': 97 case 'account-editprofile' : 98 case 'address-list': 99 case 'paymentinstruments-list': 100 case 'wishlist-showlists': 101 case 'wishlist-show': 102 case 'beautystation-ordersandreplenishments': 103 case 'orderreplenishment-show': 104 case 'beautystation-configurationpreferences': 105 case 'beautystation-shippingbilling': 106 return "My Account"; 107 case 'login-show': 108 return "Login Page"; 109 case 'coshipping-start': 110 case 'coshipping-singleshipping': 111 case 'cobilling-start': 112 case 'cobilling-billing': 113 case 'cocustomer-start': 114 case 'cosinglepagecheckout-start': 115 return "Checkout"; 116 case 'giftcert-purchase': 117 return "Gift Card"; 118 case 'cocustomer-loginform': 119 return "Customer Login"; 120 case 'login-checkorder': 121 return "Check Your Order"; 122 case 'search-brandify': 123 return "Store Locator"; 124 case 'cosummary-submit': 125 return "Checkout"; 126 case 'page-show': 127 var pageurl = window.location.href; 128 if(pageurl.indexOf("customer-service.html") > 0){ 129 return "Customer Service"; 130 }else if(pageurl.indexOf("contact-us.html") > 0){ 131 return "Ask a Question"; 132 }else if(pageurl.indexOf("faqs.html") > 0){ 133 return "FAQ"; 134 }else if(pageurl.indexOf("concierge-form.html") > 0){ 135 return "Ask An Expert"; 136 }else if(pageurl.indexOf("replenishment.html") > 0){ 137 return "Replenishment"; 138 }else if(pageurl.indexOf("privacy.html") > 0){ 139 return "Privacy Policy"; 140 }else if(pageurl.indexOf("terms.html") > 0){ 141 return "Terms and Condition"; 142 }else if(pageurl.indexOf("returns-and-exchanges.html") > 0){ 143 return "Returns and Exchange"; 144 }else if(pageurl.indexOf("staticcountryselect.html") > 0){ 145 return "Select Country"; 146 }else{ 147 var pagecontext = "${pageContext.title}"; 148 if(pagecontext == "Consultations"){ 149 return "Consultation Tool"; 150 }else{ 151 return "Content"; 152 } 153 } 154 case 'customerservice-submit': 155 return "Ask An Expert"; 156 case 'home-errornotfound':
157 return "Error Page"; 158 case 'login-loginform': 159 return "Login Page"; 160 case 'gatedlandingpage-show': 161 return "Gated Landing Page"; 162 case 'compare-show': 163 return 'Compare Tool Page'; 164 case 'cart-submitform': 165 return 'Cart Page'; 166 default: 167 return "Content"; 168 } 169} 170// Specific for checkout and cart page only 171function CouponSubCategory(){ 172 switch(gtCurPage){ 173 case 'cart-show': 174 return "Cart" 175 case 'coshipping-start': 176 return "Shipping" 177 case 'coshipping-singleshipping': 178 case 'cobilling-removegiftcertificate': 179 case 'cobilling-start': 180 return "Payment" 181 case 'cobilling-billing': 182 if(basketConfirmation != null){ 183 if(basketConfirmation.checkoutErrorMessage){ 184 return "Payment" 185 }else{ 186 return "Review" 187 } 188 }else{ 189 return "Review" 190 } 191 case 'cosummary-submit': 192 if(typeof basketConfirmation != "undefined" && basketConfirmation != null){ 193 if(basketConfirmation.checkoutErrorMessage){ 194 return "Review"; 195 } 196 }else{ 197 return "Order Confirmation"; 198 } 199 200 break; 201 case 'cocustomer-start': 202 return "Checkout Login"; 203 case 'cosinglepagecheckout-start': 204 let isCheckoutStep = document.querySelectorAll('.checkout-progress-container .step.active'); 205 return isCheckoutStep.length ? "Review" : "Shipping"; 206 case 'account-editprofile' : 207 return "Profile" 208 case 'beautystation-shippingbilling': 209 return "Address Book" 210 case 'paymentinstruments-list': 211 return "Payment Methods" 212 case 'wishlist-showlists': 213 case "wishlist-show": 214 return "Wishlist" 215 case 'beautystation-ordersandreplenishments': 216 return "Order History" 217 case 'orderreplenishment-show': 218 return "Replenishment" 219 case 'account-startregister': 220 return "Create Account" 221 case 'tutorial-show': 222 return "Tutorial Page" 223 default: 224 break; 225 } 226} 227 228function DtgetPageSubcategory() { 229 return window.pageContext ? window.pageContext.title : 'Content'; 230} 231function Dtgethashmap(paramName) { 232 var output = ""; 233 234 var hashParams = window.location.hash.split("&"); 235 for (var i = 0; i < hashParams.length; i++) { 236 if (hashParams[i].indexOf(paramName) > - 1) { 237 output = hashParams[i].split("=")[1]; 238 } 239 } 240 241 return output; 242} 243function DtgetLanguage() { 244 if (window.location.href.indexOf("zh.shiseido") >= 0) { 245 return "Chinese"; 246 } else if (window.location.href.indexOf("es.shiseido") >= 0) { 247 return "Spanish"; 248 } else { 249 return "English"; 250 } 251} 252function DtisMobile() { 253 return $(window).width() <= 640; 254} 255function DtgetPageError() { 256 var $errorMsg = $(".error-form"); 257 if ($errorMsg.length === 0) { 258 return ""; 259 } 260 261 return $errorMsg.html().trim(); 262} 263function Dtgetsrule() { 264 var str = ""; 265 var params = ""; 266 if(window.location.href.split("?").length > 1){ 267 var urlparam = window.location.href.split("?")[1]; 268 if(urlparam.indexOf("&") > -1){ 269 params = urlparam.split("&"); 270 }else{ 271 params = urlparam; 272 } 273 var length = params.length; 274 var b = length / 2; 275 276 for(var i =0;i<b;i++){ 277 if(params[i].indexOf("srule") > -1){ 278 str = params[i].split("=")[1]; 279 } 280 } 281 } 282 return str; 283} 284//Specific for PDP 285function DtgetProductCategory() { 286 return $('.de-breadcrumb').find('li:eq(1)').text().trim(); 287} 288//Specific for PDP 289function DtgetProductsubCategory() { 290 return $('.de-breadcrumb').find('li:eq(2)').text().trim(); 291} 292// Specific for PDP 293function DtgetProductsubsubCategory() { 294 return $('.de-breadcrumb').find('li:eq(3)').text().trim(); 295} 296function Dtgetdropdown() { 297 var str = ""; 298 if(window.location.href.split("?").length > 1){ 299 var urlparam; 300 if(window.location.href.split("?")[1].indexOf("&")>-1){ 301 urlparam = window.location.href.split("?")[1].split("&"); 302 var length = urlparam.length; 303 var prefnval,prefnkey,prefvval,prefvkey; 304 for(var i =0;i<length;i++){ 305 var prefn = urlparam[i].indexOf("prefn"); 306 if(prefn > -1){ 307 prefnkey = urlparam[i].split("=")[0]; 308 prefnval = urlparam[i].split("=")[1]; 309 console.log(prefnkey); 310 var num = prefnkey.charAt(5); 311 for(var a =0;a<length;a++){ 312 var prefv = urlparam[a].indexOf("prefv"); 313 prefvkey = urlparam[a].split("=")[0]; 314 if(prefvkey == "prefv"+num){ 315 prefvval = urlparam[a].split("=")[1]; 316 str += "[" + prefnval + ":" + prefvval + "]"; 317 } 318 } 319 } 320 } 321 } 322 } 323 return str; 324} 325 326function listType(){ 327 return DtgetProductCategory() == "Search Results" ? "Search Results List" : "Product Category List"; 328} 329function listName(){ 330 return DtgetProductCategory() == "Search Results" ? "Search" : DtgetProductCategory();
331} 332//Specific for PDP 333function DtgetProductBrand() { 334 return "Drunk Elephant"; //$(".product-detail .product-brand").text(); 335} 336function getCookie(name) 337{ 338 var re = new RegExp(name + "=([^;]+)"); 339 var value = re.exec(document.cookie); 340 return (value != null) ? unescape(value[1]) : null; 341} 342function DtgetCountry() { 343 var country = document.getElementById('websiteCountryCode').value; 344 return country != '' ? country : 'US'; 345} 346function Dtgeterror(){ 347 switch(DtgetPageCategory()) { 348 case 'Checkout Page': case 'Cart Page': 349 if(basketConfirmation != null){ 350 return basketConfirmation.checkoutErrorMessage; 351 } 352 break; 353 case 'General Error': 354 return searchItems.error; 355 break; 356 case 'Error Page': 357 return "Page Not Found"; 358 break; 359 default: break; 360 } 361} 362function receiveMessage(event){ 363 364 if (typeof event.data === "object" && event.origin === "https://hosted.where2getit.com"){ 365 pushDtLayer(event.data); 366 } 367} 368function Dtgetpage(){ 369 var url = window.location.href; 370 var splittedurl = url.split("?"); 371 var page = splittedurl[0].split("/"); 372 return page[page.length-1] 373} 374function DtgetRecommendedProductStatus(productID) { 375 var recoProds = sessionStorage.getItem('recommendedproducts'); 376 if (recoProds != null && recoProds != '') { 377 var storedRecommendedProducts = JSON.parse(recoProds); 378 } 379 if (storedRecommendedProducts != undefined && storedRecommendedProducts.length > 0) { 380 if (storedRecommendedProducts.indexOf(productID) > -1) { 381 return 'recommended'; 382 } else { 383 return 'non-recommended'; 384 } 385 } else { 386 return 'non-recommended'; 387 } 388} 389function getRRProvider() { 390 var rrFlag= document.getElementById('rrprovider').getAttribute('data-rr-provider'); 391 return rrFlag; 392} 393/** Trigger the following datalayers after gtm.js container **/ 394 395pageViewEvent(); 396 397// document ready 398window.addEventListener('load', function () { 399 // fire when coupon is added after page load. 400 if(DtgetPageCategory() == "Checkout"){ 401 var error = basketConfirmation.checkoutErrorMessage ? basketConfirmation.checkoutErrorMessage : $(".error-form").text().trim(); 402 var errormsgtype = ""; 403 if(error.indexOf("Payment") > -1){ 404 errormsgtype = "Payment"; 405 }else if(error.indexOf("email") > -1){ 406 errormsgtype = "Email"; 407 }else if(error.indexOf("Server") > -1){ 408 errormsgtype = "Server"; 409 } 410 if(error){ 411 pushDtLayer({ 412 "checkoutErrorMessage": basketConfirmation.checkoutErrorMessage ? basketConfirmation.checkoutErrorMessage : $(".error-form").text().trim(), 413 "event": "transactionError", 414 "pageSubCategory": CouponSubCategory(), 415 "pageCategory": "Checkout", 416 "checkoutErrorType" : errormsgtype 417 }); 418 } 419 420 if($(".gtpromochecker").length > 0){ 421 if(!localStorage.getItem('couponvalidation')){ 422 pushDtLayer({ 423 "productCoupon":$(".gtpromochecker").data("name"), 424 "event": "couponSubmission", 425 "pageSubCategory": CouponSubCategory(), 426 "pageCategory": DtgetPageCategory() 427 }) 428 localStorage['couponvalidation'] = true; 429 } 430 }else{ 431 localStorage.removeItem('couponvalidation'); 432 } 433 } 434 435 436 switch (gtCurPage) { 437 case 'cart-show': case 'cart-addtowishlist': 438 439 // fire when coupon is added after page load. 440 if($(".gtpromochecker").length > 0 && $(".rowcoupons").length > 0 && ($(".rowcoupons .show-for-large .bonus-item").text().trim() == "Applied")){ 441 if(!localStorage.getItem('couponvalidation')){ 442 pushDtLayer({
443 "productCoupon": $(".gtpromochecker").data("name"), 444 "event": "couponSubmission", 445 "pageSubCategory": CouponSubCategory(), 446 "pageCategory": DtgetPageCategory() 447 }) 448 localStorage['couponvalidation'] = true; 449 } 450 }else if ($(".gtpromochecker").length > 0 && $(".rowcoupons").length == 0){ 451 localStorage['couponvalidation'] = true; 452 453 }else{ 454 localStorage.removeItem('couponvalidation'); 455 } 456 break; 457 case 'account-editprofile': 458 case 'beautystation-show': 459 // user loggedin 460 if ($('.user-info-section.row.loggedin-magic-link').length > 0) { 461 pushDtLayer({ 462 event: "accountLogin", 463 accountType: "Magic Link", 464 loginLocation: "Logged in from Account" 465 }); 466 } else if(window.User.isRegistered && !localStorage.getItem('uservalidation')){ 467 pushDtLayer({ 468 "event": "accountLogin", 469 'userId': window.User.customerNo, 470 'accountType':window.User.isExternallyAuthenticated, 471 'pageCategory': 'Account', 472 'pageSubCategory':'Profile', 473 'loginLocation': 'Logged in outside checkout' 474 }); 475 localStorage['uservalidation'] = true; 476 } 477 478 // Account Registration 479 if(window.Resources.ACCOUNT_REGISTRATION){ 480 pushDtLayer({ 481 "event": "accountCreation", 482 "userId": window.User.customerNo, 483 "accountType": window.User.isExternallyAuthenticated, 484 "pageCategory": "Account", 485 "pageSubCategory": "Profile", 486 'loginLocation': 'Logged in outside checkout' 487 }); 488 } 489 break; 490 case 'cosinglepagecheckout-start': 491 if (window.User.isRegistered && !localStorage.getItem('uservalidation')) { 492 if ($('.spc-orderconfirmation-div.login-user.loggedin-magic-link').length > 0) { 493 pushDtLayer({ 494 event: "accountLogin", 495 accountType: "Magic Link", 496 loginLocation: "Logged in from Account" 497 }); 498 } else { 499 pushDtLayer({ 500 event: 'accountLogin', 501 userId: window.User.customerNo != null ? window.User.customerNo : null, 502 accountType: window.User.customerNo != null ? 'Regular' : 'Guest', 503 pageCategory: 'Checkout', 504 pageSubCategory: 'Login', 505 loginLocation: 'Logged in inside checkout' 506 }); 507 } 508 localStorage['uservalidation'] = true; 509 } 510 511 // Account Registration 512 if(window.Resources.ACCOUNT_REGISTRATION){ 513 pushDtLayer({ 514 "event": "accountCreation", 515 "userId": window.User.customerNo != null ? window.User.customerNo : null, 516 "accountType": window.User.customerNo != null ? 'Regular' : 'Guest', 517 "pageCategory": "Checkout", 518 "pageSubCategory": "Sign Up", 519 "loginLocation": 'Logged in inside checkout' 520 }); 521 } 522 break; 523 default: break; 524 } 525}) 526 527switch (gtCurPage) { 528 case 'cart-show': case 'cart-addtowishlist': 529 // car show data layer 530 if (typeof basketConfirmation != 'undefined' && basketConfirmation !== null) { 531 pushDtLayer({ 532 "event": "view_cart", 533 "eeAction": "eeCheckout", 534 "checkoutStep" : "1", 535 "funnelType": basketConfirmation.funnelType, 536 "giftWrapping": basketConfirmation.giftWrapping, 537 "checkoutErrorMessage": basketConfirmation.checkoutErrorMessage, 538 "pageCategory": "Checkout", 539 "pageSubCategory": "Cart", 540 'products': basketConfirmation.productLineItems 541 }); 542 } 543 544 break; 545 546 case 'cocustomer-loginform' : 547 548 if (typeof basketConfirmation != 'undefined' && basketConfirmation !== null) { 549 pushDtLayer({ 550 "eeAction": "eeCheckout", 551 "checkoutStep" : "2", 552 "funnelType": basketConfirmation.funnelType, 553 "giftWrapping": basketConfirmation.giftWrapping, 554 "checkoutErrorMessage": basketConfirmation.checkoutErrorMessage, 555 "pageCategory": "Checkout", 556 "pageSubCategory": "Cart", 557 'products': basketConfirmation.productLineItems 558 }); 559 } 560 561 break; 562 case 'cocustomer-start': 563 // populate data layer for checkout login page 564 if (typeof basketConfirmation !== 'undefined' && basketConfirmation !== null) { 565 pushDtLayer({ 566 eeAction: 'eeCheckout', 567 checkoutStep: '2', 568 funnelType: basketConfirmation.funnelType, 569 giftWrapping: basketConfirmation.giftWrapping, 570 checkoutErrorMessage: basketConfirmation.checkoutErrorMessage, 571 pageCategory: 'Checkout', 572 pageSubCategory: 'Checkout Login', 573 checkoutVersion: 'One page checkout', 574 products: basketConfirmation.productLineItems, 575 }); 576 } 577 578 break; 579 580 case 'coshipping-start': 581 // populate data layer for shipping 582 if (typeof basketConfirmation != 'undefined' && basketConfirmation !== null) { 583 pushDtLayer({ 584 "checkoutErrorMessage": basketConfirmation.checkoutErrorMessage, 585 "giftWrapping": basketConfirmation.giftWrapping, 586 "pageSubCategory": "Shipping", 587 "funnelType": basketConfirmation.funnelType, 588 "eeAction": "eeCheckout", 589 "checkoutStep" : "2", 590 "productOrderType": basketConfirmation.productOrderType, 591 "pageCategory": "Checkout", 592 'products': basketConfirmation.productLineItems 593 }) 594 } 595 break; 596 597 598 case 'cosinglepagecheckout-start': 599 // populate data layer for OPC shipping 600 let checkoutPageLoadStep = true; 601 if (typeof spcCheckoutStep != 'undefined' && spcCheckoutStep == '4.0') { 602 checkoutPageLoadStep = false; 603 } 604 var URLParams = window.location.search.substring(1).split('&'); 605 var isFourthStepPaypal = URLParams.includes('SPCPMRedirectUrlSteps=fourth') && basketConfirmation.paymentMethod.includes('PayPal') 606 if (checkoutPageLoadStep && typeof basketConfirmation != 'undefined' && basketConfirmation !== null && !isFourthStepPaypal) { 607 pushDtLayer({ 608 "eeAction": "eeCheckout", 609 "checkoutStep" : "3", 610 "funnelType": basketConfirmation.funnelType, 611 "giftWrapping": basketConfirmation.giftWrapping, 612 "checkoutErrorMessage": basketConfirmation.checkoutErrorMessage, 613 "pageCategory": 'Checkout', 614 "pageSubCategory": "Shipping", 615 "checkoutVersion": 'One page checkout', 616 'products': basketConfirmation.productLineItems, 617 'conversion_location': window.metaCheckout, 618 }) 619 } else if(isFourthStepPaypal) { 620 if(checkoutPageLoadStep) { 621 var couponCode = ''; 622 if(basketConfirmation.coupons){ 623 for (var i = 0; i < basketConfirmation.coupons.length; i++) { 624 if (basketConfirmation.coupons[i]) { 625 couponCode += basketConfirmation.coupons[i] + ','; 626 } 627 } 628 } 629 if (couponCode.length > 0) { 630 couponCode = couponCode.substr(0, couponCode.length - 1); 631 } 632 var pageUrl = '/us/en/checkout/order-review'; 633 634 if (User.locale != null && User.locale != undefined) { 635 if (User.locale == 'en_CA') { 636 pageUrl = '/ca/en/checkout/order-review'; 637 } else if (User.locale == 'fr_CA') { 638 pageUrl = '/ca/fr/checkout/order-review'; 639 } 640 } 641 pushDtLayer({ 642 eeAction: 'eeCheckout', 643 event: 'virtualPageview', 644 page: pageUrl, 645 checkoutStep: '5', 646 funnelType: basketConfirmation.funnelType, 647 giftWrapping: basketConfirmation.giftWrapping, 648 checkoutErrorMessage: basketConfirmation.checkoutErrorMessage, 649 pageCategory: 'Checkout', 650 pageSubCategory: 'Review', 651 checkoutVersion: 'One page checkout', 652 couponCode: couponCode, 653 paymentType: basketConfirmation.paymentMethod.includes('PayPal') ? sessionStorage.getItem('PayPalSource') ? sessionStorage.getItem('PayPalSource'): basketConfirmation.paymentMethod.join("/"): basketConfirmation.paymentMethod.join("/"), 654 products: basketConfirmation.productLineItems, 655 }); 656 } 657 } 658 break; 659 case 'coshipping-singleshipping': 660 // populate data layer for successful billing 661 if (typeof basketConfirmation != 'undefined' && basketConfirmation !== null) { 662 pushDtLayer({ 663 "checkoutErrorMessage": basketConfirmation.checkoutErrorMessage, 664 "giftWrapping": basketConfirmation.giftWrapping, 665 "pageSubCategory": "Billing", 666 "funnelType": basketConfirmation.funnelType, 667 "eeAction": "eeCheckout", 668 "checkoutStep" : "3", 669 "productOrderType": basketConfirmation.productOrderType, 670 "pageCategory": "Checkout", 671 'products': basketConfirmation.productLineItems 672 }) 673 pushDtLayer({ 674 "event" : "eeCheckoutOption", 675 "checkoutStep" : "2", 676 "checkoutOption" : basketConfirmation.defaultShipping 677 }) 678 } 679 break; 680 case 'cobilling-billing': case 'cobilling-start': 681 // populate data layer for successful billing 682 if (typeof basketConfirmation != 'undefined' && basketConfirmation !== null) { 683 pushDtLayer({ 684 "checkoutErrorMessage": basketConfirmation.checkoutErrorMessage, 685 "giftWrapping": basketConfirmation.giftWrapping, 686 "pageSubCategory": "Review", 687 "funnelType": basketConfirmation.funnelType, 688 "eeAction": "eeCheckout", 689 "checkoutStep" : "4", 690 "productOrderType": basketConfirmation.productOrderType, 691 "pageCategory": "Checkout", 692 'products': basketConfirmation.productLineItems 693 }) 694 pushDtLayer({ 695 "event" : "eeCheckoutOption", 696 "checkoutStep" : "3", 697 "checkoutOption" : basketConfirmation.paymentMethod 698 }) 699 } 700 break; 701 case 'cosummary-submit': case 'coplaceorder-submit': case 'afterpayredirect-placeorder' : case 'cosummary-showconfirmation': case 'flexredirect-submit': 702 // populate data layer for sucessful transaction 703 if (typeof orderConfirmation != 'undefined') { 704 //the push must be placed before the gtm.js container call 705 var checkoutVersion = 'One Page Checkout'; 706 707 if (sessionStorage.getItem('spcheckoutv2') == 'true') { 708 checkoutVersion = 'Vertical Checkout'; 709 sessionStorage.removeItem('spcheckoutv2'); 710 } 711 712 var tansactionCouponCode = ''; 713 if (orderConfirmation.coupons) { 714 for (var i = 0; i < orderConfirmation.coupons.length; i++) { 715 if (orderConfirmation.coupons[i]) { 716 tansactionCouponCode += orderConfirmation.coupons[i] + ','; 717 } 718 } 719 } 720 721 if (tansactionCouponCode.length > 0) { 722 tansactionCouponCode = tansactionCouponCode.substr(0, tansactionCouponCode.length - 1); 723 } 724 for (var i = 0; i < orderConfirmation.productLineItems.length; i++) { 725 orderConfirmation.productLineItems[i].recommendedProduct = DtgetRecommendedProductStatus(orderConfirmation.productLineItems[i].productVariantID); 726 } 727 var paymentType = ''; 728 if (orderConfirmation.paymentMethod) { 729 if (orderConfirmation.paymentMethod === 'AFTERPAY_PBI') { 730 paymentType = 'After Pay'; 731 } else if (orderConfirmation.paymentMethod == "ApplePay") { 732 paymentType = orderConfirmation.paymentMethod + sessionStorage.applePayLoc; 733 } else if (orderConfirmation.paymentMethod === 'PayPal' && sessionStorage.getItem('PayPalSource')) { 734 paymentType = sessionStorage.getItem('PayPalSource'); 735 } else if(orderConfirmation.paymentMethod == 'FLEX') { 736 paymentType = 'Flex'; 737 } else { 738 paymentType = orderConfirmation.paymentMethod; 739 } 740 } 741 pushDtLayer({ 742 "event": "purchase", 743 "transactionId": orderConfirmation.transactionId, 744 "transactionTotal": orderConfirmation.adjMerchandizeTotalNet, 745 "transactionTax": orderConfirmation.tax, 746 "transactionShipping": orderConfirmation.transactionShipping, 747 "transactionCoupon": orderConfirmation.transactionCoupon, 748 "transactionTotalWithoutCoupon": orderConfirmation.merchandizeTotalNet, 749 "pageCategory": "Checkout", 750 "pageSubCategory": "Order Confirmation", 751 "giftWrapping": orderConfirmation.giftWrapping, 752 "funnelType": orderConfirmation.funnelType, 753 "currencyCode": orderConfirmation.currencyCode, 754 "couponCode": tansactionCouponCode, 755 "checkoutVersion": checkoutVersion, 756 "paymentType": paymentType, 757 "shippingType": orderConfirmation.defaultShipping, 758 "orderDiscount": orderConfirmation.orderDiscount, 759 "products": orderConfirmation.productLineItems, 760 "conversion_location": window.metaCheckout, 761 }); 762 } 763 break; 764 case 'search-show': case 'search-getsuggestions': 765 if (searchItems.search) { 766 let pageCategory = !searchItems.rs55 ? "No Search Results Page" : "Site Search"; 767 pushDtLayer({ 768 "pageCategory": pageCategory, 769 "pageSubCategory": DtgetPageSubcategory() == "My Account" ? DtgetPageSubcategory() : "", 770 "kw55": searchItems.kw55.replace(/%20/g, " "), 771 "res55": searchItems.rs55, 772 }); 773 } else if (window.location.href.indexOf("store-locator") > -1) { 774 pushDtLayer({ 775 "event": "storeLocator",
776 "pageCategory": DtgetPageCategory() 777 }); 778 window.addEventListener("message", receiveMessage); 779 break; 780 } 781 782 // plp/search pageview 783 if(typeof productData !== "undefined"){ 784 document.addEventListener('DOMContentLoaded', function() { 785 for (var i = 0; i < productData.product.length;i++){ 786 productData.product[i].brand = DtgetProductBrand(); 787 productData.product[i].variant = ""; 788 } 789 for (var j = 0; j < productData.product.length;j++){ 790 if(productData.product[j].listName == "Search" && searchItems.kw55){ 791 productData.product[j].listName = searchItems.kw55; 792 } 793 } 794 let $pageSubCategory = DtgetPageSubcategory(); 795 if(document.getElementsByClassName('de-breadcrumb').length > 0){ 796 $pageSubCategory = document.getElementsByClassName('de-breadcrumb')[0].getElementsByTagName('li')[1].getElementsByTagName('span')[0] ? document.getElementsByClassName('de-breadcrumb')[0].getElementsByTagName('li')[1].getElementsByTagName('span')[0].innerHTML.trim() : "" 797 } 798 if(document.getElementsByClassName('drunk-life-page-wrapper').length > 0){ 799 $pageSubCategory = 'Drunk Life'; 800 } 801 802 let $pageCategory = searchItems.search ? "Site Search" : "Category Page"; 803 804 pushDtLayer({ 805 "event": "eeListView", 806 "pageCategory": $pageCategory, 807 "pageSubCategory": $pageCategory === 'Category Page' ? window.Resources.GTPRODUCT_CATEGORYNAME : $pageSubCategory, 808 "currencyCode": window.User.currencyCode, 809 "products": productData.product || new Array() 810 }); 811 prodholder.push(productData.product); 812 }); 813 } 814 break; 815 case 'product-showincategory': case 'product-show': 816 // product detail page load page 817 if(DtgetPageCategory() == "Product Page"){ 818 let productArr = []; 819 let prodDataForArr; 820 //for product sets productCache is an array with more than 1 product 821 if (productCache && productCache.length > 1) { 822 for (let index = 0; index < productCache.length; index++) { 823 let price; 824 825 if (productCache[index].pricing) { 826 price = productCache[index].productautoreplenish == "YES" 827 ? productCache[index].pricing.minprice 828 : productCache[index].pricing.sale || productCache[index].pricing.minprice; 829 } 830 831 prodDataForArr = { 832 bundleName : productCache[index] ? (productCache[index].itemName ? productCache[index].itemName : '') : '', 833 listType : sessionStorage.getItem('listType') ? sessionStorage.getItem('listType') : null, 834 listName : sessionStorage.getItem('listName') ? sessionStorage.getItem('listName') : null, 835 id : productCache[index].masterID ? productCache[index].masterID : productCache[index].ID, 836 category :productCache[index].catid, 837 price : price, 838 name : productCache[index].name, 839 brand : DtgetProductBrand(), 840 quantity :productCache[index].quantity, 841 size : productCache[index].size, 842 subCategory : productCache[index].subcategory, 843 subSubCategory : productCache[index].subsubcategory, 844 productAutoReplen : productCache[index].productautoreplenish, 845 productOutOfStock : productCache[index].productOutOfStock,
846 productColor : productCache[index].productColor, 847 productType : "Bundle", 848 productVariantID : productCache[index].defalutvariant ? productCache[index].defalutvariant : productCache[index].ID, 849 productNumReviews : productCache[index].productNumReviews, 850 productStarRating : productCache[index].productStarRating, 851 new : window.productCache.new, 852 lastChance : window.productCache.lastChance, 853 productLiveDate : window.productCache.productLiveDate 854 } 855 productArr.push(prodDataForArr); 856 } 857 pushDtLayer({ 858 "event": "view_item", 859 "eeAction": "eeProductDetail", 860 "pageCategory": "Product Page", 861 'products': productArr 862 }) 863 864 } else if (productCache) { 865 let price; 866 867 if (productCache.pricing) { 868 price = productCache.productautoreplenish == "YES" 869 ? productCache.pricing.minprice 870 : productCache.pricing.sale || productCache.pricing.minprice; 871 } 872 873 pushDtLayer({ 874 "event": "view_item", 875 "eeAction": "eeProductDetail", 876 "pageCategory": "Product Page", 877 'products': [{ 878 "listType" : sessionStorage.getItem('listType') ? sessionStorage.getItem('listType') : null, 879 "listName" : sessionStorage.getItem('listName') ? sessionStorage.getItem('listName') : null, 880 "id": productCache.masterID ? productCache.masterID : productCache.ID, 881 "category":productCache.catid, 882 "price": price, 883 "name": productCache.name, 884 "brand": DtgetProductBrand(), 885 "quantity":productCache.quantity, 886 "size": productCache.size, 887 "subCategory" : productCache.subcategory, 888 "subSubCategory" : productCache.subsubcategory, 889 "productAutoReplen": productCache.productautoreplenish, 890 "productOutOfStock": productCache.productOutOfStock, 891 "productColor": productCache.productColor, 892 "productType": productCache.customProductType == 'Bundle' ? 'Bundle' : 'Product', 893 "productVariantID": productCache.defalutvariant ? productCache.defalutvariant : productCache.ID, 894 "productNumReviews": productCache.productNumReviews, 895 "productStarRating": productCache.productStarRating, 896 "new" : window.productCache.new, 897 "lastChance" : window.productCache.lastChance, 898 "productLiveDate" : window.productCache.productLiveDate, 899 }] 900 }) 901 } 902 903 904 } 905 906 if (typeof $BV !== 'undefined') { 907 $BV.configure('global', { 908 events : { 909 submissionSubmitted : function (data) { 910 // NEW Request fix for submit question in PDP 911 if($(".bv-submission-button-submit:contains('Post Question')").length>0){ 912 pushDtLayer({ 913 "page": Dtgetpage(), 914 "event": "submitQuestion", 915 "productCategory": DtgetProductCategory(), 916 "question": $("#bv-textarea-field-questionsummary").val(), 917 "productName": productCache.name, 918 "pageSubCategory": "Ask a Question", 919 "pageCategory": "Product Page" 920 }) 921 } 922 // NEW Request fix for submit review in PDP 923 if($(".bv-submission-button-submit:contains('Post Review')").length>0){ 924 pushDtLayer({ 925 "event": "submitReview", 926 "productCategory": DtgetProductCategory(), 927 "productSubCategory":DtgetProductsubCategory(), 928 "pageSubCategory": "Reviews", 929 "productName": productCache.name, 930 "pageCategory": "Product Page", 931 "productId": data.Id 932 }) 933 } 934 } 935 } 936 }); 937 } 938 break; 939 case 'search-brandify': 940 pushDtLayer({ 941 "event": "storeLocator",
942 "pageCategory": DtgetPageCategory() 943 }); 944 window.addEventListener("message", receiveMessage); 945 break; 946 default: break; 947} 948 949 //Navigation click 950function pageViewEvent() { 951 if (typeof searchItems !== "undefined") { 952 if (searchItems.error === "Page Not Found") { 953 pushDtLayer({ 954 "event": "page_view", 955 "userId": customerNo != null ? customerNo : null, 956 "pageCategory": "Error Page", 957 "pageSubCategory": "", 958 "navigationLinkClicked": sessionStorage.getItem("navlink") ? "1" : "0", 959 "navigationLinkNameClicked": sessionStorage.getItem("navlink"), 960 "navigationLocationClicked": sessionStorage.getItem("menuloc"), 961 "emailAddress": window.emailID ? window.emailID : '', 962 "language": DtgetLanguage(), 963 "websiteCountry": DtgetCountry() 964 }); 965 } else { 966 if(DtgetPageCategory()=="Category Page"){ 967 if(searchItems.lastclk == "account-editprofile" || searchItems.lastclk == "address-list" || searchItems.lastclk =="paymentinstruments-list" || searchItems.lastclk == "wishlist-show" || searchItems.lastclk == "order-history" || searchItems.lastclk == "orderreplenishment-show" || searchItems.lastclk == "customerservice-contactus"){ 968 pushDtLayer({ 969 "event": "page_view", 970 "userId": customerNo != null ? customerNo : null, 971 "pageCategory": DtgetPageCategory(), 972 "pageSubCategory": CouponSubCategory(), 973 "navigationLinkClicked": getCookie("navdata") ? "1" : "0", 974 "navigationLinkNameClicked": sessionStorage.getItem("navlink") ? sessionStorage.getItem("navlink") : getCookie("navdata"), 975 "navigationLocationClicked": "topmenu", 976 "emailAddress": window.emailID ? window.emailID : '', 977 "language": DtgetLanguage(), 978 "websiteCountry": DtgetCountry() 979 }); 980 }else{ 981 pushDtLayer({ 982 "event": "page_view", 983 "userId": customerNo != null ? customerNo : null, 984 "pageCategory": DtgetPageCategory(), 985 "pageSubCategory": CouponSubCategory(), 986 "navigationLinkClicked": sessionStorage.getItem("navlink") ? "1" : "0", 987 "navigationLinkNameClicked": sessionStorage.getItem("navlink"), 988 "navigationLocationClicked": sessionStorage.getItem("menuloc"), 989 "emailAddress": window.emailID ? window.emailID : '', 990 "language": DtgetLanguage(), 991 "websiteCountry": DtgetCountry() 992 }); 993 } 994 995 }else{ 996 if(gtCurPage == "customerservice-contactus"){ 997 pushDtLayer({ 998 "event": "page_view", 999 "userId": customerNo != null ? customerNo : null, 1000 "pageCategory": DtgetPageCategory(), 1001 "pageSubCategory": CouponSubCategory(), 1002 "navigationLinkClicked": "0", 1003 "navigationLinkNameClicked":"", 1004 "navigationLocationClicked":"", 1005 "emailAddress": window.emailID ? window.emailID : '', 1006 "language": DtgetLanguage(), 1007 "websiteCountry": DtgetCountry() 1008 }); 1009 }else{ 1010 if(gtCurPage == "account-editprofile"){ 1011 if(sessionStorage.getItem("navlink")!="Profile"){ 1012 pushDtLayer({ 1013 "event": "page_view", 1014 "userId": customerNo != null ? customerNo : null, 1015 "pageCategory": DtgetPageCategory(), 1016 "pageSubCategory": CouponSubCategory(), 1017 "navigationLinkClicked":"0", 1018 "navigationLinkNameClicked":"", 1019 "navigationLocationClicked":"", 1020 "emailAddress": window.emailID ? window.emailID : '', 1021 "language": DtgetLanguage(), 1022 "websiteCountry": DtgetCountry() 1023 }); 1024 }else{ 1025 pushDtLayer({ 1026 "event": "page_view", 1027 "userId": customerNo != null ? customerNo : null, 1028 "pageCategory": DtgetPageCategory(), 1029 "pageSubCategory": CouponSubCategory(), 1030 "navigationLinkClicked": sessionStorage.getItem("navlink") ? "1" : "0", 1031 "navigationLinkNameClicked": sessionStorage.getItem("navlink"), 1032 "navigationLocationClicked": sessionStorage.getItem("menuloc"), 1033 "emailAddress": window.emailID ? window.emailID : '', 1034 "language": DtgetLanguage(), 1035 "websiteCountry": DtgetCountry() 1036 }); 1037 } 1038 }else{ 1039 pushDtLayer({ 1040 "event": "page_view", 1041 "userId": customerNo != null ? customerNo : null, 1042 "pageCategory": DtgetPageCategory(), 1043 "pageSubCategory": CouponSubCategory(), 1044 "navigationLinkClicked": sessionStorage.getItem("navlink") ? "1" : "0", 1045 "navigationLinkNameClicked": sessionStorage.getItem("navlink"), 1046 "navigationLocationClicked": sessionStorage.getItem("menuloc"), 1047 "emailAddress": window.emailID ? window.emailID : '', 1048 "language": DtgetLanguage(), 1049 "websiteCountry": DtgetCountry() 1050 }); 1051 } 1052 } 1053 1054 } 1055 } 1056 1057 } else { 1058 if(DtgetPageCategory()=="Category Page"){ 1059 if(searchItems.lastclk == "account-editprofile" || searchItems.lastclk == "address-list" || searchItems.lastclk =="paymentinstruments-list" || searchItems.lastclk == "wishlist-show" || searchItems.lastclk == "order-history" || searchItems.lastclk == "orderreplenishment-sh
1059ow" || searchItems.lastclk == "customerservice-contactus"){ 1060 pushDtLayer({ 1061 "event": "page_view", 1062 "userId": customerNo != null ? customerNo : null, 1063 "pageCategory": DtgetPageCategory(), 1064 "pageSubCategory": CouponSubCategory(), 1065 "navigationLinkClicked": getCookie("navdata") ? "1" : "0", 1066 "navigationLinkNameClicked": sessionStorage.getItem("navlink") ? sessionStorage.getItem("navlink") : getCookie("navdata"), 1067 "navigationLocationClicked": "topmenu", 1068 "emailAddress": window.emailID ? window.emailID : '', 1069 "language": DtgetLanguage(), 1070 "websiteCountry": DtgetCountry() 1071 }); 1072 }else{ 1073 pushDtLayer({ 1074 "event": "page_view", 1075 "userId": customerNo != null ? customerNo : null, 1076 "pageCategory": DtgetPageCategory(), 1077 "pageSubCategory": CouponSubCategory(), 1078 "navigationLinkClicked": sessionStorage.getItem("navlink") ? "1" : "0", 1079 "navigationLinkNameClicked": sessionStorage.getItem("navlink"), 1080 "navigationLocationClicked": sessionStorage.getItem("menuloc"), 1081 "emailAddress": window.emailID ? window.emailID : '', 1082 "language": DtgetLanguage(), 1083 "websiteCountry": DtgetCountry() 1084 }); 1085 } 1086 1087 }else{ 1088 if(gtCurPage == "customerservice-contactus"){ 1089 pushDtLayer({ 1090 "event": "page_view", 1091 "userId": customerNo != null ? customerNo : null, 1092 "pageCategory": DtgetPageCategory(), 1093 "pageSubCategory": CouponSubCategory(), 1094 "navigationLinkClicked": "0", 1095 "navigationLinkNameClicked":"", 1096 "navigationLocationClicked":"", 1097 "emailAddress": window.emailID ? window.emailID : '', 1098 "language": DtgetLanguage(), 1099 "websiteCountry": DtgetCountry() 1100 }); 1101 }else{ 1102 if(gtCurPage == "account-editprofile"){ 1103 if(sessionStorage.getItem("navlink")!="Profile"){ 1104 pushDtLayer({ 1105 "event": "page_view", 1106 "userId": customerNo != null ? customerNo : null, 1107 "pageCategory": DtgetPageCategory(), 1108 "pageSubCategory": CouponSubCategory(), 1109 "navigationLinkClicked":"0", 1110 "navigationLinkNameClicked":"", 1111 "navigationLocationClicked":"", 1112 "emailAddress": window.emailID ? window.emailID : '', 1113 "language": DtgetLanguage(), 1114 "websiteCountry": DtgetCountry() 1115 }); 1116 }else{ 1117 pushDtLayer({ 1118 "event": "page_view", 1119 "userId": customerNo != null ? customerNo : null, 1120 "pageCategory": DtgetPageCategory(), 1121 "pageSubCategory": CouponSubCategory(), 1122 "navigationLinkClicked": sessionStorage.getItem("navlink") ? "1" : "0", 1123 "navigationLinkNameClicked": sessionStorage.getItem("navlink"), 1124 "navigationLocationClicked": sessionStorage.getItem("menuloc"), 1125 "emailAddress": window.emailID ? window.emailID : '', 1126 "language": DtgetLanguage(), 1127 "websiteCountry": DtgetCountry() 1128 }); 1129 } 1130 }else{ 1131 pushDtLayer({ 1132 "event": "page_view", 1133 "userId": customerNo != null ? customerNo : null, 1134 "pageCategory": DtgetPageCategory(), 1135 "pageSubCategory": CouponSubCategory(), 1136 "navigationLinkClicked": sessionStorage.getItem("navlink") ? "1" : "0", 1137 "navigationLinkNameClicked": sessionStorage.getItem("navlink"), 1138 "navigationLocationClicked": sessionStorage.getItem("menuloc"), 1139 "emailAddress": window.emailID ? window.emailID : '', 1140 "language": DtgetLanguage(), 1141 "websiteCountry": DtgetCountry() 1142 }); 1143 } 1144 } 1145 1146 } 1147 } 1148} 1149 1150 sessionStorage.setItem("navlink",""); 1151 sessionStorage.setItem("menuloc",""); 1152 sessionStorage.setItem("productUpdate",""); 1153 sessionStorage.setItem("userid",userid); 1154 sessionStorage.setItem("languange", DtgetLanguage()); 1155 sessionStorage.setItem("webCountry",DtgetCountry());
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.