Merged in fix/SW-1414-tracking-gla (pull request #1837)

fix(SW-1414): add hotelId to tracking for gla

* fix(SW-1414): add hotelId to tracking for gla


Approved-by: Niclas Edenvin
This commit is contained in:
Bianca Widstam
2025-04-23 11:05:43 +00:00
parent 722d4505ba
commit 2f0a196b49
5 changed files with 35 additions and 18 deletions

View File

@@ -38,19 +38,19 @@ export default function HandleErrorCallback({
searchObject
)
const lateArrivalGuarantee = readGlaFromSessionStorage()
const glaSessionData = readGlaFromSessionStorage()
if (status === PaymentCallbackStatusEnum.Cancel) {
if (lateArrivalGuarantee) {
if (glaSessionData) {
trackEvent({
event: "glaCardSaveCancelled",
hotelInfo: {
hotelId: detailsStorage.booking.hotelId,
lateArrivalGuarantee,
hotelId: glaSessionData.hotelId,
lateArrivalGuarantee: glaSessionData.lateArrivalGuarantee,
guaranteedProduct: "room",
},
paymentInfo: {
hotelId: detailsStorage.booking.hotelId,
hotelId: glaSessionData.hotelId,
status: "glacardsavecancelled",
},
})
@@ -63,16 +63,16 @@ export default function HandleErrorCallback({
}
}
if (status === PaymentCallbackStatusEnum.Error) {
if (lateArrivalGuarantee) {
if (glaSessionData) {
trackEvent({
event: "glaCardSaveFailed",
hotelInfo: {
hotelId: detailsStorage.booking.hotelId,
lateArrivalGuarantee,
hotelId: glaSessionData.hotelId,
lateArrivalGuarantee: glaSessionData,
guaranteedProduct: "room",
},
paymentInfo: {
hotelId: detailsStorage.booking.hotelId,
hotelId: glaSessionData.hotelId,
status: "glacardsavefailed",
},
})

View File

@@ -50,12 +50,13 @@ export default function HandleSuccessCallback({
bookingStatus.reservationStatus as BookingStatusEnum
)
) {
const lateArrivalGuarantee = readGlaFromSessionStorage()
if (lateArrivalGuarantee) {
const glaSessionData = readGlaFromSessionStorage()
if (glaSessionData) {
trackEvent({
event: "guaranteeBookingSuccess",
hotelInfo: {
lateArrivalGuarantee,
lateArrivalGuarantee: glaSessionData.lateArrivalGuarantee,
hotelId: glaSessionData.hotelId,
guaranteedProduct: "room",
},
})

View File

@@ -2,18 +2,31 @@ import "client-only"
export const glaStorageName = "gla-storage"
export function readGlaFromSessionStorage(): string | null {
type GlaSessionData = {
lateArrivalGuarantee: string
hotelId: string
}
export function readGlaFromSessionStorage(): GlaSessionData | null {
try {
return sessionStorage.getItem(glaStorageName)
const glaSessionData = sessionStorage.getItem(glaStorageName)
if (!glaSessionData) return null
return JSON.parse(glaSessionData)
} catch (error) {
console.error("Error reading from session storage:", error)
return null
}
}
export function writeGlaToSessionStorage(lateArrivalGuarantee: string) {
export function writeGlaToSessionStorage(
lateArrivalGuarantee: string,
hotelId: string
) {
try {
sessionStorage.setItem(glaStorageName, lateArrivalGuarantee)
sessionStorage.setItem(
glaStorageName,
JSON.stringify({ lateArrivalGuarantee, hotelId })
)
} catch (error) {
console.error("Error writing to session storage:", error)
}

View File

@@ -308,9 +308,9 @@ export default function PaymentClient({
if (guarantee || (bookingMustBeGuaranteed && hasOnlyFlexRates)) {
const lateArrivalGuarantee = guarantee ? "yes" : "mandatory"
writeGlaToSessionStorage(lateArrivalGuarantee)
writeGlaToSessionStorage(lateArrivalGuarantee, hotelId)
trackGlaSaveCardAttempt(hotelId, savedCreditCard, lateArrivalGuarantee)
} else {
} else if (!hasOnlyFlexRates) {
trackPaymentEvent({
event: "paymentAttemptStart",
hotelId,

View File

@@ -5,6 +5,7 @@ import { useEffect } from "react"
import { PaymentCallbackStatusEnum } from "@/constants/booking"
import { readGlaFromSessionStorage } from "@/components/HotelReservation/EnterDetails/Payment/PaymentCallback/helpers"
import LoadingSpinner from "@/components/LoadingSpinner"
import { trackEvent } from "@/utils/tracking/base"
@@ -72,9 +73,11 @@ export default function TrackGuarantee({
switch (status) {
case PaymentCallbackStatusEnum.Success:
const glaHotelInfo = readGlaFromSessionStorage()
trackEvent({
event: "guaranteeBookingSuccess",
hotelInfo: {
hotelId: glaHotelInfo?.hotelId,
lateArrivalGuarantee: "yes",
guaranteedProduct: "room",
},