From 1c840c7d3c4cfa15886f65258630feb721f4301c Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Mon, 14 Jul 2025 13:01:00 -0400 Subject: [PATCH] Refine data passed to sierra -- 1161 --- .../sierra-webchat/sierra-webchat.vue | 21 ++++++++++--------- src/layouts/quote/quote.vue | 10 ++------- .../service-package-question.vue | 2 +- src/router/methods/helpers/save-page-data.js | 9 ++++++-- 4 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/digital-components/sierra-webchat/sierra-webchat.vue b/src/digital-components/sierra-webchat/sierra-webchat.vue index 77e5675f1..e7bd06216 100644 --- a/src/digital-components/sierra-webchat/sierra-webchat.vue +++ b/src/digital-components/sierra-webchat/sierra-webchat.vue @@ -44,21 +44,22 @@ export default { }, getSierraContext() { const glassDamage = store.getters?.order?.damage?.glassToReplace; - const glassType = - glassDamage && glassDamage.length > 0 - ? glassDamage.length > 1 - ? "Multiglass" - : glassDamage[0].glassType // todo: clarify? - : ""; + let glassType = ""; + for (let i = 0; i < glassDamage?.length; i++) { + if (i !== 0) { + glassType += "/"; + } + glassType += glassDamage[i].glassLocation; + } const damageType = store.getters.order?.damage?.isRepair ? "repair" : "replace"; const paymentType = store.getters.oreder?.payment?.isInsurance ? "insurance" : "cash"; const glassParts = store.getters.order?.lineItems?.glassParts; - const partId = glassParts && glassParts.length > 0 ? glassParts[0].partId : ""; + const partNumber = glassParts && glassParts.length > 0 ? glassParts[0].partNumber : ""; - const packageData = deepClone(store.getters?.pageData(routeData.QUOTE.name)); + const packageData = deepClone(store.getters?.pageData(routeData.QUOTE.name)?.packages); return { current_page: this.pageName, @@ -66,12 +67,12 @@ export default { vehicle_make: store.getters.order?.vehicle?.make ?? "", vehicle_model: store.getters.order?.vehicle?.model ?? "", vehicle_style: store.getters.order?.vehicle?.style ?? "", - service_zip: store.getters.order?.serviceLocation?.serviceZip ?? "", + service_zip: store.getters.order?.serviceLocation?.zipCode ?? "", glass_type: glassType ?? "", damage_type: damageType ?? "", payment_type: paymentType ?? "", quote: packageData ?? [], - part_id: partId ?? "", + part_id: partNumber ?? "", recalibration: store.getters?.isRecalibrationOnOrder ?? "", }; }, diff --git a/src/layouts/quote/quote.vue b/src/layouts/quote/quote.vue index 4e5b6b51b..ac2901ae0 100644 --- a/src/layouts/quote/quote.vue +++ b/src/layouts/quote/quote.vue @@ -172,6 +172,7 @@ import { routeData } from "@/router/constants/routes"; import { consumeQueryFromStash } from "@/router/methods/helpers/querystring-stash"; import { storeMutations } from "@/constants/store-mutations"; import { debugLog } from "@/helpers/debug-log-helper"; +import { savePageData } from "@/router/methods/helpers/save-page-data"; defineRule("option-required", required(errorMessages.OPTION_REQUIRED)); @@ -669,14 +670,7 @@ export default { async closeSaveProgressPopup() { this.showSaveProgressPopup = false; - await this.dispatchStoreAction( - storeActions.SAVE_PAGE_DATA, - { - page: routeData.QUOTE.name, - data: { saveProgressPopupSkipped: true }, - }, - false - ); + savePageData(this.pageName, { saveProgressPopupSkipped: true }, true); if (this.skipToInsurance) { // skip ahead now if in IGQ skip experiment diff --git a/src/layouts/quote/service-package-question/service-package-question.vue b/src/layouts/quote/service-package-question/service-package-question.vue index cc343455e..1ea1b7cf2 100644 --- a/src/layouts/quote/service-package-question/service-package-question.vue +++ b/src/layouts/quote/service-package-question/service-package-question.vue @@ -442,7 +442,7 @@ export default { price: ans.buttonAuxillaryCopy, })); - await savePageData(this.pageName, { packages: toLog }); + await savePageData(this.pageName, { packages: toLog }, true); }, }, components: { diff --git a/src/router/methods/helpers/save-page-data.js b/src/router/methods/helpers/save-page-data.js index 1299f8900..9b57c635b 100644 --- a/src/router/methods/helpers/save-page-data.js +++ b/src/router/methods/helpers/save-page-data.js @@ -1,10 +1,15 @@ import store from "@/store"; import { storeMutations } from "@/constants/store-mutations"; -export async function savePageData(page, data) { +export async function savePageData(page, data, merge = false) { const existingPageData = store.getters.pageData(page); - const dataToSave = Object.keys(data).length > 0 ? data : (existingPageData ?? {}); + let dataToSave; + if (merge) { + dataToSave = Object.assign(existingPageData ?? {}, data ?? {}); + } else { + dataToSave = Object.keys(data).length > 0 ? data : (existingPageData ?? {}); + } // Save data if non-null store.commit(storeMutations.UPDATE_PAGE_DATA, { page: page, data: dataToSave });