From eac95484cf339079e04e2e3e9a43e19329abd179 Mon Sep 17 00:00:00 2001 From: Marco Montalbano Date: Tue, 27 May 2025 10:20:19 +0200 Subject: [PATCH] feat: update order language when it is different from the drop-in language configuration --- .../drop-in/src/apis/commercelayer/cart.ts | 33 +++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/packages/drop-in/src/apis/commercelayer/cart.ts b/packages/drop-in/src/apis/commercelayer/cart.ts index f8fc115..85f9faf 100644 --- a/packages/drop-in/src/apis/commercelayer/cart.ts +++ b/packages/drop-in/src/apis/commercelayer/cart.ts @@ -104,6 +104,35 @@ export async function getCheckoutUrl(): Promise { return organizationConfig.links.checkout } +/** + * Update the language code of the order when it is different from the drop-in language code configuration. + */ +async function updateOrderLanguage( + order: Order | null, + orderParams: QueryParamsRetrieve, +): Promise { + const config = getConfig() + const client = await createClient(config) + + if (order === null) { + return null + } + + if (order.language_code === config.defaultAttributes?.orders?.language_code) { + return order + } + + const updatedOrder = await client.orders.update( + { + id: order.id, + language_code: config.defaultAttributes?.orders?.language_code, + }, + orderParams, + ) + + return updatedOrder +} + export async function _getCart(): Promise { const config = getConfig() const client = await createClient(config) @@ -129,7 +158,7 @@ export async function _getCart(): Promise { return null } - return order + return await updateOrderLanguage(order, orderParams) } const jwt = jwtDecode(token.accessToken) @@ -152,7 +181,7 @@ export async function _getCart(): Promise { pageSize: 1, }) - return order + return await updateOrderLanguage(order, orderParams) } export const getCart = memoize(pDebounce(_getCart, { wait: 10, maxWait: 50 }))