diff --git a/src/constants/endpoints.js b/src/constants/endpoints.js
index 16e0803e6..c972d8118 100644
--- a/src/constants/endpoints.js
+++ b/src/constants/endpoints.js
@@ -124,6 +124,10 @@ const endpoints = {
url: "/order/api/v1/order/load-session",
method: "POST",
},
+ SaveQuote: {
+ url: "/order/api/v1/order/initiate-saved-progress-email",
+ method: "POST",
+ },
GetSignature: {
url: "/order/api/v1/order/sign",
method: "POST",
diff --git a/src/constants/store-actions.js b/src/constants/store-actions.js
index 41e5896bd..45a18bace 100644
--- a/src/constants/store-actions.js
+++ b/src/constants/store-actions.js
@@ -37,6 +37,7 @@ const storeActions = {
GET_MOBILE_PREMIUM_FEE: "getMobilePremiumFee",
SAVE_SESSION: "saveSession",
LOAD_SESSION: "loadSession",
+ SAVE_QUOTE: "saveQuote",
UPDATE_STORE_WITH_SAVE_SESSION_RESPONSE: "updateStoreWithSaveSessionResponse",
VALIDATE_ZIP: "validateZip",
PRICE_ORDER_ITEMS_AND_SAVE_SERVER_DATA: "priceOrderItemsAndSaveServerData",
diff --git a/src/helpers/heritage-integration/order-helper.js b/src/helpers/heritage-integration/order-helper.js
index 555c41325..bc6b70730 100644
--- a/src/helpers/heritage-integration/order-helper.js
+++ b/src/helpers/heritage-integration/order-helper.js
@@ -98,6 +98,15 @@ export async function submitWorkOrder({
});
}
+export async function saveQuote({ pageNameToLog }) {
+ return await baseMixin.methods.dispatchStoreActionWithLogging(
+ storeActions.SAVE_QUOTE,
+ {},
+ pageNameToLog,
+ false
+ );
+}
+
// PRIVATE FUNCTIONS //
/*
diff --git a/src/layouts/quote/quote.vue b/src/layouts/quote/quote.vue
index 6f3809304..c83e61b23 100644
--- a/src/layouts/quote/quote.vue
+++ b/src/layouts/quote/quote.vue
@@ -84,6 +84,11 @@
class="mb-5 quote-disclaimer" />
+
@@ -134,6 +139,7 @@ import { packageNames } 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";
defineRule("option-required", required(errorMessages.OPTION_REQUIRED));
@@ -455,6 +461,9 @@ export default {
},
},
methods: {
+ async handleClick() {
+ await saveQuote({ pageNameToLog: "quote" });
+ },
openModalAction(modalName) {
this.$refs[modalName].openModal();
},
diff --git a/src/store/index.js b/src/store/index.js
index 7840fbafb..d964a48d5 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -1931,6 +1931,49 @@ export const actions = {
},
// Session API Actions
+ saveQuote(context, { pageNameToLog, payload }) {
+ const vehicle = context.getters.vehicle;
+ const damage = context.getters.damage;
+ const order = context.state.order;
+ const applicationUser = context.getters.applicationUser;
+ const lineItems = context.state.order.lineItems;
+ const excludeRecalInquote = context.getters.shouldHideRecalibration;
+
+ return globalMethods.callHttpClient({
+ method: endpoints.SaveQuote.method,
+ endpoint: endpoints.SaveQuote.url,
+ payload: {
+ referralCorrelationId: order.referralCorrelationId,
+ referralNumber: order.referralNumber?.toString(),
+ referralSequenceNumber: order.referralSequenceNumber,
+ emailAddress: "cn@gm.com", //order.customer.emailAddress,
+ lastPage: pageNameToLog,
+ isRepair: damage.isRepair,
+ firstName: order.customer.firstName,
+ lastName: order.customer.lastName,
+ savedSessionId: applicationUser.savedSessionId,
+ serviceState: order.serviceLocation.state,
+ serviceZipCode: order.serviceLocation.zipCode,
+ parentAccountNumber: order.payment.parentAccountNumber,
+ excludeRecalInquote: excludeRecalInquote,
+ year: vehicle.year,
+ make: vehicle.make,
+ model: vehicle.model,
+ isInsurance: order.payment.isInsurance ?? false,
+ isVerified: order.payment.insuranceCoverage.isVerified ?? false,
+ lineItems: {
+ glassParts: lineItems.glassParts,
+ supportingItems: lineItems.supportingItems,
+ vaps: lineItems.vaps,
+ serverData: lineItems.serverData,
+ promos: lineItems.promos,
+ },
+ },
+ logApiCall: true,
+ pageNameToLog: pageNameToLog,
+ });
+ },
+
saveSession(context, { pageNameToLog, payload }) {
const vehicle = context.getters.vehicle;
const damage = context.getters.damage;
@@ -2008,8 +2051,7 @@ export const actions = {
order.payment.insuranceCoverage.coverageStatus?.toString(),
coverageVerificationType:
order.payment.insuranceCoverage.coverageVerificationType,
- coverageSubStatus:
- order.payment.insuranceCoverage.coverageSubStatus,
+ coverageSubStatus: order.payment.insuranceCoverage.coverageSubStatus,
},
isInsurance: order.payment.isInsurance,
parentAccountNumber: order.payment.parentAccountNumber,