From 4980d77403a665348eea34df8bcb0732f6f1ba09 Mon Sep 17 00:00:00 2001 From: CarlNation Date: Wed, 11 Feb 2026 11:56:21 -0500 Subject: [PATCH 1/2] CASH-2196 Build Glass.net and autoglassestimator.com into fmg 2.0 CASH-2196 Build Glass.net and autoglassestimator.com into fmg 2.0 --- src/constants/store-mutations.js | 1 + src/layouts/vehicle-damage/vehicle-damage.vue | 6 ++++- src/mixins/analytics-mixin.js | 24 +++++++++++++---- .../helpers/initialize-from-querystrings.js | 27 ++++++++++++++++++- src/store/index.js | 5 ++++ 5 files changed, 56 insertions(+), 7 deletions(-) diff --git a/src/constants/store-mutations.js b/src/constants/store-mutations.js index 700f527c2..9b4b3719c 100644 --- a/src/constants/store-mutations.js +++ b/src/constants/store-mutations.js @@ -119,6 +119,7 @@ const storeMutations = { UPDATE_EXTERNAL_PARAMETER_SERVICE_PACKAGE: "updateExternalParameterServicePackage", UPDATE_EXTERNAL_PARAMETER_SOURCE: "updateExternalParameterSource", UPDATE_EXTERNAL_PARAMETER_PHONE_NUMBER: "updateExternalParameterPhoneNumber", + UPDATE_EXTERNAL_PARAMETER_QS_STASH: "updateExternalParameterQsStash", //RESET EXTERNAL_PARAMETER MUTATIONS RESET_EXTERNAL_PARAMETER_VEHICLE_STATE: "resetExternalParameterVehicleState", diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index 83ffab532..88350a18c 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -93,6 +93,7 @@ import { errorMessages } from "@/constants/error-messages"; import { damageLocationsCms } from "@/constants/damage-locations-cms.js"; import { damageLocationsSelected } from "@/constants/damage-locations-selected.js"; import { getFunnelCookie } from "@/helpers/heritage-integration/cookie-helper"; +import { debugLog } from "@/helpers/debug-log-helper"; import store from "@/store"; import baseMixin from "@/mixins/base-mixin"; @@ -144,6 +145,7 @@ export default { if (store.getters.externalParameterState?.isExternalParameter) { await nextTick(); const isValid = await baseMixin.methods.isFormValid(vm.$refs.theForm); + debugLog(`**** vehicle-damage is form valid: ${isValid} ****`); if ( store.getters.vehicle?.vehicleSubType === "MOTOR HOME" && store.getters.externalParameterDamage.damageType?.toUpperCase() === @@ -183,7 +185,7 @@ export default { const selectedGlassToReplace = resultMap.damageOptions.windshieldOptions.availableReplacementOptions; - if (selectedGlassToReplace == damageLocationsSelected.SINGLE) { + if (selectedGlassToReplace == damageLocationsSelected.SINGLE && store.getters.externalParameterDamage.damageType) { vm.selectedWindshieldOptions.selectedWindshieldReplaceOptions.push( damageLocationsSelected.SINGLE ); @@ -251,6 +253,8 @@ export default { if (store.getters.vehicle.carId) { return true; } + debugLog('**** Vehicle Page Prereq invalid ****'); + debugLog("store.getters.vehicle.carId:", store.getters.vehicle?.carId, true); return false; }, attachCustomEvents() { diff --git a/src/mixins/analytics-mixin.js b/src/mixins/analytics-mixin.js index 0be50a8be..5a5e03bd7 100644 --- a/src/mixins/analytics-mixin.js +++ b/src/mixins/analytics-mixin.js @@ -31,7 +31,6 @@ import { applicationConfig } from "../constants/application-config"; import { getFunnelCookie } from "@/helpers/heritage-integration/cookie-helper"; import { routeData } from "@/router/constants/routes"; import { getQuerystringParameter } from "@/helpers/querystring-helper"; -import { Variables } from "../constants/analytics"; import { containsRecalParts, getRecalPartNumbers } from "@/helpers/recal-helper"; import { getAmountDue, getSubTotal, getSalesTax } from "@/helpers/pricing-helper.js"; import { partTypeStrings } from "@/constants/part-type-strings"; @@ -248,9 +247,27 @@ export default { } var appointment = `${order?.schedule?.date ?? ""} ${order?.schedule?.startTime ?? ""}`; + var currentPageName = getPageNameFromRouter(); + + // add query strings to the page name for debugging. on the vehicle page, if from an external link, pull it from the stash + if (currentPageName === "vehicle") { + if (!window.location.search) { + if (store.getters.externalParameterState?.qsStash) { + currentPageName += `${store.getters.externalParameterState.qsStash}`; + } + } + else { + currentPageName += `${window.location.search}`; + } + } + else { + if (window.location.search) { + currentPageName += `${window.location.search}`; + } + } var sessionData = {}; - sessionData.currentPage = getPageNameFromRouter(); + sessionData.currentPage = currentPageName; sessionData.sid = getSessionIdValue(); sessionData.deviceId = getDeviceIdValue(); sessionData.fmgSessionId = applicationUser?.savedSessionId; @@ -952,9 +969,6 @@ export default { ValueToLogTypes() { return ValueToLogTypes; }, - Variables() { - return Variables; - }, }, }; diff --git a/src/router/methods/helpers/initialize-from-querystrings.js b/src/router/methods/helpers/initialize-from-querystrings.js index 2e12f88eb..8dff4423d 100644 --- a/src/router/methods/helpers/initialize-from-querystrings.js +++ b/src/router/methods/helpers/initialize-from-querystrings.js @@ -8,6 +8,7 @@ import { storeActions } from "@/constants/store-actions"; import { getQuerystringParameter } from "@/helpers/querystring-helper"; import { queryStrings } from "@/constants/query-strings"; import { externalParameterStatus } from "@/constants/external-parameters"; +import { debugLog } from "@/helpers/debug-log-helper"; export async function initializeFromQueryStrings() { // Get advertiser info @@ -26,12 +27,13 @@ function setupAdvertisersAndAffiliates() { } function updateExternalParameterState() { + debugLog("--- updateExternalParameterState ---"); const externalParameterYear = getQuerystringParameter(queryStrings.VEHICLE_YEAR); const externalParameterMake = getQuerystringParameter(queryStrings.VEHICLE_MAKE); const externalParameterModel = getQuerystringParameter(queryStrings.VEHICLE_MODEL); const externalParameterStyle = getQuerystringParameter(queryStrings.VEHICLE_STYLE); const externalParameterDamage = getQuerystringParameter(queryStrings.VEHICLE_DAMAGE); - const externalParameterZipCode = getQuerystringParameter(queryStrings.SERVICE_ZIP); + let externalParameterZipCode = getQuerystringParameter(queryStrings.SERVICE_ZIP); const externalParameterEmail = getQuerystringParameter(queryStrings.EMAIL); const externalParameterIsInsurance = getQuerystringParameter(queryStrings.IS_INSURANCE); const externalParameterVinSelection = getQuerystringParameter(queryStrings.VIN_SELECTION); @@ -39,6 +41,27 @@ function updateExternalParameterState() { const externalParameterNumberOfChips = getQuerystringParameter(queryStrings.NUMBER_OF_CHIPS); const externalParameterSource = getQuerystringParameter(queryStrings.EXPERIMENTS); const externalParameterPhoneNumber = getQuerystringParameter(queryStrings.PHONE_NUMBER); + + if (!externalParameterZipCode) { + externalParameterZipCode = getQuerystringParameter(queryStrings.ZIP_CODE); + } + + if (externalParameterYear || externalParameterZipCode) { + debugLog("externalParameterYear:", externalParameterYear); + debugLog("externalParameterMake:", externalParameterMake); + debugLog("externalParameterModel:", externalParameterModel); + debugLog("externalParameterStyle:", externalParameterStyle); + debugLog("externalParameterDamage:", externalParameterDamage); + debugLog("externalParameterZipCode:", externalParameterZipCode); + debugLog("externalParameterEmail:", externalParameterEmail); + debugLog("externalParameterIsInsurance:", externalParameterIsInsurance); + debugLog("externalParameterVinSelection:", externalParameterVinSelection); + debugLog("externalParameterServicePackage:", externalParameterServicePackage); + debugLog("externalParameterNumberOfChips:", externalParameterNumberOfChips); + debugLog("externalParameterSource:", externalParameterSource); + debugLog("externalPhoneNumber:", externalParameterPhoneNumber); + } + if ( externalParameterYear && externalParameterMake && @@ -51,6 +74,7 @@ function updateExternalParameterState() { store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_MAKE, externalParameterMake); store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_MODEL, externalParameterModel); store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_STYLE, externalParameterStyle); + store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_QS_STASH, window.location.search); } if ( externalParameterDamage && @@ -100,6 +124,7 @@ function updateExternalParameterState() { externalParameterPhoneNumber ); } + debugLog("--- updateExternalParameterState END ---"); } // if there is an existing external parameter state then they have already been through from an external source(LeadGen) and diff --git a/src/store/index.js b/src/store/index.js index e9b379b56..c5d9846f9 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -516,6 +516,10 @@ export const mutations = { externalParameterState.vehicle.style = style; saveExternalParameterState(externalParameterState); }, + updateExternalParameterQsStash(state, qsStash) { + externalParameterState.qsStash = qsStash; + saveExternalParameterState(externalParameterState); + }, updateExternalParameterIsRepair(state, isRepair) { externalParameterState.vehicleDamage.isRepair = isRepair; saveExternalParameterState(externalParameterState); @@ -4142,6 +4146,7 @@ function createExternalParameterDefaultState() { // create default externalParameter state const externalParameterDefaultState = { isExternalParameter: externalParameterStatus.NOT_SET, + qsStash: null, vehicle: { year: null, make: null, From 5d29f077a343961be7fd255d2ab152b9f2be3f25 Mon Sep 17 00:00:00 2001 From: CarlNation Date: Wed, 11 Feb 2026 12:02:22 -0500 Subject: [PATCH 2/2] prettier --- src/layouts/vehicle-damage/vehicle-damage.vue | 7 +++++-- src/mixins/analytics-mixin.js | 6 ++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index 88350a18c..7b313dbf7 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -185,7 +185,10 @@ export default { const selectedGlassToReplace = resultMap.damageOptions.windshieldOptions.availableReplacementOptions; - if (selectedGlassToReplace == damageLocationsSelected.SINGLE && store.getters.externalParameterDamage.damageType) { + if ( + selectedGlassToReplace == damageLocationsSelected.SINGLE && + store.getters.externalParameterDamage.damageType + ) { vm.selectedWindshieldOptions.selectedWindshieldReplaceOptions.push( damageLocationsSelected.SINGLE ); @@ -253,7 +256,7 @@ export default { if (store.getters.vehicle.carId) { return true; } - debugLog('**** Vehicle Page Prereq invalid ****'); + debugLog("**** Vehicle Page Prereq invalid ****"); debugLog("store.getters.vehicle.carId:", store.getters.vehicle?.carId, true); return false; }, diff --git a/src/mixins/analytics-mixin.js b/src/mixins/analytics-mixin.js index 5a5e03bd7..238bed59d 100644 --- a/src/mixins/analytics-mixin.js +++ b/src/mixins/analytics-mixin.js @@ -255,12 +255,10 @@ export default { if (store.getters.externalParameterState?.qsStash) { currentPageName += `${store.getters.externalParameterState.qsStash}`; } - } - else { + } else { currentPageName += `${window.location.search}`; } - } - else { + } else { if (window.location.search) { currentPageName += `${window.location.search}`; }