import { setupAdvertiserTracking, getAffiliateCookies, } from "@/helpers/heritage-integration/cookie-helper"; import store from "@/store"; import { storeMutations } from "@/constants/store-mutations"; 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 setupAdvertisersAndAffiliates(); // Read all external paramter queries and write to store. updateExternalParameterState(); } function setupAdvertisersAndAffiliates() { const affiliateCookies = getAffiliateCookies(); if (affiliateCookies != null && affiliateCookies.length > 0) { store.commit(storeMutations.UPDATE_AFFILIATE_COOKIES, affiliateCookies); } setupAdvertiserTracking(); } 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); let externalParameterZipCode = getQuerystringParameter(queryStrings.SERVICE_ZIP); const externalParameterEmail = getQuerystringParameter(queryStrings.EMAIL); const externalParameterIsInsurance = getQuerystringParameter(queryStrings.IS_INSURANCE); const externalParameterVinSelection = getQuerystringParameter(queryStrings.VIN_SELECTION); const externalParameterServicePackage = getQuerystringParameter(queryStrings.SERVICE_PACKAGE); 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 && externalParameterModel && externalParameterStyle ) { resetStoreForExternalParameter(); store.commit(storeMutations.UPDATE_IS_EXTERNAL_PARAMETER, externalParameterStatus.ACTIVE); store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_YEAR, externalParameterYear); 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 && (externalParameterDamage.toUpperCase() != "WINDSHIELDREPAIR" || externalParameterNumberOfChips?.length > 0) ) { store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_DAMAGE_TYPE, externalParameterDamage); if (externalParameterDamage.toUpperCase() == "WINDSHIELDREPLACE") { store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_IS_REPAIR, false); store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_NUMBER_OF_CHIPS, null); } else if (externalParameterDamage.toUpperCase() == "WINDSHIELDREPAIR") { store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_IS_REPAIR, true); store.commit( storeMutations.UPDATE_EXTERNAL_PARAMETER_NUMBER_OF_CHIPS, externalParameterNumberOfChips ); } } if (externalParameterZipCode) { store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_ZIP_CODE, externalParameterZipCode); store.commit(storeMutations.UPDATE_IS_EXTERNAL_PARAMETER, externalParameterStatus.ACTIVE); } if (externalParameterEmail) { store.commit( storeMutations.UPDATE_EXTERNAL_PARAMETER_EMAIL_ADDRESS, externalParameterEmail ); } if (externalParameterIsInsurance?.toUpperCase() == "TRUE") { store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_IS_INSURANCE, true); store.commit( storeMutations.UPDATE_EXTERNAL_PARAMETER_SERVICE_PACKAGE, externalParameterServicePackage?.toLowerCase() ); } if (externalParameterDamage?.toUpperCase() != "WINDSHIELDREPAIR") { store.commit( storeMutations.UPDATE_EXTERNAL_PARAMETER_VIN_SELECTION, externalParameterVinSelection ); } if (externalParameterSource) { store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_SOURCE, externalParameterSource); } if (externalParameterPhoneNumber) { store.commit( storeMutations.UPDATE_EXTERNAL_PARAMETER_PHONE_NUMBER, externalParameterPhoneNumber ); } debugLog("--- updateExternalParameterState END ---"); } // if there is an existing external parameter state then they have already been through from an external source(LeadGen) and // are returning. clear out prior related things that need to be selected again like parts and damage type. function resetStoreForExternalParameter() { if ( store.getters.externalParameterState?.isExternalParameter == externalParameterStatus.INACTIVE ) { store.dispatch(storeActions.RESET_VEHICLE_STATE_AND_DEPENDENCIES); store.dispatch(storeActions.SAVE_SERVICE_ZIP_CODE_INFO, { state: null, zipCode: null, zipCodeCtu: null, }); store.dispatch(storeActions.SAVE_EMAIL, null); store.dispatch(storeActions.RESET_DAMAGE_STATE_AND_DEPENDENCIES); } }