diff --git a/public/index.html b/public/index.html index 45f83a20f..ab8f27144 100644 --- a/public/index.html +++ b/public/index.html @@ -1,6 +1,7 @@
+ diff --git a/src/constants/quote-page-discounts.js b/src/constants/quote-page-discounts.js index 2dd32d915..3b61c136d 100644 --- a/src/constants/quote-page-discounts.js +++ b/src/constants/quote-page-discounts.js @@ -77,4 +77,29 @@ export const quotePageDiscountTable = [ description: "PREM RCL GEOTARGET DISC", packageLevel: packageNames.TIER_THREE, }, + // Replace - Curve Tempered + { + name: "Curve Tempered Glass Only", + experimentCode: "Show_GlassOnly_Replace_CT_Discount", + partNumber: "GL CT CSH PKG", + partType: partTypeStrings.QUOTE_PAGE_DISCOUNT, + description: "GLASS CT GEOTARGET DISC", + packageLevel: packageNames.TIER_ONE, + }, + { + name: "Curve Tempered Standard", + experimentCode: "Show_Standard_Replace_CT_Discount", + partNumber: "STD CT CSH PKG", + partType: partTypeStrings.QUOTE_PAGE_DISCOUNT, + description: "STD CT GEOTARGET DISC", + packageLevel: packageNames.TIER_TWO, + }, + { + name: "Curve Tempered Premium", + experimentCode: "Show_Premium_Replace_CT_Discount", + partNumber: "PRM CT CSH PKG", + partType: partTypeStrings.QUOTE_PAGE_DISCOUNT, + description: "PREM CT GEOTARGET DISC", + packageLevel: packageNames.TIER_THREE, + }, ]; 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..7b313dbf7 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,10 @@ 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 +256,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..238bed59d 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,25 @@ 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 +967,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,