Merge pull request #1577 from Safelite/feature/skiener/CSR-1841
CSR-1841 | Change query string promo logic for save quote email purposes
This commit is contained in:
commit
5b245b94c4
3 changed files with 16 additions and 17 deletions
|
|
@ -132,8 +132,19 @@ export async function revalidatePromosAndValidateQueryStringPromo(
|
||||||
pageNameToLog,
|
pageNameToLog,
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
if (!excludeFromInactivePromoErrorCodes.includes(validatePromoResponse.errorCode)) {
|
if (validatePromoResponse.errorCode == null) {
|
||||||
// Save any valid (applied or not) query string promoCode to inactivePromos
|
// Save promo to store
|
||||||
|
const activePromos = store.getters.order.lineItems.promos ?? [];
|
||||||
|
activePromos.push(...validatePromoResponse.orderPromos);
|
||||||
|
baseMixin.methods.dispatchStoreAction(
|
||||||
|
storeActions.SAVE_ACTIVE_AND_OR_INACTIVE_PROMOS,
|
||||||
|
{
|
||||||
|
activePromos: activePromos,
|
||||||
|
},
|
||||||
|
false
|
||||||
|
);
|
||||||
|
} else if (!excludeFromInactivePromoErrorCodes.includes(validatePromoResponse.errorCode)) {
|
||||||
|
// Save any valid query string promoCode (not applied) to inactivePromos
|
||||||
// in order to not lose the query string promoCode if back button is pressed
|
// in order to not lose the query string promoCode if back button is pressed
|
||||||
const inactivePromoCodes = store.getters.payment.inactivePromos ?? [];
|
const inactivePromoCodes = store.getters.payment.inactivePromos ?? [];
|
||||||
if (!inactivePromoCodes.includes(newPromo)) {
|
if (!inactivePromoCodes.includes(newPromo)) {
|
||||||
|
|
|
||||||
|
|
@ -178,7 +178,6 @@ export default {
|
||||||
vm.supportingItems = resultMap.supportingItems;
|
vm.supportingItems = resultMap.supportingItems;
|
||||||
vm.availableLineItems = pricingResults;
|
vm.availableLineItems = pricingResults;
|
||||||
vm.isInsuranceSelected = vm.getDefaultIsInsuranceSelectedValue(vm.availableLineItems);
|
vm.isInsuranceSelected = vm.getDefaultIsInsuranceSelectedValue(vm.availableLineItems);
|
||||||
vm.newValidatedPromos = validatePromoResponse?.orderPromos;
|
|
||||||
|
|
||||||
if (revalidatePromoResponse) {
|
if (revalidatePromoResponse) {
|
||||||
const revalidateAlerts = buildToastMessagesFromRevalidateOrValidatePromoResponse(
|
const revalidateAlerts = buildToastMessagesFromRevalidateOrValidatePromoResponse(
|
||||||
|
|
@ -207,16 +206,11 @@ export default {
|
||||||
availableLineItems: null,
|
availableLineItems: null,
|
||||||
supportingItems: null,
|
supportingItems: null,
|
||||||
pricedGlassParts: null,
|
pricedGlassParts: null,
|
||||||
newValidatedPromos: null,
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
allActivePromos() {
|
allActivePromos() {
|
||||||
const allActivePromos = [];
|
return this.$store.getters.order.lineItems.promos ?? [];
|
||||||
if (this.newValidatedPromos) allActivePromos.push(...this.newValidatedPromos);
|
|
||||||
if (this.$store.getters.order.lineItems.promos)
|
|
||||||
allActivePromos.push(...this.$store.getters.order.lineItems.promos);
|
|
||||||
return allActivePromos;
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
@ -294,14 +288,6 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
this.dispatchStoreAction(this.storeActions.SAVE_VAPS, this.selectedVaps, false);
|
this.dispatchStoreAction(this.storeActions.SAVE_VAPS, this.selectedVaps, false);
|
||||||
this.dispatchStoreAction(
|
|
||||||
this.storeActions.SAVE_ACTIVE_AND_OR_INACTIVE_PROMOS,
|
|
||||||
{ activePromos: this.allActivePromos },
|
|
||||||
false
|
|
||||||
);
|
|
||||||
// Clear out local promos to avoid duplicates in `allActivePromos` computed
|
|
||||||
// otherwise package price changes while next page is loading
|
|
||||||
this.newValidatedPromos = [];
|
|
||||||
|
|
||||||
const payment = this.$store.getters.payment;
|
const payment = this.$store.getters.payment;
|
||||||
if (payment.isInsurance) {
|
if (payment.isInsurance) {
|
||||||
|
|
|
||||||
|
|
@ -2130,6 +2130,8 @@ export const actions = {
|
||||||
},
|
},
|
||||||
// Manage promo saving to ensure a promoCode never ends up in both active and inactive
|
// Manage promo saving to ensure a promoCode never ends up in both active and inactive
|
||||||
saveActiveAndOrInactivePromos(context, { activePromos = null, inactivePromos = null }) {
|
saveActiveAndOrInactivePromos(context, { activePromos = null, inactivePromos = null }) {
|
||||||
|
activePromos = activePromos?.slice(0);
|
||||||
|
inactivePromos = inactivePromos?.slice(0);
|
||||||
let activePromosToSave;
|
let activePromosToSave;
|
||||||
let inactivePromosToSave;
|
let inactivePromosToSave;
|
||||||
if (!activePromos && !inactivePromos) {
|
if (!activePromos && !inactivePromos) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue