From 0411e3cd1f9306f07d7189e4f1dcfd87a9deff49 Mon Sep 17 00:00:00 2001 From: CarlNation Date: Fri, 28 Jul 2023 13:26:20 -0400 Subject: [PATCH 01/11] CSR-1582 concept save quote links do not load --- .../heritage-integration/navigation-helper.js | 2 +- src/router/index.js | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/helpers/heritage-integration/navigation-helper.js b/src/helpers/heritage-integration/navigation-helper.js index 913fbcb1b..d90562791 100644 --- a/src/helpers/heritage-integration/navigation-helper.js +++ b/src/helpers/heritage-integration/navigation-helper.js @@ -98,7 +98,7 @@ export async function skipVinLookupNotRepair() { /* Logic for getting the last "valid" page a user visited. */ -async function getLatestPageForRedirection() { +export async function getLatestPageForRedirection() { // If this is a non-CTA navigation, determine where to send the user based on page prerequisites. // This also works if a user has a 'fmg' start_type query string but no current order. // That shouldn't happen, but it's possible. diff --git a/src/router/index.js b/src/router/index.js index 11efa6080..2f28e06d5 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -19,6 +19,7 @@ import { loadSessionIfPresent, saveSession } from "@/helpers/heritage-integratio import { getPageToRouteExistingOrderTo, navigateToHeritageFunnel, + getLatestPageForRedirection, } from "@/helpers/heritage-integration/navigation-helper"; import baseMixin from "@/mixins/base-mixin"; @@ -124,8 +125,21 @@ const routes = [ .filter((x) => x.name === routeData[0].name)[0] .components.default(); + // The save quote link via heritage default.aspx... will land here. + // Heritage will attempt to send the customer to the lastest page in NextGen possible. + // If the link was created prior to reaching the end of NextGen, the save quote link + // was going to GoToFunnelStartOn404. This will send as deep into NextGen as possible. if (!arePagePrerequisitesValid(nextComponent)) { - await GoToFunnelStartOn404(next); + var pageToRedirectTo = await getLatestPageForRedirection(); + if (pageToRedirectTo) { + return next({ + path: "/", + query: { fmgPage: pageToRedirectTo }, + params: to.params, + }); + } else { + await GoToFunnelStartOn404(next); + } } // Assign current query string parameters, as well as our fmgPage one. From 22cee7a5e929f70effb94806d6c680365a38831b Mon Sep 17 00:00:00 2001 From: hiteshkumar87 Date: Tue, 1 Aug 2023 16:18:21 +0530 Subject: [PATCH 02/11] zip code GA event zip code GA event at get damage-options --- src/constants/analytics.js | 6 ++---- src/layouts/vehicle-damage/vehicle-damage.vue | 19 +++---------------- 2 files changed, 5 insertions(+), 20 deletions(-) diff --git a/src/constants/analytics.js b/src/constants/analytics.js index 2b0fc1a8f..9d35ba6b5 100644 --- a/src/constants/analytics.js +++ b/src/constants/analytics.js @@ -11,8 +11,7 @@ const GaEvents = { const GaCategories = { API_RESPONSE: "Api_Response", - EVOX: "Evox", - FUNNEL_ENTRY: "funnel_entry", + EVOX: "Evox", }; const GaActions = { @@ -20,8 +19,7 @@ const GaActions = { CLICKED: "Clicked", VIF: "vif", SUBMITTED: "Submitted", - DISPLAYED: "Displayed", - ZIP_CODE_PROVIDED: "zip_code_provided", + DISPLAYED: "Displayed", }; const GaLabels = { diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index 6ea4fe81d..134038348 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -145,8 +145,7 @@ export default { selectedPassengerSideReplaceOptions: this.getPassengerSideReplaceOptionsFromStore(), }, selectedWindshieldOptions: this.getWindshieldOptionsFromStore(), - selectedRearReplaceOptions: this.getRearReplaceOptionsFromStore(), - serviceZipCode: this.getZipFromStore() ?? this.$route.query.zipcode, + selectedRearReplaceOptions: this.getRearReplaceOptionsFromStore(), }; }, mounted() { @@ -168,21 +167,9 @@ export default { this.$store.getters.vehicle.carId, true ); - } - if (this.serviceZipCode) { - this.pushEventToGA( - this.GaCategories.FUNNEL_ENTRY, - this.GaActions.ZIP_CODE_PROVIDED, - this.serviceZipCode, - true - ); - } + } }, - - getZipFromStore() { - return this.$store.getters.order.serviceLocation.zipCode; - }, - + backButtonAction() { // route to move backwards this.$router.navigateWithoutSaving(this.navigationScenarios.CLICKED_BACK, this.$route); From ccfa927be5021fd6908dccc35a8953730e656ed9 Mon Sep 17 00:00:00 2001 From: hiteshkumar87 Date: Tue, 1 Aug 2023 16:22:30 +0530 Subject: [PATCH 03/11] Update vehicle-damage.vue --- src/layouts/vehicle-damage/vehicle-damage.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index 134038348..1b714c5c9 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -145,7 +145,7 @@ export default { selectedPassengerSideReplaceOptions: this.getPassengerSideReplaceOptionsFromStore(), }, selectedWindshieldOptions: this.getWindshieldOptionsFromStore(), - selectedRearReplaceOptions: this.getRearReplaceOptionsFromStore(), + selectedRearReplaceOptions: this.getRearReplaceOptionsFromStore(), }; }, mounted() { @@ -167,9 +167,9 @@ export default { this.$store.getters.vehicle.carId, true ); - } + } }, - + backButtonAction() { // route to move backwards this.$router.navigateWithoutSaving(this.navigationScenarios.CLICKED_BACK, this.$route); From 0621af33ad8c4749131cae79db99c7c8894a3deb Mon Sep 17 00:00:00 2001 From: hiteshkumar87 Date: Tue, 1 Aug 2023 16:24:04 +0530 Subject: [PATCH 04/11] Update analytics.js --- src/constants/analytics.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/constants/analytics.js b/src/constants/analytics.js index 9d35ba6b5..b5b24660d 100644 --- a/src/constants/analytics.js +++ b/src/constants/analytics.js @@ -11,7 +11,7 @@ const GaEvents = { const GaCategories = { API_RESPONSE: "Api_Response", - EVOX: "Evox", + EVOX: "Evox", }; const GaActions = { @@ -19,7 +19,7 @@ const GaActions = { CLICKED: "Clicked", VIF: "vif", SUBMITTED: "Submitted", - DISPLAYED: "Displayed", + DISPLAYED: "Displayed", }; const GaLabels = { From eb6d6a4140a5b4e1fc471fcdcf8965bfbb21b6b1 Mon Sep 17 00:00:00 2001 From: hiteshkumar87 Date: Wed, 2 Aug 2023 13:35:53 +0530 Subject: [PATCH 05/11] zip code GA event optimized code optimized --- src/helpers/querystring-helper.js | 10 ++++++++++ src/layouts/vehicle-damage/vehicle-damage.spec.js | 14 ++------------ src/layouts/vehicle-damage/vehicle-damage.vue | 13 +------------ src/store/index.js | 8 +++++--- 4 files changed, 18 insertions(+), 27 deletions(-) create mode 100644 src/helpers/querystring-helper.js diff --git a/src/helpers/querystring-helper.js b/src/helpers/querystring-helper.js new file mode 100644 index 000000000..38583b1ae --- /dev/null +++ b/src/helpers/querystring-helper.js @@ -0,0 +1,10 @@ +export function getQuerystringParameter(key) { + const queryString = window.location.search; + const urlParams = new URLSearchParams(queryString); + const lowerCaseParams = new URLSearchParams(); + for (const [name, value] of urlParams) { + lowerCaseParams.append(name.toLowerCase(), value); + } + + return lowerCaseParams.get(key) ? lowerCaseParams.get(key) : null; +} diff --git a/src/layouts/vehicle-damage/vehicle-damage.spec.js b/src/layouts/vehicle-damage/vehicle-damage.spec.js index 30e144310..b26b5e31c 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.spec.js +++ b/src/layouts/vehicle-damage/vehicle-damage.spec.js @@ -52,7 +52,6 @@ jest.mock("@/store", () => ({ damage: { glassToReplace: [], }, - order: { serviceLocation: { zipCode: "11111" } }, }, })); @@ -134,7 +133,6 @@ describe("vehicle-damage.vue", () => { getters: { vehicle: {}, payment: { insuranceCoverage: { isVerified: false } }, - order: { serviceLocation: { zipCode: "11111" } }, }, }, }, @@ -177,7 +175,7 @@ describe("vehicle-damage.vue", () => { expect(wrapper.vm.selectedGlassToReplace()).toEqual(expectedGlassToReplace); expect(baseMixin.methods.dispatchStoreAction).toBeCalledWith( storeActions.GET_DAMAGE_OPTIONS, - { carId: "C00000000", zipCode: "11111" } + { carId: "C00000000" } ); }); @@ -243,7 +241,6 @@ describe("vehicle-damage.vue", () => { getters: { vehicle: {}, payment: { insuranceCoverage: { isVerified: false } }, - order: { serviceLocation: { zipCode: "11111" } }, }, }, }, @@ -273,7 +270,7 @@ describe("vehicle-damage.vue", () => { expect(wrapper.vm.selectedGlassToReplace()).toEqual(expectedGlassToReplace); expect(baseMixin.methods.dispatchStoreAction).toBeCalledWith( storeActions.GET_DAMAGE_OPTIONS, - { carId: "C00000000", zipCode: "11111" } + { carId: "C00000000" } ); }); }); @@ -526,7 +523,6 @@ describe("vehicle-damage.vue", () => { eventBusItem: jest.fn(), damage: { glassToReplace: [{ glassLocation: damageLocation }] }, isRepair: true, - order: { serviceLocation: { zipCode: "11111" } }, }; var glassSelections = wrapper.vm.getDamageLocationsFromStore(); @@ -604,7 +600,6 @@ describe("vehicle-damage.vue", () => { isRepair: isRepair, numberOfChips: 2, }, - order: { serviceLocation: { zipCode: "11111" } }, }; var windshieldSelections = wrapper.vm.getWindshieldOptionsFromStore(); @@ -641,7 +636,6 @@ describe("vehicle-damage.vue", () => { glassToReplace: [{ glassLocation: damageLocation, glassName: damageName }], }, isRepair: true, - order: { serviceLocation: { zipCode: "11111" } }, }; var glassSelections = wrapper.vm.getDriverSideReplaceOptionsFromStore(); @@ -678,7 +672,6 @@ describe("vehicle-damage.vue", () => { glassToReplace: [{ glassLocation: damageLocation, glassName: damageName }], }, isRepair: true, - order: { serviceLocation: { zipCode: "11111" } }, }; var glassSelections = wrapper.vm.getPassengerSideReplaceOptionsFromStore(); @@ -713,7 +706,6 @@ describe("vehicle-damage.vue", () => { glassToReplace: [{ glassLocation: damageLocation, glassName: damageName }], }, isRepair: true, - order: { serviceLocation: { zipCode: "11111" } }, }; var glassSelections = wrapper.vm.getRearReplaceOptionsFromStore(); @@ -746,7 +738,6 @@ describe("vehicle-damage.vue", () => { getters: { vehicle: {}, payment: { insuranceCoverage: { isVerified: true } }, - order: { serviceLocation: { zipCode: "11111" } }, }, }, }, @@ -787,7 +778,6 @@ function setupMocks({ pageHeaderWidgetHeaderText, mountOptionsMockData, funnelCo isVerified: false, }, }, - order: { serviceLocation: { zipCode: "11111" } }, }, }, }; diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index 1b714c5c9..c03fabda1 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -81,7 +81,6 @@ import { getFunnelCookie } from "@/helpers/heritage-integration/cookie-helper"; import store from "@/store"; import baseMixin from "@/mixins/base-mixin"; -import { queryStrings } from "@/constants/query-strings"; // DEFINE VALIDATION RULES defineRule("replace-options-required", required(errorMessages.REPLACE_OPTIONS_REQUIRED)); @@ -90,20 +89,10 @@ export default { async beforeRouteEnter(to, from, next) { // Call APIs const cmsContentPromise = fetchCmsContentForPage(to.query.fmgPage); - const queryString = window.location.search; - const urlParams = new URLSearchParams(queryString); - const lowerCaseParams = new URLSearchParams(); - for (const [name, value] of urlParams) { - lowerCaseParams.append(name.toLowerCase(), value); - } - - const zip = lowerCaseParams.get(queryStrings.ZIP_CODE) - ? lowerCaseParams.get(queryStrings.ZIP_CODE) - : store.getters.order.serviceLocation.zipCode; const damageOptionsPromise = baseMixin.methods.dispatchStoreAction( storeActions.GET_DAMAGE_OPTIONS, - { carId: store.getters.vehicle.carId, zipCode: zip } + { carId: store.getters.vehicle.carId } ); // Settle promises and get results diff --git a/src/store/index.js b/src/store/index.js index abefc2b5d..0ee76d098 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -13,7 +13,8 @@ import { fmgPageValues } from "@/router/router-constants/fmgPage-values"; import { deleteFunnelCookie } from "@/helpers/heritage-integration/cookie-helper.js"; import { deepEqual } from "@/helpers/object-helper"; import { AppointmentTypeStrings, PREMIUM_FEE_PART_TYPE } from "@/constants/schedule-constants"; - +import { getQuerystringParameter } from "@/helpers/querystring-helper"; +import { queryStrings } from "@/constants/query-strings"; // Export State const getDefaultState = () => { return { @@ -740,12 +741,13 @@ export const actions = { }); }, - getDamageOptions(context, { carId, zipCode }) { + getDamageOptions(context, { carId }) { return globalMethods.callHttpClient({ methods: endpoints.GetDamageOptions.method, endpoint: `${endpoints.GetDamageOptions.url}/${carId}`, payload: {}, - additionalSuccessEventDataHandler: (response) => "QueryStringZip: " + zipCode, + additionalSuccessEventDataHandler: (response) => + "QueryStringZip: " + getQuerystringParameter(queryStrings.ZIP_CODE), }); }, From dd3bebd9a668c43e087b747a328b9ed647c25813 Mon Sep 17 00:00:00 2001 From: Sneha Date: Thu, 3 Aug 2023 11:37:14 +0530 Subject: [PATCH 06/11] CSR-1586 Removing isvinoptional for ford 2018 or above --- src/store/index.js | 6 ------ src/store/store.spec.js | 2 -- 2 files changed, 8 deletions(-) diff --git a/src/store/index.js b/src/store/index.js index 0ee76d098..4d4093a61 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -2012,12 +2012,6 @@ export const actions = { return true; default: } - if ( - context.state.order.vehicle.make.toLowerCase() === "ford" && - context.state.order.vehicle.year >= 2018 - ) { - return true; - } if ( context.state.order.vehicle.make.toLowerCase() === "bmw" && context.state.order.vehicle.year <= 2017 diff --git a/src/store/store.spec.js b/src/store/store.spec.js index 4a6788433..f56a7ca49 100644 --- a/src/store/store.spec.js +++ b/src/store/store.spec.js @@ -3238,8 +3238,6 @@ describe("Getters", () => { describe("isVinOptionalVehicle", () => { const testVehicles = [ ["2017", "acura", false], - ["2017", "ford", false], - ["2018", "ford", true], ["2018", "bmw", false], ["2017", "bmw", true], ["2016", "bmw", true], From 563d638fe2b8d788af7114f765ad5230cba33005 Mon Sep 17 00:00:00 2001 From: CarlNation Date: Thu, 3 Aug 2023 15:02:42 -0400 Subject: [PATCH 07/11] CSR-1588 pass referral and parent account to logging api --- src/mixins/analytics-mixin.js | 4 ++++ src/store/index.js | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/src/mixins/analytics-mixin.js b/src/mixins/analytics-mixin.js index 88b4772f8..3d0f61104 100644 --- a/src/mixins/analytics-mixin.js +++ b/src/mixins/analytics-mixin.js @@ -38,6 +38,8 @@ export default { event: pageEvent, shouldUseSessionId: false, experimentsForUser: store.getters.applicationUser.experiments, + referralNumber: store.getters.order.referralNumber, + parentAccountNumber: store.getters.order.payment.parentAccountNumber, }; baseMixin.methods.dispatchStoreAction(storeActions.LOG_PAGE_VIEW, payload, false); @@ -57,6 +59,8 @@ export default { value: value, shouldUseSessionId: false, experimentsForUser: store.getters.applicationUser.experiments, + referralNumber: store.getters.order.referralNumber, + parentAccountNumber: store.getters.order.payment.parentAccountNumber, }; baseMixin.methods.dispatchStoreAction(storeActions.LOG_CUSTOM_EVENT, payload, false); diff --git a/src/store/index.js b/src/store/index.js index 4d4093a61..99dc5bdaa 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -891,6 +891,8 @@ export const actions = { event, shouldUseSessionId, experimentsForUser, + referralNumber, + parentAccountNumber, } ) { var payload = { @@ -903,6 +905,8 @@ export const actions = { event: event, shouldUseSessionId: shouldUseSessionId, experimentsForUser: experimentsForUser, + referralNumber: referralNumber, + parentAccountNumber: parentAccountNumber, }; return globalMethods @@ -935,6 +939,8 @@ export const actions = { value, shouldUseSessionId, experimentsForUser, + referralNumber, + parentAccountNumber, } ) { var payload = { @@ -949,6 +955,8 @@ export const actions = { value: value, shouldUseSessionId: shouldUseSessionId, experimentsForUser: experimentsForUser, + referralNumber: referralNumber, + parentAccountNumber: parentAccountNumber, }; return globalMethods From 792c379080daa30c920b4ba9da216b7d48ce76d4 Mon Sep 17 00:00:00 2001 From: CarlNation Date: Fri, 4 Aug 2023 11:49:13 -0400 Subject: [PATCH 08/11] CSR-1588 persist referral seq number and send to analytics --- src/constants/store-mutations.js | 1 + .../heritage-integration/order-helper.js | 1 + src/mixins/analytics-mixin.js | 4 ++-- src/store/index.js | 19 +++++++++++++------ src/store/store.spec.js | 1 + 5 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/constants/store-mutations.js b/src/constants/store-mutations.js index d4e07cf0a..2cf59db27 100644 --- a/src/constants/store-mutations.js +++ b/src/constants/store-mutations.js @@ -40,6 +40,7 @@ const storeMutations = { // ORDER MUTATIONS UPDATE_REFERRAL_NUMBER: "updateReferralNumber", + UPDATE_REFERRAL_SEQUENCE_NUMBER: "updateReferralSequenceNumber", UPDATE_REFERRAL_DATE: "updateReferralDate", UPDATE_REFERRAL_CORRELATION_ID: "updateReferralCorrelationId", UPDATE_PARENT_ACCT_NUMBER: "updateParentAcctNumber", diff --git a/src/helpers/heritage-integration/order-helper.js b/src/helpers/heritage-integration/order-helper.js index 010c39ec9..01f5a5d67 100644 --- a/src/helpers/heritage-integration/order-helper.js +++ b/src/helpers/heritage-integration/order-helper.js @@ -114,6 +114,7 @@ async function saveSessionHelper() { storeActions.UPDATE_STORE_WITH_SAVE_SESSION_RESPONSE, { referralNumber: savedSessionInfo.data.referralNumber?.toString(), + referralSequenceNumber: savedSessionInfo.data.referralSequenceNumber, referralCorrelationId: savedSessionInfo.data.referralCorrelationId, referralDate: savedSessionInfo.data.referralDate, parentAccountNumber: savedSessionInfo.data.parentAccountNumber?.toString(), diff --git a/src/mixins/analytics-mixin.js b/src/mixins/analytics-mixin.js index 3d0f61104..8637cfa64 100644 --- a/src/mixins/analytics-mixin.js +++ b/src/mixins/analytics-mixin.js @@ -38,7 +38,7 @@ export default { event: pageEvent, shouldUseSessionId: false, experimentsForUser: store.getters.applicationUser.experiments, - referralNumber: store.getters.order.referralNumber, + referralSequenceNumber: store.getters.order.referralSequenceNumber ?? store.getters.order.referralNumber, parentAccountNumber: store.getters.order.payment.parentAccountNumber, }; @@ -59,7 +59,7 @@ export default { value: value, shouldUseSessionId: false, experimentsForUser: store.getters.applicationUser.experiments, - referralNumber: store.getters.order.referralNumber, + referralSequenceNumber: store.getters.order.referralSequenceNumber ?? store.getters.order.referralNumber, parentAccountNumber: store.getters.order.payment.parentAccountNumber, }; diff --git a/src/store/index.js b/src/store/index.js index 99dc5bdaa..e91962a11 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -93,6 +93,7 @@ const getDefaultState = () => { jobMaxMinutes: null, }, referralNumber: null, + referralSequenceNumber: null, referralDate: null, referralCorrelationId: null, eon: null, @@ -185,6 +186,9 @@ export const mutations = { updateReferralNumber(state, referralNumber) { state.order.referralNumber = referralNumber; }, + updateReferralSequenceNumber(state, referralSequenceNumber) { + state.order.referralSequenceNumber = referralSequenceNumber; + }, updateReferralDate(state, referralDate) { state.order.referralDate = referralDate; }, @@ -398,6 +402,7 @@ export const mutations = { // Misc Mutations updateStateWithOrderInformation(state, sessionInformation) { state.order.referralNumber = sessionInformation.order.referralNumber; + state.order.referralSequenceNumber = sessionInformation.order.referralSequenceNumber; state.order.referralDate = sessionInformation.order.referralDate; state.order.referralCorrelationId = sessionInformation.order.referralCorrelationId; state.order.eon = sessionInformation.order.eon; @@ -863,6 +868,7 @@ export const actions = { context, { referralNumber, + referralSequenceNumber, referralDate, referralCorrelationId, eon, @@ -872,6 +878,7 @@ export const actions = { } ) { context.commit(storeMutations.UPDATE_REFERRAL_NUMBER, referralNumber); + context.commit(storeMutations.UPDATE_REFERRAL_SEQUENCE_NUMBER, referralSequenceNumber); context.commit(storeMutations.UPDATE_REFERRAL_DATE, referralDate); context.commit(storeMutations.UPDATE_REFERRAL_CORRELATION_ID, referralCorrelationId); context.commit(storeMutations.UPDATE_EON, eon); @@ -891,7 +898,7 @@ export const actions = { event, shouldUseSessionId, experimentsForUser, - referralNumber, + referralSequenceNumber, parentAccountNumber, } ) { @@ -905,7 +912,7 @@ export const actions = { event: event, shouldUseSessionId: shouldUseSessionId, experimentsForUser: experimentsForUser, - referralNumber: referralNumber, + referralSequenceNumber: referralSequenceNumber, parentAccountNumber: parentAccountNumber, }; @@ -939,7 +946,7 @@ export const actions = { value, shouldUseSessionId, experimentsForUser, - referralNumber, + referralSequenceNumber, parentAccountNumber, } ) { @@ -955,7 +962,7 @@ export const actions = { value: value, shouldUseSessionId: shouldUseSessionId, experimentsForUser: experimentsForUser, - referralNumber: referralNumber, + referralSequenceNumber: referralSequenceNumber, parentAccountNumber: parentAccountNumber, }; @@ -1456,8 +1463,8 @@ export const actions = { existingPromoCode: null, referralCorrelationId: order.referralCorrelationId, referralDate: order.referralDate, - referralNumber: order.referralNumber?.toString(), // TODO It'd be nice to save these as strings in the first place - referralSequenceNumber: order.referralNumber?.toString(), // TODO Pass the referralSequence number once insurance flow creates it + referralNumber: order.referralNumber?.toString(), + referralSequenceNumber: order.referralSequenceNumber, eon: order.eon, }, }, diff --git a/src/store/store.spec.js b/src/store/store.spec.js index f56a7ca49..71411b0af 100644 --- a/src/store/store.spec.js +++ b/src/store/store.spec.js @@ -802,6 +802,7 @@ describe("Actions", () => { // Act actions.updateStoreWithSaveSessionResponse(context, { referralNumber: "123", + referralSequenceNumber: 123, referralDate: new Date().toUTCString(), referralCorrelationId: "xxx-xxx-xxx", parentAccountNumber: "167132", From 1f32f91398fe16272d3062c701c7a629cd7c408d Mon Sep 17 00:00:00 2001 From: CarlNation Date: Fri, 4 Aug 2023 12:56:11 -0400 Subject: [PATCH 09/11] CSR-1588 prettier --- src/mixins/analytics-mixin.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/mixins/analytics-mixin.js b/src/mixins/analytics-mixin.js index 8637cfa64..5836112cf 100644 --- a/src/mixins/analytics-mixin.js +++ b/src/mixins/analytics-mixin.js @@ -38,7 +38,9 @@ export default { event: pageEvent, shouldUseSessionId: false, experimentsForUser: store.getters.applicationUser.experiments, - referralSequenceNumber: store.getters.order.referralSequenceNumber ?? store.getters.order.referralNumber, + referralSequenceNumber: + store.getters.order.referralSequenceNumber ?? + store.getters.order.referralNumber, parentAccountNumber: store.getters.order.payment.parentAccountNumber, }; @@ -59,7 +61,9 @@ export default { value: value, shouldUseSessionId: false, experimentsForUser: store.getters.applicationUser.experiments, - referralSequenceNumber: store.getters.order.referralSequenceNumber ?? store.getters.order.referralNumber, + referralSequenceNumber: + store.getters.order.referralSequenceNumber ?? + store.getters.order.referralNumber, parentAccountNumber: store.getters.order.payment.parentAccountNumber, }; From 14c3fe0663388a4c8e839d6fa44d18c47eaf469d Mon Sep 17 00:00:00 2001 From: CarlNation Date: Fri, 4 Aug 2023 14:21:08 -0400 Subject: [PATCH 10/11] CSR-1588 Seq number should always be returned by safelite api so no need to fall back to referral number --- src/mixins/analytics-mixin.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/mixins/analytics-mixin.js b/src/mixins/analytics-mixin.js index 5836112cf..37615f68b 100644 --- a/src/mixins/analytics-mixin.js +++ b/src/mixins/analytics-mixin.js @@ -38,9 +38,7 @@ export default { event: pageEvent, shouldUseSessionId: false, experimentsForUser: store.getters.applicationUser.experiments, - referralSequenceNumber: - store.getters.order.referralSequenceNumber ?? - store.getters.order.referralNumber, + referralSequenceNumber: store.getters.order.referralSequenceNumber, parentAccountNumber: store.getters.order.payment.parentAccountNumber, }; @@ -61,9 +59,7 @@ export default { value: value, shouldUseSessionId: false, experimentsForUser: store.getters.applicationUser.experiments, - referralSequenceNumber: - store.getters.order.referralSequenceNumber ?? - store.getters.order.referralNumber, + referralSequenceNumber: store.getters.order.referralSequenceNumber, parentAccountNumber: store.getters.order.payment.parentAccountNumber, }; From 576e96afaed90e71953a55ad6970d729dc7c0a98 Mon Sep 17 00:00:00 2001 From: CarlNation <32103961+CarlNation@users.noreply.github.com> Date: Fri, 28 Jul 2023 13:34:43 -0400 Subject: [PATCH 11/11] Revert "Merge pull request #1278 from Safelite/feature/CSR-1582" This reverts commit 5c67a0859e4700049f6ab86ba5c6424e02e51117. --- .../heritage-integration/navigation-helper.js | 2 +- src/router/index.js | 16 +--------------- 2 files changed, 2 insertions(+), 16 deletions(-) diff --git a/src/helpers/heritage-integration/navigation-helper.js b/src/helpers/heritage-integration/navigation-helper.js index d90562791..913fbcb1b 100644 --- a/src/helpers/heritage-integration/navigation-helper.js +++ b/src/helpers/heritage-integration/navigation-helper.js @@ -98,7 +98,7 @@ export async function skipVinLookupNotRepair() { /* Logic for getting the last "valid" page a user visited. */ -export async function getLatestPageForRedirection() { +async function getLatestPageForRedirection() { // If this is a non-CTA navigation, determine where to send the user based on page prerequisites. // This also works if a user has a 'fmg' start_type query string but no current order. // That shouldn't happen, but it's possible. diff --git a/src/router/index.js b/src/router/index.js index 2f28e06d5..11efa6080 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -19,7 +19,6 @@ import { loadSessionIfPresent, saveSession } from "@/helpers/heritage-integratio import { getPageToRouteExistingOrderTo, navigateToHeritageFunnel, - getLatestPageForRedirection, } from "@/helpers/heritage-integration/navigation-helper"; import baseMixin from "@/mixins/base-mixin"; @@ -125,21 +124,8 @@ const routes = [ .filter((x) => x.name === routeData[0].name)[0] .components.default(); - // The save quote link via heritage default.aspx... will land here. - // Heritage will attempt to send the customer to the lastest page in NextGen possible. - // If the link was created prior to reaching the end of NextGen, the save quote link - // was going to GoToFunnelStartOn404. This will send as deep into NextGen as possible. if (!arePagePrerequisitesValid(nextComponent)) { - var pageToRedirectTo = await getLatestPageForRedirection(); - if (pageToRedirectTo) { - return next({ - path: "/", - query: { fmgPage: pageToRedirectTo }, - params: to.params, - }); - } else { - await GoToFunnelStartOn404(next); - } + await GoToFunnelStartOn404(next); } // Assign current query string parameters, as well as our fmgPage one.