feat: store userLanguage in checkout metadata for multi-language emails
Adds userLanguage and userLocale to checkout metadata during order completion. This allows N8N workflows to detect the customer's selected language and send order confirmation emails in the correct language (sr, en, de, fr).
This commit is contained in:
@@ -244,7 +244,7 @@ export default function CheckoutPage() {
|
|||||||
}
|
}
|
||||||
console.log("Step 2: Shipping method set successfully");
|
console.log("Step 2: Shipping method set successfully");
|
||||||
|
|
||||||
console.log("Step 3: Saving phone number...");
|
console.log("Step 3: Saving metadata...");
|
||||||
const metadataResult = await saleorClient.mutate<MetadataUpdateResponse>({
|
const metadataResult = await saleorClient.mutate<MetadataUpdateResponse>({
|
||||||
mutation: CHECKOUT_METADATA_UPDATE,
|
mutation: CHECKOUT_METADATA_UPDATE,
|
||||||
variables: {
|
variables: {
|
||||||
@@ -252,6 +252,8 @@ export default function CheckoutPage() {
|
|||||||
metadata: [
|
metadata: [
|
||||||
{ key: "phone", value: shippingAddress.phone },
|
{ key: "phone", value: shippingAddress.phone },
|
||||||
{ key: "shippingPhone", value: shippingAddress.phone },
|
{ key: "shippingPhone", value: shippingAddress.phone },
|
||||||
|
{ key: "userLanguage", value: locale },
|
||||||
|
{ key: "userLocale", value: locale },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -316,7 +318,16 @@ export default function CheckoutPage() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (emailResult.data?.checkoutEmailUpdate?.errors && emailResult.data.checkoutEmailUpdate.errors.length > 0) {
|
if (emailResult.data?.checkoutEmailUpdate?.errors && emailResult.data.checkoutEmailUpdate.errors.length > 0) {
|
||||||
throw new Error(`Email update failed: ${emailResult.data.checkoutEmailUpdate.errors[0].message}`);
|
const errorMessage = emailResult.data.checkoutEmailUpdate.errors[0].message;
|
||||||
|
// Check if checkout no longer exists
|
||||||
|
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 1: Email updated successfully");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user