Hasil Pencarian

const fsServerRequestURLObj = new URL(window.fsServerRequestURL); function fsGetSession() { const SESSION_TOKEN_LIFE = 1800; const now = Math.round(Date.now() / 1000); const sessionLC = localStorage.getItem("fast-session-token"); if (sessionLC) { const currentSession = JSON.parse(sessionLC); if (now - currentSession.lastActive >= SESSION_TOKEN_LIFE) { return withLS(JSON.stringify({ lastActive: now, start: now, })); } else { return withLS(JSON.stringify({ lastActive: now, start: currentSession.start })); } } else { return withLS(JSON.stringify({ lastActive: now, start: now, })); } } const fsSession = fsGetSession(); function fsSaveDelayedReport(productData, position, rec) { const delayedReportObj = { uuid: responseData.body.uuid, storeID: fsServerRequestURLObj.searchParams.get('store_id'), platform: 'Shopify', userSession: localStorage.getItem("isp_token_1" || ''), sessionToken: fsSession?.start, cartToken: localStorage.getItem("__isp_cart") || '', qs: getReferrerBasedAudiences(), params: { sort_by: responseData.body?.sort_by || fsServerRequestURLObj.searchParams.get('sort_by'), pagenum: responseData.body?.p ?? 1, id: productData.id, pos: position, original_category_id: responseData.body?.category_id, original_smart_navigation: responseData.body?.category_name, rec: rec }, endpoint: "post_load" } localStorage.setItem("product-seen-from-category-fs-delayed-report", JSON.stringify(delayedReportObj)); } function fsReportCallback(event) { const targetEl = event.target.closest('.fs-results-product-card'); const productPos = Number(targetEl.dataset.productPosition); const productID = targetEl.dataset.productId; const productData = responseData.body.items.find(item => item.id === productID); const personalizedProducts = responseData.body?.personalized_products || []; const rec = personalizedProducts.includes(Number(productData.id)) ? '1' : '0'; fsSaveDelayedReport(productData, productPos, rec); } const serverProductElements = [...targetElement.querySelectorAll('.fs-results-product-card')]; serverProductElements.forEach((el, idx) => el.addEventListener('click', fsReportCallback)); function reportPageView() { const serverData = responseData.body; const personalizationParams = window.fastSimonUtils?.getPersonalizationParams('category'); const variation = localStorage.getItem("fast-debug-variation") || localStorage.getItem("fast-variation") || undefined; let promotilesDataToReport = []; serverData.items.forEach(item => { if(item?.promotile) { promotilesDataToReport.push({id: item.id, name: item.title, link: item.link, thumbnail: item.image}); } }) const repParams = { UUID: serverData.uuid, store_id: fsServerRequestURLObj.searchParams.get('store_id'), pagenum: serverData?.p ?? 1, sort_by: serverData?.sort_by || fsServerRequestURLObj.searchParams.get('sort_by'), original_category_id: serverData?.category_id, original_smart_navigation: serverData?.category_name, serp: serverData?.category_name, products: serverData.items.filter(item => !item?.promotile).map(item => item.id).toString(), rescount: serverData.total_results, pp: personalizationParams ? (serverData?.personalized_products || []).toString() : undefined, spv: personalizationParams ? personalizationParams.spv : undefined, cart_token: localStorage.getItem("__isp_cart") || '', session: fsSession?.start, st: localStorage.getItem("isp_token_1") || undefined, prev_up_type: 20, doc_ref: document.referrer, qs: getReferrerBasedAudiences(), variation_id: variation, promo_tiles: promotilesDataToReport?.length ? JSON.stringify(promotilesDataToReport) : undefined } for (const key in repParams) { if (repParams[key] === undefined) { delete repParams[key]; } } const report = new URLSearchParams(repParams); const queryString = report.toString(); const serverURL = `https://ping.fastsimon.com/post_load?${queryString}`; fetch(serverURL, {keepalive: true}); window.fsPageViewedReportFired = true; } reportPageView(); } catch (e) { console.log('fs error:', e); } }