From fa8e1b46477a59a406c5ff1bff8d1a0900dea0cd Mon Sep 17 00:00:00 2001 From: Adam Caouette Date: Mon, 11 Dec 2023 12:08:36 -0500 Subject: [PATCH 1/5] CSR-1880: fix for blocking script error --- src/layouts/payment-method/payment-method.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index 568ef5b20..5311c2728 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -387,7 +387,7 @@ export default { const revalidateResponseHasFrontWiperLineItems = revalidatePromoResponse.promoLineItems.find( (lineItem) => lineItem.partType == partTypeStrings.FRONT_WIPER - ).length > 0; + )?.length > 0; if (revalidateResponseHasFrontWiperLineItems) { const frontWiperLineItemsInStore = this.lineItems.vaps.find( From 4aec9a0924a522f66094f3ad5126a7d550d48d3f Mon Sep 17 00:00:00 2001 From: Matt Sykes Date: Mon, 11 Dec 2023 18:20:30 -0500 Subject: [PATCH 2/5] Changing cookie values for logExperimentExposure --- src/layouts/vehicle/vehicle.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/layouts/vehicle/vehicle.vue b/src/layouts/vehicle/vehicle.vue index 049ac836f..0d4e22299 100644 --- a/src/layouts/vehicle/vehicle.vue +++ b/src/layouts/vehicle/vehicle.vue @@ -79,7 +79,7 @@ import vehicleQuestion from "@/layouts/vehicle/vehicle-question/vehicle-question // Supporting files import { fetchCmsContentForPage } from "@/helpers/cms-content-helper"; import { experimentUniverses } from "@/constants/experiments"; -import { getDeviceIdValue, getSessionKeyValue } from "@/helpers/heritage-integration/cookie-helper"; +import { getSessionKeyValue, getUserIdValue } from "@/helpers/heritage-integration/cookie-helper"; import { settleAllPromises } from "@/helpers/layout-helper"; import { Form, defineRule } from "vee-validate"; import { required } from "@/helpers/validation-rules"; @@ -169,7 +169,7 @@ export default { baseMixin.methods.dispatchStoreActionWithLogging( storeActions.LOG_EXPERIMENT_EXPOSURE, { - userId: getDeviceIdValue(), + userId: getUserIdValue(), sessionKey: getSessionKeyValue(), pageName: to.query.fmgPage, experiment: experimentForLogging, From 3d222e09a997a2daf974b5ace650dac17daeaca9 Mon Sep 17 00:00:00 2001 From: Matt Caimi Date: Tue, 12 Dec 2023 11:24:45 -0500 Subject: [PATCH 3/5] CSR-1881 use session storage ref seq num when order in vuex is cleared --- src/mixins/analytics-mixin.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/mixins/analytics-mixin.js b/src/mixins/analytics-mixin.js index d3fa4d0dd..4f388c7f0 100644 --- a/src/mixins/analytics-mixin.js +++ b/src/mixins/analytics-mixin.js @@ -36,6 +36,10 @@ export default { const currentPageName = getPageNameByQueryString(); await this.validateSession(); + const sessionStorageString = window.sessionStorage.getItem("submittedOrder"); + const sessionRefSeqNum = JSON.parse(sessionStorageString)?.referralSequenceNumber; + const refSequenceNum = store.getters.order.referralSequenceNumber || sessionRefSeqNum; + var payload = { userId: getUserIdValue(), sessionKey: getSessionKeyValue(), @@ -45,7 +49,7 @@ export default { event: pageEvent, shouldUseSessionId: false, experimentsForUser: store.getters.applicationUser.experiments, - referralSequenceNumber: store.getters.order.referralSequenceNumber, + referralSequenceNumber: refSequenceNum, parentAccountNumber: store.getters.order.payment.parentAccountNumber, }; @@ -56,6 +60,10 @@ export default { const currentPageName = getPageNameByQueryString(); await this.validateSession(); + const sessionStorageString = window.sessionStorage.getItem("submittedOrder"); + const sessionRefSeqNum = JSON.parse(sessionStorageString)?.referralSequenceNumber; + const refSequenceNum = store.getters.order.referralSequenceNumber || sessionRefSeqNum; + var payload = { userId: getUserIdValue(), sessionKey: getSessionKeyValue(), @@ -67,7 +75,7 @@ export default { value: value, shouldUseSessionId: false, experimentsForUser: store.getters.applicationUser.experiments, - referralSequenceNumber: store.getters.order.referralSequenceNumber, + referralSequenceNumber: refSequenceNum, parentAccountNumber: store.getters.order.payment.parentAccountNumber, }; From cc49d256d535d8d9b869947d9dda43e9291f062d Mon Sep 17 00:00:00 2001 From: Matt Caimi Date: Tue, 12 Dec 2023 11:44:14 -0500 Subject: [PATCH 4/5] CSR-1881 updated getter --- src/mixins/analytics-mixin.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/mixins/analytics-mixin.js b/src/mixins/analytics-mixin.js index 4f388c7f0..3f20adb59 100644 --- a/src/mixins/analytics-mixin.js +++ b/src/mixins/analytics-mixin.js @@ -36,9 +36,9 @@ export default { const currentPageName = getPageNameByQueryString(); await this.validateSession(); - const sessionStorageString = window.sessionStorage.getItem("submittedOrder"); - const sessionRefSeqNum = JSON.parse(sessionStorageString)?.referralSequenceNumber; - const refSequenceNum = store.getters.order.referralSequenceNumber || sessionRefSeqNum; + const refSequenceNum = + store.getters.order.referralSequenceNumber || + store.getters.submittedOrder?.referralSequenceNumber; var payload = { userId: getUserIdValue(), @@ -60,9 +60,9 @@ export default { const currentPageName = getPageNameByQueryString(); await this.validateSession(); - const sessionStorageString = window.sessionStorage.getItem("submittedOrder"); - const sessionRefSeqNum = JSON.parse(sessionStorageString)?.referralSequenceNumber; - const refSequenceNum = store.getters.order.referralSequenceNumber || sessionRefSeqNum; + const refSequenceNum = + store.getters.order.referralSequenceNumber || + store.getters.submittedOrder?.referralSequenceNumber; var payload = { userId: getUserIdValue(), From e48a05c9aafc099120dd859f16a6f9e496807b6e Mon Sep 17 00:00:00 2001 From: Adam Caouette Date: Tue, 12 Dec 2023 12:15:09 -0500 Subject: [PATCH 5/5] Revert "Merge pull request #1622 from Safelite/feature/CSR-1851" This reverts commit 3bddf0b509a6268531b34de55b789d1028fec1ff, reversing changes made to 1eb6d9663970dec0fd93c4ed0bfa735fc877eb64. --- src/helpers/promotions-helper.js | 3 --- src/layouts/payment-method/payment-method.vue | 27 ------------------- 2 files changed, 30 deletions(-) diff --git a/src/helpers/promotions-helper.js b/src/helpers/promotions-helper.js index a592a6d9d..3968248d6 100644 --- a/src/helpers/promotions-helper.js +++ b/src/helpers/promotions-helper.js @@ -112,7 +112,6 @@ export async function revalidatePromosAndValidateQueryStringPromo( pageNameToLog, false ); - const revalidationErrorPromoCodes = revalidatePromoResponse.errors.map((x) => x.promoCode); baseMixin.methods.dispatchStoreAction( storeActions.SAVE_ACTIVE_AND_OR_INACTIVE_PROMOS, @@ -123,7 +122,6 @@ export async function revalidatePromosAndValidateQueryStringPromo( false ); } - if (hasNewPromo) { validatePromoResponse = await baseMixin.methods.dispatchStoreActionWithLogging( storeActions.VALIDATE_ORDER_PROMO_AND_SAVE_SERVER_DATA, @@ -134,7 +132,6 @@ export async function revalidatePromosAndValidateQueryStringPromo( pageNameToLog, false ); - if (validatePromoResponse.errorCode == null) { // Save promo to store const activePromos = store.getters.order.lineItems.promos ?? []; diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index 5311c2728..39541db02 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -112,7 +112,6 @@ import { defineRule } from "vee-validate"; import { required } from "@/helpers/validation-rules"; import { errorMessages } from "@/constants/error-messages"; import { AppointmentTypeStrings } from "@/constants/schedule-constants"; -import { partTypeStrings } from "@/constants/part-type-strings"; import { mapTaxedLineItemsToStoreFormat } from "../../store"; defineRule("option-required", required(errorMessages.OPTION_REQUIRED)); @@ -381,32 +380,6 @@ export default { ); } - // Because we don't yet have a robust solution for part interchange ... - // if there are front wiper line items in the revalidate response, we need to delete any existing front wiper line items from the store - // and replace them with those that come back from revalidation. - const revalidateResponseHasFrontWiperLineItems = - revalidatePromoResponse.promoLineItems.find( - (lineItem) => lineItem.partType == partTypeStrings.FRONT_WIPER - )?.length > 0; - - if (revalidateResponseHasFrontWiperLineItems) { - const frontWiperLineItemsInStore = this.lineItems.vaps.find( - (lineItem) => lineItem.partType == partTypeStrings.FRONT_WIPER - ); - if (frontWiperLineItemsInStore.length > 0) { - this.lineItems.vaps = this.lineItems.vaps.find( - (lineItem) => lineItem.partType != partTypeStrings.FRONT_WIPER - ); - } - } - - const vapsToAddToCart = getVapsThatNeedToBeAddedToSatisfyPromos( - revalidatePromoResponse.promoLineItems, - this.availableVaps, - this.lineItems - ); - this.lineItems.vaps.push(...vapsToAddToCart); - this.lineItems.promos = revalidatePromoResponse.promoLineItems; this.inactivePromos = revalidatePromoResponse.errors.map((x) => getPromoCodeWithoutBundleIdentifier(x.promoCode)