diff --git a/src/layouts/quote/quote.vue b/src/layouts/quote/quote.vue
index 6a0a5de24..7722e2c09 100644
--- a/src/layouts/quote/quote.vue
+++ b/src/layouts/quote/quote.vue
@@ -71,7 +71,7 @@
cmsWidgetName="quoteDisclaimer"
justifyText="left"
typeStyle="caption"
- class="mt-6" />
+ class="mt-6 quote-disclaimer" />
@@ -393,7 +393,7 @@ export default {
return Object.assign({}, this.lineItems);
},
isRecalibrationOnOrder() {
- return containsRecalParts(this.lineItems);
+ return store.getters.isRecalibrationOnOrder;
},
isServicePackageDiscountOnOrder() {
return containsLineItemWithPartType(
@@ -408,10 +408,7 @@ export default {
);
},
shouldHideRecalibration() {
- return (
- this.getSettingValue(experimentSettings.RECAL_PRICE_REMOVE)?.toLowerCase() ===
- "true" && this.isRecalibrationOnOrder
- );
+ return store.getters.shouldHideRecalibration;
},
showAfterpayBanner() {
return (
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 afd592e72..2a544e8ce 100644
--- a/src/layouts/quote/service-package-question/service-package-question.vue
+++ b/src/layouts/quote/service-package-question/service-package-question.vue
@@ -201,6 +201,9 @@ export default {
this.nullSafeAvailableLineItems
);
},
+ showRecalInServicePackages() {
+ return this.isRecalibrationOnOrder && !this.shouldHideRecalibration;
+ },
},
methods: {
processIfStatements,
@@ -357,8 +360,8 @@ export default {
},
getCustomValueFromString(str) {
switch (str) {
- case "isRecalibrationOnOrder":
- return this.isRecalibrationOnOrder;
+ case "showRecalInServicePackages":
+ return this.showRecalInServicePackages;
case "frontWipersApplicableForTierTwo":
return this.frontWipersApplicableForTierTwo;
case "rearWiperApplicableForTierTwo":
diff --git a/src/mixins/base-mixin.js b/src/mixins/base-mixin.js
index 12b9a99a2..b6d3e0074 100644
--- a/src/mixins/base-mixin.js
+++ b/src/mixins/base-mixin.js
@@ -97,8 +97,8 @@ export default {
filterOutFees(lineItems) {
const filteredLineItems = lineItems?.filter((item) => {
return (
- (!item.partType.includes("FEE") && !item.partType.includes("EARLY BIRD")) ||
- (item.partType === "REPAIR FEE" && item.partNumber != "SUPPLIES-REPAIR")
+ (!item?.partType?.includes("FEE") && !item?.partType?.includes("EARLY BIRD")) ||
+ (item?.partType === "REPAIR FEE" && item?.partNumber != "SUPPLIES-REPAIR")
);
});
return filteredLineItems;
diff --git a/src/store/index.js b/src/store/index.js
index f100a09eb..65c1d64d4 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -43,6 +43,8 @@ import {
} from "@/constants/insurance";
import { containsRecalParts } from "@/helpers/recal-helper";
import { externalParameterStatus } from "@/constants/external-parameters";
+import { experimentSettings } from "@/constants/experiments";
+import experimentMixin from "@/mixins/experiment-mixin.js";
// Export State
const getDefaultState = () => {
@@ -807,6 +809,10 @@ export const getters = {
return false;
},
+ shouldHideRecalibration: (state) => {
+ return (experimentMixin.methods.getSettingValue(experimentSettings.RECAL_PRICE_REMOVE)
+ ?.toLowerCase() === "true" && getters.isRecalibrationOnOrder);
+ },
areRearWipersOnOrder: (state) => {
return !!state.order.lineItems.vaps?.some(
(vap) => vap.partType.toUpperCase() === partTypeStrings.REAR_WIPER.toUpperCase()
@@ -908,6 +914,7 @@ export const getters = {
.filter((x) => !!x.isActive)
.map((x) => x.settings)
.reduce((r, c) => Object.assign(r, c), {}) ?? {},
+
isVerifiedAndDeductibleZeroConfirmed: (state) => {
// used as a CMS variable on /payment-method, needed for FunnelSubHeaderWidget on cart pages
if (
@@ -917,7 +924,6 @@ export const getters = {
) {
return true;
}
-
return false;
},
requiresVerifiedRedirecting: (state) => {