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