diff --git a/src/mixins/analytics-mixin.js b/src/mixins/analytics-mixin.js index 56a1c574..3821022e 100644 --- a/src/mixins/analytics-mixin.js +++ b/src/mixins/analytics-mixin.js @@ -20,6 +20,7 @@ import { GaEvents, ValueToLogTypes } from '@/constants/analytics'; +import { getCartTotal, getSubTotal } from '@/helpers/cart-helper'; import { useMainStore } from '@/store'; function pushToDataLayerIfDefined(data) { @@ -219,7 +220,8 @@ export default { const store = useMainStore(); const submittedOrder = store.getSubmittedOrder(); const hasSubmittedOrder = store.hasSubmittedOrder(); - const order = hasSubmittedOrder ? submittedOrder : store.order; + const order = hasSubmittedOrder ? submittedOrder : store.order; + const issConfig = store.issConfig; // TODO: Find equivalent ISS methods for these: const hasSubmittedApplicationUser = baseMixin.methods.hasSubmittedApplicationUser(); @@ -231,13 +233,14 @@ export default { const isEarlyBird = order?.lineItems?.supportingItems?.find( (lineItem) => lineItem.partType == partTypeStrings.EARLY_BIRD ); - - const promoCodes = Array.isArray(order?.lineItems?.promos) + + const promoCodes = ""; /*Array.isArray(order?.lineItems?.promos) ? order?.lineItems?.promos .map((item) => item.promoCode) .filter((code) => code) .join(", ") : null; + */ const glassProducts = order?.damage?.glassToReplace?.map( (part) => `${part.glassLocation}-${part.glassName}` @@ -289,21 +292,27 @@ export default { sessionData.vehicleModel = order?.vehicle?.model; sessionData.vehicleStyle = order?.vehicle?.style; sessionData.hasVin = order?.vehicle?.vin ? true : false; - sessionData.cashOrInsuranceAccountType = order?.payment?.isInsurance - ? "Insurance" - : "Cash"; + sessionData.cashOrInsuranceAccountType = "Insurance"; sessionData.damageType = order?.damage?.isRepair ? "Repair" : "Replace"; + + // TODO: Find equivalent ISS methods for these: sessionData.productType = allParts; + sessionData.eon = order?.eon; sessionData.referralNumber = order?.referralNumber; sessionData.referralSequenceNumber = order?.referralSequenceNumber; sessionData.referralDate = order?.referralDate; sessionData.workOrderNumber = order?.workOrderNumber; sessionData.workOrderId = order?.workOrderId; + + // TODO: Find equivalent ISS methods for these: sessionData.isPia = order?.payment?.isPia ?? false; sessionData.piaType = order?.payment?.piaType; - sessionData.parentAccountNumber = order?.payment?.parentAccountNumber; - sessionData.billToAccountNumber = order?.payment?.billToAccountNumber; + + sessionData.parentAccountNumber = order?.parentAccountNumber; + sessionData.billToAccountNumber = issConfig.billToAccountNumber; + + // TODO: Find equivalent ISS methods for these: sessionData.settledTenderAmount = order?.settledTenderAmount; // TODO: Find equivalent ISS methods for these: @@ -319,24 +328,30 @@ export default { sessionData.appointmentDate = appointment; sessionData.serviceType = order?.serviceLocation?.appointmentType; sessionData.promoCodes = promoCodes; - sessionData.hasTechnicianNotes = order?.serviceLocation?.techNotes ? true : false; - sessionData.paymentMethod = order?.payment?.piaType; - sessionData.isTextingOptedIn = order?.customer?.isSmsOptIn ? true : false; - sessionData.isEarlyBird = isEarlyBird ? true : false; - sessionData.insuranceCo = order?.policy?.insuranceCompanyName; - sessionData.deductible = order?.policy?.currentDeductible; - sessionData.isVerified = order?.payment?.insuranceCoverage?.isVerified ?? false; - sessionData.coverageStatus = order?.payment?.insuranceCoverage?.coverageStatus; - sessionData.coverageSubStatus = order?.payment?.insuranceCoverage?.coverageSubStatus; - sessionData.isNoComp = order?.policy?.isNoComp; - sessionData.isItac = order?.policy?.isItac; + sessionData.hasTechnicianNotes = order?.contactInfo?.notesForTechnician ? true : false; // TODO: Find equivalent ISS methods for these: - sessionData.subTotalPrice = getSubTotal(order?.lineItems); - sessionData.totalPrice = getAmountDue(order?.lineItems, true); + sessionData.paymentMethod = order?.payment?.piaType; + sessionData.isTextingOptedIn = order?.contactInfo?.requestTextUpdates ? true : false; + + // TODO: Find equivalent ISS methods for these: + sessionData.isEarlyBird = isEarlyBird ? true : false; + + sessionData.insuranceCo = issConfig.clientName; + sessionData.deductible = store.currentDeductible(); + sessionData.isVerified = store.isVerified(); + + // TODO: Need mappings here? + sessionData.coverageStatus = order?.payment?.insuranceCoverage?.coverageStatus; + sessionData.coverageSubStatus = order?.payment?.insuranceCoverage?.coverageSubStatus; + + sessionData.isNoComp = store.isNoComp(); + sessionData.isItac = store.isITAC(); + sessionData.subTotalPrice = getSubTotal(order); + sessionData.totalPrice = getCartTotal(order); sessionData.userAgent = navigator.userAgent; - sessionData.cashPriceSubTotal = order?.cashPriceSubTotal; + sessionData.cashPriceSubTotal = getSubTotal(order); store.logIssSessionData(sessionData); },