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

View File

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

View File

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

View File

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

View File

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