From 3803f944f04b64ff3e6da366adf0ac51d3d1e905 Mon Sep 17 00:00:00 2001 From: Johnny shultz Date: Wed, 19 Mar 2025 15:44:21 -0400 Subject: [PATCH 01/28] CASH-185 CASH-185 syntax changes --- src/layouts/schedule/schedule.vue | 2 +- .../time-slot-modal-question.vue | 20 +++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/layouts/schedule/schedule.vue b/src/layouts/schedule/schedule.vue index 0d688e4d9..4f9f09cb1 100644 --- a/src/layouts/schedule/schedule.vue +++ b/src/layouts/schedule/schedule.vue @@ -61,7 +61,7 @@ :estimatedServiceMinutesMaximum=" selectableDatesData.estimatedServiceMinutesMaximum " - @waitListRequested-emitted="handleWaitListRequested" + @waitListRequested="handleWaitListRequested" @time-slot-modal-closed="timeSlotModalClosed" validationRules="time-slot-selection-required" @TimeSlotSelected="forwardButtonAction" /> diff --git a/src/layouts/schedule/time-slot-modal-question/time-slot-modal-question.vue b/src/layouts/schedule/time-slot-modal-question/time-slot-modal-question.vue index 82e11ea41..0cc9cba78 100644 --- a/src/layouts/schedule/time-slot-modal-question/time-slot-modal-question.vue +++ b/src/layouts/schedule/time-slot-modal-question/time-slot-modal-question.vue @@ -43,8 +43,8 @@ v-if="waitListRequested" class="mt-5 rounded waitlist-success" ref="waitlistSuccessMessage"> - - + +
Date: Wed, 19 Mar 2025 15:45:01 -0400 Subject: [PATCH 02/28] CASH-154: Update Pricing By Day part number --- src/constants/schedule-constants.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/constants/schedule-constants.js b/src/constants/schedule-constants.js index a0aaf8316..fbd165ad1 100644 --- a/src/constants/schedule-constants.js +++ b/src/constants/schedule-constants.js @@ -8,8 +8,7 @@ const PREMIUM_TIME_SLOT_ID_FLAG = "-PREMIUM"; const PREMIUM_FEE_PART_TYPE = "EARLY BIRD"; -// TODO; This will need updating with real PricingByDay part type -const PRICING_BY_DAY_PART_TYPE = "DISC CASHSAVE20"; +const PRICING_BY_DAY_PART_TYPE = "PREMAPPT GEN"; const RouteCodeFlags = { ALL_DAY_DROP_OFF: "ALL DAY DROP OFF", From 4301ca27deb3679db3df328be939e87e91ba47d0 Mon Sep 17 00:00:00 2001 From: Johnny shultz Date: Wed, 19 Mar 2025 18:01:17 -0400 Subject: [PATCH 03/28] Cash 152 Cash-152 fixed UI defect CASH-405 for CASH-152 --- .../date-picker/mixins/constants.js | 9 +---- .../date-picker-for-pricing-by-day.vue | 37 +++++++++++++++++-- 2 files changed, 35 insertions(+), 11 deletions(-) diff --git a/src/digital-components/date-picker/mixins/constants.js b/src/digital-components/date-picker/mixins/constants.js index b9092b5eb..52b973d3f 100644 --- a/src/digital-components/date-picker/mixins/constants.js +++ b/src/digital-components/date-picker/mixins/constants.js @@ -26,43 +26,36 @@ const DAYS_OF_WEEK = [ { label: "Sunday", cssClass: "sunday", - index: 0, - isPricingByDayUpchargeDay: false, + isPricingByDayUpchargeDay: true, }, { label: "Monday", cssClass: "monday", - index: 1, isPricingByDayUpchargeDay: true, }, { label: "Tuesday", cssClass: "tuesday", - index: 2, isPricingByDayUpchargeDay: false, }, { label: "Wednesday", cssClass: "wednesday", - index: 3, isPricingByDayUpchargeDay: false, }, { label: "Thursday", cssClass: "thursday", - index: 4, isPricingByDayUpchargeDay: false, }, { label: "Friday", cssClass: "friday", - index: 5, isPricingByDayUpchargeDay: true, }, { label: "Saturday", cssClass: "saturday", - index: 6, isPricingByDayUpchargeDay: true, }, ]; diff --git a/src/experiment-components/date-picker-for-pricing-by-day.vue b/src/experiment-components/date-picker-for-pricing-by-day.vue index 5bdcec336..b37f6b502 100644 --- a/src/experiment-components/date-picker-for-pricing-by-day.vue +++ b/src/experiment-components/date-picker-for-pricing-by-day.vue @@ -1,5 +1,5 @@ + Cookie preferences Date: Mon, 31 Mar 2025 13:36:24 -0400 Subject: [PATCH 20/28] Formatting --- src/store/index.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/store/index.js b/src/store/index.js index 13c12cd94..317eab88c 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1967,8 +1967,6 @@ export const actions = { */ let result; - - switch (donationAmount) { case 1: result = { wasSuccessful: true, wasLocked: false }; From 1f1890566ac0df11127e1dd64d8d88983caeb6d9 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Mon, 31 Mar 2025 14:08:01 -0400 Subject: [PATCH 21/28] Format code. --- src/fmg-components/funnel-header/menu-modal/menu-modal.vue | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/fmg-components/funnel-header/menu-modal/menu-modal.vue b/src/fmg-components/funnel-header/menu-modal/menu-modal.vue index 8e5c21708..9b5ebb536 100644 --- a/src/fmg-components/funnel-header/menu-modal/menu-modal.vue +++ b/src/fmg-components/funnel-header/menu-modal/menu-modal.vue @@ -57,7 +57,9 @@ alt="Your privacy choices" /> - Cookie preferences + + Cookie preferences + Date: Mon, 31 Mar 2025 14:50:53 -0400 Subject: [PATCH 22/28] CASH-442 update cookie link. Test. --- .../funnel-header/menu-modal/menu-modal.vue | 39 +++++++++---------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/src/fmg-components/funnel-header/menu-modal/menu-modal.vue b/src/fmg-components/funnel-header/menu-modal/menu-modal.vue index 9b5ebb536..9c77cec35 100644 --- a/src/fmg-components/funnel-header/menu-modal/menu-modal.vue +++ b/src/fmg-components/funnel-header/menu-modal/menu-modal.vue @@ -56,26 +56,22 @@ src="~@/assets/img/icons/ccpa-icon.svg" alt="Your privacy choices" /> - - - Cookie preferences - - - - -
+ + + + + @@ -181,6 +177,9 @@ export default { height: 1rem; margin-left: 0.5rem; } + :deep(.navigation-link) { + margin-bottom: 1.5rem; + } } .modal-fullscreen { width: 100vw; From ed00b2fc60e1f503f127752133698943462f8bf3 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Mon, 31 Mar 2025 14:52:23 -0400 Subject: [PATCH 23/28] Format code. --- .../funnel-header/menu-modal/menu-modal.vue | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/fmg-components/funnel-header/menu-modal/menu-modal.vue b/src/fmg-components/funnel-header/menu-modal/menu-modal.vue index 9c77cec35..4dc07f3a5 100644 --- a/src/fmg-components/funnel-header/menu-modal/menu-modal.vue +++ b/src/fmg-components/funnel-header/menu-modal/menu-modal.vue @@ -56,22 +56,22 @@ src="~@/assets/img/icons/ccpa-icon.svg" alt="Your privacy choices" /> - - - - - + + + + + From 2e3af146e6506bad8fd55327eb079ec89d69eb60 Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Mon, 31 Mar 2025 15:32:02 -0400 Subject: [PATCH 24/28] Add page-skipping logic to quote --- src/constants/experiments.js | 2 + src/constants/package-names.js | 6 ++ src/helpers/service-package-helper.js | 8 +- src/layouts/quote/quote.vue | 84 ++++++++++++++++--- .../service-package-question.vue | 5 ++ 5 files changed, 88 insertions(+), 17 deletions(-) diff --git a/src/constants/experiments.js b/src/constants/experiments.js index 09dfc4140..d64849466 100644 --- a/src/constants/experiments.js +++ b/src/constants/experiments.js @@ -2,6 +2,7 @@ const experimentUniverses = { CONCEPT_FUNNEL: "ConceptFunnel", RECAL_PRICE_REMOVAL: "NextGen_RecalPriceRemoval", MSR: "MSR", + IGQ_SkipQuote: "NextGen_IGQSkipToInsurance", }; const experimentSettings = { @@ -22,6 +23,7 @@ const experimentSettings = { WAITLIST_THRESHOLD_DAYS: "Waitlist_Threshold_Days", PRICING_BY_DAY: "DisplayPricingByDay", FOSTER_LOVE: "DisplayFosterLove", + SKIP_TO_INSURANCE: "SkipToInsurance", }; const experimentTriggers = { diff --git a/src/constants/package-names.js b/src/constants/package-names.js index 221a75a49..0115daa61 100644 --- a/src/constants/package-names.js +++ b/src/constants/package-names.js @@ -3,3 +3,9 @@ export const packageNames = { TIER_TWO: "TierTwo", TIER_THREE: "TierThree", }; + +export const externalParamPackageLabels = { + GLASS_ONLY: "glassonly", + STANDARD: "standard", + PREMIUM: "premium", +}; diff --git a/src/helpers/service-package-helper.js b/src/helpers/service-package-helper.js index fcbe4aee3..6e0a6743a 100644 --- a/src/helpers/service-package-helper.js +++ b/src/helpers/service-package-helper.js @@ -1,6 +1,6 @@ import { partTypeStrings } from "@/constants/part-type-strings"; import { damageLocationsSelected as glassLocations } from "@/constants/damage-locations-selected"; -import { packageNames } from "@/constants/package-names"; +import { packageNames, externalParamPackageLabels } from "@/constants/package-names"; import baseMixin from "@/mixins/base-mixin.js"; import { getItemsWithoutRecalParts } from "@/helpers/recal-helper"; import { @@ -238,9 +238,9 @@ export function getHighestFullySatisfiedTier(glassToReplace, availableLineItems, export function getPackageNameByType(packageType) { const package_names = { - glassonly: packageNames.TIER_ONE, - standard: packageNames.TIER_TWO, - premium: packageNames.TIER_THREE, + [externalParamPackageLabels.GLASS_ONLY]: packageNames.TIER_ONE, + [externalParamPackageLabels.STANDARD]: packageNames.TIER_TWO, + [externalParamPackageLabels.PREMIUM]: packageNames.TIER_THREE, }; return package_names[packageType] || null; } diff --git a/src/layouts/quote/quote.vue b/src/layouts/quote/quote.vue index 615662013..0ff86494d 100644 --- a/src/layouts/quote/quote.vue +++ b/src/layouts/quote/quote.vue @@ -134,7 +134,7 @@ import { storeActions } from "@/constants/store-actions"; import { deepClone } from "@/helpers/object-helper"; import store from "@/store"; import { fetchCmsContentForPage } from "@/helpers/cms-content-helper"; -import { experimentSettings } from "@/constants/experiments"; +import { experimentSettings, experimentUniverses } from "@/constants/experiments"; import { required } from "@/helpers/validation-rules"; import { errorMessages } from "@/constants/error-messages"; import { Form, defineRule } from "vee-validate"; @@ -154,12 +154,18 @@ import { findLineItemsWithPartType, } from "@/helpers/service-package-helper"; import { nextTick } from "vue"; -import { packageNames } from "@/constants/package-names"; +import { packageNames, externalParamPackageLabels } from "@/constants/package-names"; import { navigateToHeritageFunnel } from "@/helpers/heritage-integration/navigation-helper"; import { containsRecalParts } from "@/helpers/recal-helper"; import { externalParameterStatus } from "@/constants/external-parameters"; import { saveQuote } from "@/helpers/heritage-integration/order-helper.js"; import { getBoolFromString } from "@/helpers/boolean-helper"; +import { + getSessionKeyValue, + getUserIdValue, + getDeviceIdValue, +} from "@/helpers/heritage-integration/cookie-helper"; +import { showFmgLoadingModal } from "@/helpers/loading-modal-helper"; defineRule("option-required", required(errorMessages.OPTION_REQUIRED)); @@ -189,6 +195,31 @@ export default { "quote" ); + const shouldExposeSkipQuote = store.getters.isRecalibrationOnOrder; + const skipQuoteExperiment = store.getters.applicationUser.experiments.find( + (e) => e.universeName === experimentUniverses.IGQ_SkipQuote + ); + const hasExposedSkipQuote = skipQuoteExperiment?.isExposed; + + const shouldSendExposeRequest = + shouldExposeSkipQuote && !hasExposedSkipQuote && skipQuoteExperiment; + + if (shouldSendExposeRequest) { + // Don't await -- response is not needed so can fire fully asynchronously. + baseMixin.methods.dispatchStoreActionWithLogging( + storeActions.LOG_EXPERIMENT_EXPOSURE_AND_UPDATE_STORE, + { + userId: getUserIdValue(), + deviceId: getDeviceIdValue(), + sessionKey: getSessionKeyValue(), + pageName: to.query.fmgPage, + experiment: skipQuoteExperiment, + }, + "quote", + false + ); + } + const promiseResultMap = [ { resultKey: "cmsContent", @@ -213,6 +244,12 @@ export default { const isEmailInStoreOnPageLoad = emailFromStore?.length > 0; const showSaveProgressPopup = isEmailInStoreOnPageLoad ? false : true; const showSaveProgressModal = isEmailInStoreOnPageLoad ? false : true; + const shouldSkipToInsurance = + getBoolFromString( + experimentMixin.methods.getSettingValue(experimentSettings.SKIP_TO_INSURANCE) + ) && + shouldExposeSkipQuote && + !hasExposedSkipQuote; const lineItems = deepClone(store.getters.order.lineItems); lineItems.vaps = lineItems.vaps ?? []; @@ -302,6 +339,7 @@ export default { vm.availableLineItems = pricingResults; vm.holdParentAccountNumber = holdParentAccountNumber; vm.holdBillToAccountNumber = holdBillToAccountNumber; + vm.skipToInsurance = shouldSkipToInsurance; if (revalidatePromoResponse) { const revalidateAlerts = buildToastMessagesFromRevalidateOrValidatePromoResponse( @@ -434,21 +472,16 @@ export default { } } - // did user intentionally select insurance? - vm.isInsuranceSelected = true; - vm.servicePackage = store.getters.externalParameterQuote.servicePackage; - await nextTick(); + const insuranceSelection = true; + const servicePackage = store.getters.externalParameterQuote.servicePackage; if ( - vm.servicePackage != null && + servicePackage != null && isExternalParameter === externalParameterStatus.ACTIVE ) { - const isValid = await baseMixin.methods.isFormValid(vm.$refs.theForm); - if (isValid) { - baseMixin.methods.ResetExternalParamsAndHideModal(); - vm.forwardButtonAction(); - } + await vm.skip(insuranceSelection, servicePackage); } + baseMixin.methods.ResetExternalParamsAndHideModal(); } else { if (externalThreshold) thresholdToUse = externalThreshold; @@ -467,6 +500,11 @@ export default { baseMixin.methods.ResetExternalParamsAndHideModal(); } } + + if (vm.skipToInsurance && !vm.showSaveProgressPopup) { + // skip ahead only if no email popup. + await vm.skip(true, externalParamPackageLabels.GLASS_ONLY); + } }); }, data() { @@ -482,6 +520,7 @@ export default { showSaveProgressModal: null, isSaveProgressComplete: null, packageNumber: null, + skipToInsurance: null, }; }, mounted() { @@ -584,8 +623,13 @@ export default { updateSaveProgressAsSaved() { this.showSaveProgressModal = false; }, - closeSaveProgressPopup() { + async closeSaveProgressPopup() { this.showSaveProgressPopup = false; + + if (this.skipToInsurance) { + // skip ahead now if in IGQ skip experiment + await this.skip(true, externalParamPackageLabels.GLASS_ONLY); + } }, forwardButtonAction() { this.dispatchStoreAction( @@ -729,6 +773,20 @@ export default { this.pushEventToGA("quote", this.GaActions.SERVICE_PACKAGE_PRICE, eventLabel, true); }); }, + async skip(insuranceSelection, packageSelection) { + this.isInsuranceSelected = insuranceSelection; + this.servicePackage = packageSelection; + + // Allow selections to filter through sub-logic + await nextTick(); + await nextTick(); + + const isValid = await baseMixin.methods.isFormValid(this.$refs.theForm); + if (isValid) { + showFmgLoadingModal(true); + await this.forwardButtonAction(); + } + }, }, watch: { lineItemsCloneForWatcher: { 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 ab4772107..68f031768 100644 --- a/src/layouts/quote/service-package-question/service-package-question.vue +++ b/src/layouts/quote/service-package-question/service-package-question.vue @@ -102,6 +102,11 @@ export default { this.$emit("servicePackageDiscountSelected", supportingItems); }, + servicePackage(newValue) { + if (newValue !== null) { + this.selectDefaultPackage(); + } + }, }, computed: { nullSafeAvailableLineItems() { From 8f0c5ada0433551924006466ab407ffa1f49aeab Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Mon, 31 Mar 2025 15:32:24 -0400 Subject: [PATCH 25/28] Loading modal refactor --- src/mixins/base-mixin.js | 6 ++++++ src/router/index.js | 3 --- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/mixins/base-mixin.js b/src/mixins/base-mixin.js index 6fd6075ab..151d17dd9 100644 --- a/src/mixins/base-mixin.js +++ b/src/mixins/base-mixin.js @@ -230,6 +230,12 @@ export default { return "widget-name-" + this.cmsWidgetName; }, }, + + mounted() { + if (!store.getters.externalParameterState?.isExternalParameter) { + showFmgLoadingModal(false); + } + }, }; function encodeUriData(payload) { diff --git a/src/router/index.js b/src/router/index.js index 2230a652d..345790734 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -433,9 +433,6 @@ router.afterEach(async (to, from) => { await saveSession({ pageNameToLog: to.query.fmgPage }); } } - if (!store.getters.externalParameterState?.isExternalParameter) { - showFmgLoadingModal(false); - } // Push page view to GA analyticsMixin.methods.pushPageViewToGA(); From 6e0f9d8a20b986a94f4d84b9799dc53ea83b0615 Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Mon, 31 Mar 2025 15:38:03 -0400 Subject: [PATCH 26/28] Unit test quirk --- src/layouts/quote/quote.spec.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/layouts/quote/quote.spec.js b/src/layouts/quote/quote.spec.js index a87d6b0a6..49b90cfb3 100644 --- a/src/layouts/quote/quote.spec.js +++ b/src/layouts/quote/quote.spec.js @@ -836,6 +836,7 @@ describe("quote.vue", () => { nextFunction ); await nextTick(); + await nextTick(); expect(nextFunction).toHaveBeenCalled(); expect(baseMixin.methods.isFormValid).toHaveBeenCalled(); expect(baseMixin.methods.isFormValid()).toBe(true); From 383eb001df9dc30bdf8de9f365b2e2ea6795c7c0 Mon Sep 17 00:00:00 2001 From: Johnny shultz Date: Tue, 1 Apr 2025 10:21:21 -0400 Subject: [PATCH 27/28] CASH-133 CASH-133 successfully added a donation to cart on confirmation using mock api call --- src/constants/cart-item-types.js | 1 + src/constants/part-type-strings.js | 1 + src/fmg-components/cart/cart.vue | 46 ++++++++++++++++++++++- src/layouts/confirmation/confirmation.vue | 7 +++- src/store/index.js | 10 ++--- 5 files changed, 57 insertions(+), 8 deletions(-) diff --git a/src/constants/cart-item-types.js b/src/constants/cart-item-types.js index d8ab9f66f..2f84d22c2 100644 --- a/src/constants/cart-item-types.js +++ b/src/constants/cart-item-types.js @@ -11,6 +11,7 @@ const cartItemTypes = { EARLY_BIRD: "EARLY BIRD", SUPPLIES_REPAIR: "SUPPLIES-REPAIR", SERVICE_PACKAGE_DISCOUNT: "SERVICE PACKAGE DISCOUNT", + DONATION: "DONATION", }; export { cartItemTypes }; diff --git a/src/constants/part-type-strings.js b/src/constants/part-type-strings.js index 4681e2776..94e8598bd 100644 --- a/src/constants/part-type-strings.js +++ b/src/constants/part-type-strings.js @@ -10,6 +10,7 @@ const partTypeStrings = { REPAIR_FEE: "REPAIR FEE", EARLY_BIRD: "EARLY BIRD", SERVICE_PACKAGE_DISCOUNT: "SERVICE PACKAGE DISCOUNT", + DONATION: "DONATION", }; export { partTypeStrings }; diff --git a/src/fmg-components/cart/cart.vue b/src/fmg-components/cart/cart.vue index f569c11d4..e5d0a8645 100644 --- a/src/fmg-components/cart/cart.vue +++ b/src/fmg-components/cart/cart.vue @@ -207,6 +207,7 @@ export default { isNoComp: Boolean, isExpandedOnLoad: Boolean, isMSRFeeApplicable: Boolean, + donationAmount: Number, }, data() { return { @@ -403,7 +404,9 @@ export default { } return [ ...(this.lineItems.glassParts ?? []), - ...(this.lineItems.supportingItems ?? []), + ...(this.lineItems.supportingItems.filter( + (item) => item.partType !== partTypeStrings.DONATION + ) ?? []), ...(this.availableVaps ?? []), ]; }, @@ -466,6 +469,10 @@ export default { }); } + if (this.donationCartItem) { + cartItems.push(this.donationCartItem); + } + return cartItems; }, }, @@ -1064,6 +1071,43 @@ export default { return promoCartItems; }, + showDonationCartItem() { + if (this.donationAmount !== 0) { + return true; + } else { + return false; + } + }, + donationCartItemName() { + return this.getCmsContent("DonationCartTextWidget", "Text"); + }, + donationCartItem() { + if (!this.lineItems || !this.lineItems.supportingItems) { + return null; + } + + const donationLineItem = this.lineItems.supportingItems.find( + (item) => item.partType === partTypeStrings.DONATION + ); + + if (donationLineItem && donationLineItem.sellingPrice > 0) { + return { + name: this.donationCartItemName, + category: cartItemCategories.SUPPORTING_ITEMS, + cartItemType: cartItemTypes.DONATION, + isDisplayed: true, + isRemovable: false, + subTotal: donationLineItem.sellingPrice, + salesTax: 0, + lineItems: [], + isCoveredByInsurance: cartItemTypesCoveredByInsurance.includes( + cartItemTypes.DONATION + ), + }; + } + + return null; + }, removeLinkText() { return this.getCmsContent("RemoveCartItemTextWidget", "Text"); }, diff --git a/src/layouts/confirmation/confirmation.vue b/src/layouts/confirmation/confirmation.vue index f6810f726..12415226b 100644 --- a/src/layouts/confirmation/confirmation.vue +++ b/src/layouts/confirmation/confirmation.vue @@ -63,7 +63,9 @@ :isExpandedOnLoad="false" :isItac="isItac" :isNoComp="isNoComp" - :isMSRFeeApplicable="isMSRFeeApplicable" /> + :isMSRFeeApplicable="isMSRFeeApplicable" + :donationAmount="donationAmount" + @update-donation-amount="updateDonationAmount" />
Date: Tue, 1 Apr 2025 11:39:18 -0400 Subject: [PATCH 28/28] CASH-133 CASH-133 cart cleanup --- src/fmg-components/cart/cart.vue | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/fmg-components/cart/cart.vue b/src/fmg-components/cart/cart.vue index e5d0a8645..1cc1bb484 100644 --- a/src/fmg-components/cart/cart.vue +++ b/src/fmg-components/cart/cart.vue @@ -207,7 +207,6 @@ export default { isNoComp: Boolean, isExpandedOnLoad: Boolean, isMSRFeeApplicable: Boolean, - donationAmount: Number, }, data() { return { @@ -1072,7 +1071,10 @@ export default { return promoCartItems; }, showDonationCartItem() { - if (this.donationAmount !== 0) { + const donationLineItem = this.lineItems.supportingItems.find( + (item) => item.partType === partTypeStrings.DONATION + ); + if (donationLineItem?.sellingPrice !== 0) { return true; } else { return false; @@ -1090,7 +1092,7 @@ export default { (item) => item.partType === partTypeStrings.DONATION ); - if (donationLineItem && donationLineItem.sellingPrice > 0) { + if (donationLineItem?.sellingPrice > 0) { return { name: this.donationCartItemName, category: cartItemCategories.SUPPORTING_ITEMS,