1 2function ga4_cart_checkout_button(module,button_name){ 3 window.dataLayer.push({ "event_parameters": null }); 4 window.dataLayer.push({ 5 "event":"ga4Event", 6 "event_name":"checkout_button", 7 "event_parameters":{ 8 "module":module, 9 "button_name":button_name 10 } 11 }); 12} 13 14function ga4_cart_view_cart(value,item_list_id,item_list_name,items){ 15 window.dataLayer.push({ "event_parameters": null }); 16 window.dataLayer.push({ 17 "event":"ga4Event", 18 "event_name":"view_cart", 19 "event_parameters":{ 20 "currency":"KRW", 21 "value":value, 22 "item_list_id":item_list_id, 23 "item_list_name":item_list_name, 24 "items": items 25 } 26 }); 27} 28 29function ga4_cart_add_to_cart(button_name,price,item_list_id,item_list_name,items){ 30 window.dataLayer.push({ "event_parameters": null }); 31 window.dataLayer.push({ 32 "event":"ga4Event", 33 "event_name":"add_to_cart", 34 "event_parameters":{ 35 "button_name":button_name, 36 "currency":"KRW", 37 "value":price, 38 "item_list_id":item_list_id, 39 "item_list_name":item_list_name, 40 "items": items 41 } 42 }); 43} 44 45function ga4_cart_remove_from_cart2(button_name,value,item_list_id,item_list_name,items){ 46 window.dataLayer.push({ "event_parameters": null }); 47 window.dataLayer.push({ 48 "event": "ga4Event", 49 "event_name": "remove_from_cart", 50 "event_parameters": { 51 "button_name": button_name, 52 "currency": "KRW", 53 "value": value, 54 "item_list_id":item_list_id, 55 "item_list_name":item_list_name, 56 "items": items 57 } 58 }); 59} 60 61function ga4_cart_select_item(button_name,item_list_id,item_list_name,items){ 62 window.dataLayer.push({ "event_parameters": null }); 63 window.dataLayer.push({ 64 "event":"ga4Event", 65 "event_name":"select_item", 66 "event_parameters":{ 67 "item_list_id":item_list_id, 68 "item_list_name":item_list_name, 69 "currency":"KRW", 70 "button_name":button_name, 71 "items": items 72 } 73 }); 74} 75 76function ga4_cart_view_item_list(item_list_id,item_list_name,items){ 77 window.dataLayer.push({ "event_parameters": null }); 78 window.dataLayer.push({ 79 "event":"ga4Event", 80 "event_name":"view_item_list", 81 "event_parameters":{ 82 "item_list_id":item_list_id, 83 "item_list_name":item_list_name, 84 "currency":"KRW", 85 "items": items 86 } 87 }); 88} 89 90 91function ga4_cart_delete_product(button_name){ 92 window.dataLayer.push({ "event_parameters": null }); 93 window.dataLayer.push({ 94 "event":"ga4Event", 95 "event_name":"remove_from_cart", 96 "event_parameters":{ 97 "button_name":button_name, 98 "module":"cart", 99 } 100 }); 101} 102 103autoBindFor('.ga4_cart_sod_bask',function(dom){ 104 const is_mobile=g5_is_mobile?true:false; 105 let $totalValue=$(dom).find(is_mobile?'.sod_bsk_cnt strong':'.sod_tot_transac strong').text().replace(/\D/g, ''); 106 const h1_text=is_mobile?'ì¥ë°êµ¬ë':$(dom).find('h1').text(); 107 const item_list_id = "cart_product_list"; 108 const item_list_name = "ì¥ë°êµ¬ë"; 109 let products=[]; 110 const list=$(dom).find('.ga4_cart_product_list .ga4_cart_product_list_li'); 111 list.each(function(i){ 112 const id=$(this).attr('data-itid') 113 if((window.ga4GiftProduct||[]).includes(id)){ 114 return true; 115 } 116 const name=$(this).find('.ga4_cart_list_name').data('tracking-list-name')||''; 117 const $price=$(this).find('.ga4_cart_list_price').data('tracking-price'); 118 const $quantity=$(this).find('.ga4_cart_sod_qty').data('tracking-sod-qty')||1; 119 const ioid = $(this).data('tracking-ioid'); 120 const new_product_id = id+'_'+ioid; 121 const product=product_dict[id]||{} 122 //å ¼å®¹æ°æ§çæ¬ï¼æ°çæ¬è§åäº§åæ°æ®ä» window.ga4InitData è·å 123 const ga4NewProduct = (window.ga4NewVerProduct||[]).includes(id) 124 ? (window.ga4InitData||[]).find(it => String(it.pro_attribute_id) === String(new_product_id)) 125 : null; 126 products.push({ 127 "item_id": ga4NewProduct ? ga4NewProduct.item_id : `${product["id1"]||name}`, 128 "item_name": ga4NewProduct ? ga4NewProduct.item_name : `${product["id2"]||name}`, 129 "index":i, 130 "discount": ga4NewProduct ? ga4NewProduct.discount : "0", 131 "item_list_id":item_list_id, 132 "item_list_name":item_list_name, 133 "item_category": ga4NewProduct ? ga4NewProduct.item_category : (product["category"]||null), 134 "item_category2": ga4NewProduct ? ga4NewProduct.item_category2 : (product["category2"]||null), 135 "item_variant": ga4NewProduct ? ga4NewProduct.item_variant : (product["variant"]||null), 136 "item_brand": ga4NewProduct ? (ga4NewProduct.item_brand||"SHOKZ") : "SHOKZ", 137 "price": ga4NewProduct ? ga4NewProduct.price : Number($price), 138 "quantity":Number($quantity), 139 "currency":"KRW", 140 }) 141 }) 142 const uniqueList = products.filter((item, index, self) => 143 index === self.findIndex((t) => t.item_id === item.item_id) 144 ); 145 ga4_cart_view_cart(Number($totalValue),item_list_id,item_list_name,uniqueList); 146 147 // Criteo viewBasketï¼è´ç©è½¦å ¨é¨ååï¼å«èµ åï¼èµ ååä»· 0ï¼ 148 if (typeof criteoTrackViewBasket === 'function') { 149 var criteoItems = []; 150 list.each(function () { 151 var $li = $(this); 152 var itId = String($li.attr('data-itid') || '').trim(); 153 if (!itId) return; 154 var ioId = String($li.attr('data-tracking-ioid') || $li.attr('data-ioid') || '').trim(); 155 var unitPrice = Number($li.find('.ga4_cart_list_price').data('tracking-price')); 156 if (!isFinite(unitPrice)) unitPrice = 0; 157 var qty = Number($li.find('.ga4_cart_sod_qty').data('tracking-sod-qty') || $li.attr('data-ctqty') || 1); 158 if (!isFinite(qty) || qty <= 0) qty = 1; 159 criteoItems.push({ 160 id: itId, 161 io_id: ioId, 162 price: unitPrice, 163 quantity: qty, 164 }); 165 }); 166 167 $(dom).find('.cart_gift_item.is-selected').each(function () { 168 var $gift = $(this); 169 var giftId = String($gift.attr('data-it-id') || '').trim(); 170 if (!giftId) return; 171 var giftQty = Number($gift.find('.cart_gift_quantity').val() || 0); 172 if (!isFinite(giftQty) || giftQty <= 0) { 173 var markText = String($gift.find('.cart_gift_qty_mark').text() || '').replace(/[^\d]/g, ''); 174 giftQty = Number(markText) || 1; 175 } 176 criteoItems.push({ 177 id: giftId, 178 price: 0, 179 quantity: giftQty, 180 }); 181 }); 182 183 if (criteoItems.length) { 184 criteoTrackViewBasket(criteoItems); 185 } 186 } 187 //è¿å ¥é¡µé¢çæ¶åè®°å½æ°æ®ï¼ä½æ¯é¡µé¢ä¸é¢æå æ°éååæ°éï¼æ°éåæ®µä¼åæ´ 188 // localStorage.setItem("ga4_cart_product", JSON.stringify(uniqueList)); 189 190 $(dom).delegate('.ga4_cart_opt_count_wrap button.ga4_cart_qty_plus','mousedown',function(){ 191 //ç¹å»å å· æ·»å æ°é 192 setTimeout(()=>{ 193 const li=$(this).parents('li').first(); 194 const button_name='+'; 195 const id=li.attr('data-itid') 196 const name=li.find('.ga4_cart_list_name').data('tracking-list-name')||''; 197 const $price=li.find('.ga4_cart_list_price').data('tracking-price'); 198 const $quantity=1; 199 // console.log(`[GTM EVENT] Click Plus Button ${name}`) 200 const ioid = li.data('tracking-ioid'); 201 const new_product_id = id+'_'+ioid; 202 const a_products=[] 203 const product=product_dict[id]||{} 204 //å ¼å®¹æ°æ§çæ¬ï¼æ°çæ¬è§åäº§åæ°æ®ä» window.ga4InitData è·å 205 const ga4NewProduct = (window.ga4NewVerProduct||[]).includes(id) 206 ? (window.ga4InitData||[]).find(it => String(it.pro_attribute_id) === String(new_product_id)) 207 : null; 208 a_products.push({ 209 "item_id": ga4NewProduct ? ga4NewProduct.item_id : `${product["id1"]||name}`, 210 "item_name": ga4NewProduct ? ga4NewProduct.item_name : `${product["id2"]||name}`, 211 "index":0, 212 "discount": ga4NewProduct ? ga4NewProduct.discount : "0", 213 "item_list_id":item_list_id, 214 "item_list_name":item_list_name, 215 "item_category": ga4NewProduct ? ga4NewProduct.item_category : (product["category"]||null), 216 "item_category2": ga4NewProduct ? ga4NewProduct.item_category2 : (product["category2"]||null), 217 "item_variant": ga4NewProduct ? ga4NewProduct.item_variant : (product["variant"]||null), 218 "item_brand": ga4NewProduct ? (ga4NewProduct.item_brand||"SHOKZ") : "SHOKZ", 219 "price": ga4NewProduct ? ga4NewProduct.price : Number($price), 220 "quantity":Number($quantity), 221 "currency":"KRW", 222 }) 223 224 ga4_cart_add_to_cart(button_name,Number($price),item_list_id,item_list_name,a_products) 225 },500) 226 }
226).delegate('.ga4_cart_opt_count_wrap button.ga4_cart_qty_minus','mousedown',function(){ 227 //ç¹å»åå· åå°æ°é 228 setTimeout(()=>{ 229 const li=$(this).parents('li').first(); 230 const button_name='-'; 231 const id=li.attr('data-itid') 232 const name=li.find('.ga4_cart_list_name').data('tracking-list-name')||''; 233 const $price=li.find('.ga4_cart_list_price').data('tracking-price'); 234 const $quantity=1; 235 // console.log(`[GTM EVENT] Click Minus Button ${name}`) 236 const ioid = li.data('tracking-ioid'); 237 const new_product_id = id+'_'+ioid; 238 const a_products=[] 239 const product=product_dict[id]||{} 240 //å ¼å®¹æ°æ§çæ¬ï¼æ°çæ¬è§åäº§åæ°æ®ä» window.ga4InitData è·å 241 const ga4NewProduct = (window.ga4NewVerProduct||[]).includes(id) 242 ? (window.ga4InitData||[]).find(it => String(it.pro_attribute_id) === String(new_product_id)) 243 : null; 244 a_products.push({ 245 "item_id": ga4NewProduct ? ga4NewProduct.item_id : `${product["id1"]||name}`, 246 "item_name": ga4NewProduct ? ga4NewProduct.item_name : `${product["id2"]||name}`, 247 "index":0, 248 "discount": ga4NewProduct ? ga4NewProduct.discount : "0", 249 "item_list_id":item_list_id, 250 "item_list_name":item_list_name, 251 "item_category": ga4NewProduct ? ga4NewProduct.item_category : (product["category"]||null), 252 "item_category2": ga4NewProduct ? ga4NewProduct.item_category2 : (product["category2"]||null), 253 "item_variant": ga4NewProduct ? ga4NewProduct.item_variant : (product["variant"]||null), 254 "item_brand": ga4NewProduct ? (ga4NewProduct.item_brand||"SHOKZ") : "SHOKZ", 255 "price": ga4NewProduct ? ga4NewProduct.price : Number($price), 256 "quantity":Number($quantity), 257 "currency":"KRW", 258 }) 259 ga4_cart_remove_from_cart2(button_name,Number($price),item_list_id,item_list_name,a_products); 260 },500) 261 }).delegate('.td_del_wrap button.sit_opt_del','mousedown',function(){ 262 //ç¹å»çxï¼ å é¤å个åå 263 ga4_cart_delete_product("X"); 264 }).delegate('.od_top_btn button','click',function(){ 265 266 }).delegate('.chk_box button','click',function(){ 267 268 }).delegate('#sod_bsk_act .btn_submit','mousedown',function(){ 269 ga4_cart_checkout_button("Cart Page","ë°ë¡êµ¬ë§¤"); 270 271 pixel_cart_checkout_start(window.cart_piexl_item); 272 }).delegate('.cart-naverpay .npay_btn_pay','mousedown',function(){ 273 ga4_cart_checkout_button("Cart Page","ë¤ì´ë²íì´êµ¬ë§¤"); 274 275 // console.log("è´ç©è½¦é¡µjsæä»¶",window.cart_piexl_item); 276 pixel_cart_checkout_start(window.cart_piexl_item); 277 }).delegate('.naverpay-cart .npay_btn_pay','mousedown',function(){ 278 ga4_cart_checkout_button("Cart Page","ë¤ì´ë²íì´êµ¬ë§¤"); 279 280 pixel_cart_checkout_start(window.cart_piexl_item); 281 }) 282 283 // æ°éè¾å ¥æ¡åååç¹ 284 $('.ga4_cart_sod_qty').each(function(){ 285 var $input = $(this); 286 var originalValue = parseInt($input.val()) || 0; 287 288 // åå¨åå§å¼ä½ä¸ºdata屿§ 289 $input.data('original-value', originalValue); 290 291 // çå¬è¾å ¥æ¡åå 292 $input.on('change blur', function(){ 293 var currentValue = parseInt($(this).val()) || 0; 294 var previousValue = parseInt($(this).data('original-value')) || 0; 295 296 if(currentValue !== previousValue) { 297 // æç §æ åæ¹å¼è·åååä¿¡æ¯ 298 const li = $(this).parents('li').first(); 299 const id = li.attr('data-itid'); 300 const name=li.find('.ga4_cart_list_name').data('tracking-list-name')||''; 301 const $price=li.find('.ga4_cart_list_price').data('tracking-price'); 302 const quantityDiff = Math.abs(currentValue - previousValue); 303 const ioid = li.data('tracking-ioid'); 304 const new_product_id = id+'_'+ioid; 305 // è·å产ååå ¸ä¿¡æ¯ 306 const product = product_dict[id] || {}; 307 //å ¼å®¹æ°æ§çæ¬ï¼æ°çæ¬è§åäº§åæ°æ®ä» window.ga4InitData è·å 308 const ga4NewProduct = (window.ga4NewVerProduct||[]).includes(id) 309 ? (window.ga4InitData||[]).find(it => String(it.pro_attribute_id) === String(new_product_id)) 310 : null; 311 const a_products = []; 312 313 a_products.push({ 314 "item_id": ga4NewProduct ? ga4NewProduct.item_id : `${product["id1"] || name}`, 315 "item_name": ga4NewProduct ? ga4NewProduct.item_name : `${product["id2"] || name}`, 316 "index": 0, 317 "discount": ga4NewProduct ? ga4NewProduct.discount : "0", 318 "item_list_id":item_list_id, 319 "item_list_name":item_list_name, 320 "item_category": ga4NewProduct ? ga4NewProduct.item_category : (product["category"] || null), 321 "item_category2": ga4NewProduct ? ga4NewProduct.item_category2 : (product["category2"] || null), 322 "item_variant": ga4NewProduct ? ga4NewProduct.item_variant : (product["variant"] || null), 323 "item_brand": ga4NewProduct ? (ga4NewProduct.item_brand||"SHOKZ") : "SHOKZ", 324 "price": ga4NewProduct ? ga4NewProduct.price : Number($price), 325 "quantity": Number(quantityDiff), 326 "currency": "KRW", 327 }); 328 329 let $totalValue=$(dom).find(is_mobile?'.sod_bsk_cnt strong':'.sod_tot_transac strong').text().replace(/\D/g, ''); 330 331 if(currentValue > previousValue) { 332 // æ°éå¢å ï¼è§¦å add_to_cart äºä»¶ 333 ga4_cart_add_to_cart("quantity box",Number($totalValue),item_list_id,item_list_name,a_products) 334 } else if(currentValue < previousValue) { 335 // æ°éåå°ï¼è§¦å remove_from_cart äºä»¶ 336 ga4_cart_remove_from_cart2("quantity box",Number($totalValue),item_list_id,item_list_name,a_products); 337 338 } 339 340 // æ´æ°åå¨çåå§å¼ 341 $(this).data('original-value', currentValue); 342 } 343 }); 344 }); 345}) 346 347autoBindFor('.ga4_cart_related_product',function(dom){ 348 $(dom).delegate('li a','mousedown',function(e){ 349 //è´ç©è½¦é¡µé¢ åºé¨ååå表ç¹å» 350 const id=getLastId($(this).attr('href')); 351 const item_name = $(this).data("tracking-title"); 352 const products=[]; 353 354 const $clickedElement = $(e.target); 355 let $buttonName = $(this).data('title'); 356 357 let isImg = $clickedElement.hasClass('rp_img'); 358 if(isImg){ 359 $buttonName = "image_"+$buttonName; 360 } 361 362 // console.log(` related_prd [GTM EVENT] Click Link ${h2}`) 363 const product=product_dict[id]||{} 364 //å ¼å®¹æ°æ§çæ¬ï¼æ°çæ¬è§åäº§åæ°æ®ä» window.ga4InitData è·å 365 const ga4NewProduct = (window.ga4NewVerProduct||[]).includes(id) 366 ? (window.ga4InitData||[]).find(it => String(it.pro_attribute_id) === String(id)) 367 : null; 368 products.push({ 369 "item_id": ga4NewProduct ? ga4NewProduct.item_id : `${product["id1"]||item_name}`, 370 "item_name": ga4NewProduct ? ga4NewProduct.item_name : `${product["id2"]||item_name}`, 371 "index":0, 372 "discount": ga4NewProduct ? ga4NewProduct.discount : "0", 373 "item_list_id":"cart_other_customer_browsed_products", 374 "item_list_name":"ë¤ë¥¸ ê³ ê°ì´ í¨ê» 본 ìí", 375 "item_category": ga4NewProduct ? ga4NewProduct.item_category : (product["category"]||null), 376 "item_category2": ga4NewProduct ? ga4NewProduct.item_category2 : (product["category2"]||null), 377 "item_variant": ga4NewProduct ? ga4NewProduct.item_variant : (product["variant"]||null), 378 "item_brand": ga4NewProduct ? (ga4NewProduct.item_brand||"SHOKZ") : "SHOKZ" 379 }) 380 ga4_cart_select_item($buttonName,"cart_other_customer_browsed_products","ë¤ë¥¸ ê³ ê°ì´ í¨ê» 본 ìí",products) 381 }) 382}) 383 384observeExposure(".ga4_cart_related_product>.ga4_cart_related_product_wrap>.ga4_cart_related_product_list",function(element, entry){ 385 let list= $(element).find("ul li"); 386 let products=[]; 387 list.each(function(i){ 388 const id=$(this).data('tracking-id'); 389 const name=$(this).find('.rp_cont a').first().data('tracking-title'); 390 var price=$(this).data('tracking-price'); 391 if( typeof(price) === 'string'){ 392 price = Number(price.replace(',','')); 393 } 394 const product=product_dict[id]||{}; 395 //å ¼å®¹æ°æ§çæ¬ï¼æ°çæ¬è§åäº§åæ°æ®ä» window.ga4InitData è·å 396 const ga4NewProduct = (window.ga4NewVerProduct||[]).includes(id) 397 ? (window.ga4InitData||[]).find(it => String(it.pro_attribute_id) === String(id)) 398 : null; 399 400 401 products.push({ 402 "item_id": ga4NewProduct ? ga4NewProduct.item_id : `${product["id1"]||name}`, 403 "item_name": ga4NewProduct ? ga4NewProduct.item_name : `${product["id2"]||name}`, 404 "index":i, 405 "discount": ga4NewProduct ? ga4NewProduct.discount : "0", 406 "item_list_id":'cart_other_customer_browsed_products', 407 "item_list_name":'ë¤ë¥¸ ê³ ê°ì´ í¨ê» 본 ìí', 408 "item_category": ga4NewProduct ? ga4NewProduct.item_category : (product["category"]||null), 409 "item_category2": ga4NewProduct ? ga4NewProduct.item_category2 : (product["category2"]||null), 410 "item_variant": ga4NewProduct ? ga4NewProduct.item_variant : (product["variant"]||null), 411 "item_brand": ga4NewProduct ? (ga4NewProduct.item_brand||"SHOKZ") : "SHOKZ", 412 "price": ga4NewProduct ? ga4NewProduct.price : price, 413 "quantity":1, 414 "currency":"KRW", 415 }) 416 }) 417 ga4_cart_view_item_list('cart_other_customer_browsed_products','ë¤ë¥¸ ê³ ê°ì´ í¨ê» 본 ìí',products) 418},{ 419 threshold: 0, 420}); 421 422 423 424 425
426function pixel_cart_checkout_start(item){ 427 TriplePixel('checkoutStarted', { 428 eventId: 'evt_sub_001', // ID for cross-platform dedupe (Optional) 429 email: g5_mb_email, // At least one of email or phone (Required) 430 phone: '', 431 firstName: '', // Optional 432 lastName: '', // Optional 433 orderId: '', // System order ID (Optional) 434 cotkn: '', // Used for order<>journey matching (Optional) 435 lineItems: item, 436 address: { zip: '', city: '', countryCode: '', provinceCode: ''} // Required 437 }); 438} 439
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.