From 322c4c805ba179bda3baacdcd865aa299cf199bf Mon Sep 17 00:00:00 2001 From: Unchained Date: Sat, 28 Mar 2026 18:09:57 +0200 Subject: [PATCH] fix: add back email update step in checkout --- src/app/[locale]/checkout/page.tsx | 36 ++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/src/app/[locale]/checkout/page.tsx b/src/app/[locale]/checkout/page.tsx index dbb1c8d..efce7f9 100644 --- a/src/app/[locale]/checkout/page.tsx +++ b/src/app/[locale]/checkout/page.tsx @@ -283,7 +283,29 @@ export default function CheckoutPage() { try { console.log("Completing order..."); - console.log("Step 1: Updating billing address..."); + console.log("Step 1: Updating email..."); + const emailResult = await saleorClient.mutate({ + mutation: CHECKOUT_EMAIL_UPDATE, + variables: { + checkoutId: checkout.id, + email: shippingAddress.email, + }, + }); + + if (emailResult.data?.checkoutEmailUpdate?.errors && emailResult.data.checkoutEmailUpdate.errors.length > 0) { + const errorMessage = emailResult.data.checkoutEmailUpdate.errors[0].message; + if (errorMessage.includes("Couldn't resolve to a node")) { + console.error("Checkout not found, clearing cart..."); + localStorage.removeItem('cart'); + localStorage.removeItem('checkoutId'); + window.location.href = `/${locale}/products`; + return; + } + throw new Error(`Email update failed: ${errorMessage}`); + } + console.log("Step 1: Email updated successfully"); + + console.log("Step 2: Updating billing address..."); const billingResult = await saleorClient.mutate({ mutation: CHECKOUT_BILLING_ADDRESS_UPDATE, variables: { @@ -304,9 +326,9 @@ export default function CheckoutPage() { if (billingResult.data?.checkoutBillingAddressUpdate?.errors && billingResult.data.checkoutBillingAddressUpdate.errors.length > 0) { throw new Error(`Billing address update failed: ${billingResult.data.checkoutBillingAddressUpdate.errors[0].message}`); } - console.log("Step 1: Billing address updated successfully"); + console.log("Step 2: Billing address updated successfully"); - console.log("Step 2: Setting shipping method..."); + console.log("Step 3: Setting shipping method..."); const shippingMethodResult = await saleorClient.mutate({ mutation: CHECKOUT_SHIPPING_METHOD_UPDATE, variables: { @@ -318,9 +340,9 @@ export default function CheckoutPage() { if (shippingMethodResult.data?.checkoutShippingMethodUpdate?.errors && shippingMethodResult.data.checkoutShippingMethodUpdate.errors.length > 0) { throw new Error(`Shipping method update failed: ${shippingMethodResult.data.checkoutShippingMethodUpdate.errors[0].message}`); } - console.log("Step 2: Shipping method set successfully"); + console.log("Step 3: Shipping method set successfully"); - console.log("Step 3: Saving metadata..."); + console.log("Step 4: Saving metadata..."); const metadataResult = await saleorClient.mutate({ mutation: CHECKOUT_METADATA_UPDATE, variables: { @@ -337,10 +359,10 @@ export default function CheckoutPage() { if (metadataResult.data?.updateMetadata?.errors && metadataResult.data.updateMetadata.errors.length > 0) { console.warn("Failed to save phone metadata:", metadataResult.data.updateMetadata.errors); } else { - console.log("Step 3: Phone number saved successfully"); + console.log("Step 4: Phone number saved successfully"); } - console.log("Step 4: Completing checkout..."); + console.log("Step 5: Completing checkout..."); const completeResult = await saleorClient.mutate({ mutation: CHECKOUT_COMPLETE, variables: {