@ecomplus/storefront-template
Version:
Reusable & upgradable views and scripts for E-Com Plus storefront
30 lines (24 loc) • 931 B
JavaScript
const { sessionStorage } = window
const storageKey = 'ecomUtm'
let isCurrentUtm
const utm = JSON.parse(sessionStorage.getItem(storageKey)) || {}
const urlParams = new URLSearchParams(window.location.search)
;['source', 'medium', 'campaign', 'term', 'content'].forEach(utmParam => {
const value = urlParams.get(`utm_${utmParam}`)
if (typeof value === 'string') {
utm[utmParam] = value
isCurrentUtm = true
}
})
if (isCurrentUtm) {
sessionStorage.setItem(storageKey, JSON.stringify(utm))
}
if (urlParams.get('referral') && !sessionStorage.getItem('ecomReferral')) {
sessionStorage.setItem('ecomReferral', urlParams.get('referral'))
}
const sessionCoupon = urlParams.get('coupon') || sessionStorage.getItem('st_discount_coupon')
if (sessionCoupon && !sessionStorage.getItem('st_discount_coupon')) {
sessionStorage.setItem('st_discount_coupon', sessionCoupon)
}
export default utm
export { utm, sessionCoupon }