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:
@@ -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",
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -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",
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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",
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user