diff --git a/packages/plugin-ecommerce/src/endpoints/confirmOrder.ts b/packages/plugin-ecommerce/src/endpoints/confirmOrder.ts index 99bafd80c56..3b9e184a27b 100644 --- a/packages/plugin-ecommerce/src/endpoints/confirmOrder.ts +++ b/packages/plugin-ecommerce/src/endpoints/confirmOrder.ts @@ -58,7 +58,7 @@ export const confirmOrderHandler: ConfirmOrderHandler = const data = req.data const payload = req.payload - const user = req.user + const user = req.user?.collection === customersSlug ? req.user : undefined let currency: string = currenciesConfig.defaultCurrency let cartID: DefaultDocumentIDType = data?.cartID diff --git a/packages/plugin-ecommerce/src/endpoints/initiatePayment.ts b/packages/plugin-ecommerce/src/endpoints/initiatePayment.ts index 5811909c939..3eeb9d0685c 100644 --- a/packages/plugin-ecommerce/src/endpoints/initiatePayment.ts +++ b/packages/plugin-ecommerce/src/endpoints/initiatePayment.ts @@ -64,7 +64,7 @@ export const initiatePaymentHandler: InitiatePayment = await addDataAndFileToRequest(req) const data = req.data const payload = req.payload - const user = req.user + const user = req.user?.collection === customersSlug ? req.user : undefined let currency: string = currenciesConfig.defaultCurrency let cartID: DefaultDocumentIDType = data?.cartID diff --git a/packages/plugin-ecommerce/src/index.ts b/packages/plugin-ecommerce/src/index.ts index 1a5059719c6..67d36693b53 100644 --- a/packages/plugin-ecommerce/src/index.ts +++ b/packages/plugin-ecommerce/src/index.ts @@ -232,7 +232,9 @@ export const ecommercePlugin = const initiatePayment: Endpoint = { handler: initiatePaymentHandler({ + cartsSlug: collectionSlugMap.carts, currenciesConfig, + customersSlug: collectionSlugMap.customers, inventory: sanitizedPluginConfig.inventory, paymentMethod, productsSlug: collectionSlugMap.products, diff --git a/packages/plugin-ecommerce/src/payments/adapters/stripe/confirmOrder.ts b/packages/plugin-ecommerce/src/payments/adapters/stripe/confirmOrder.ts index 983b093712a..b519fb1330c 100644 --- a/packages/plugin-ecommerce/src/payments/adapters/stripe/confirmOrder.ts +++ b/packages/plugin-ecommerce/src/payments/adapters/stripe/confirmOrder.ts @@ -13,6 +13,7 @@ export const confirmOrder: (props: Props) => NonNullable['confir (props) => async ({ cartsSlug = 'carts', + customersSlug = 'users', data, ordersSlug = 'orders', req, @@ -102,7 +103,9 @@ export const confirmOrder: (props: Props) => NonNullable['confir data: { amount: paymentIntent.amount, currency: paymentIntent.currency.toUpperCase(), - ...(req.user ? { customer: req.user.id } : { customerEmail }), + ...(req.user?.collection === customersSlug + ? { customer: req.user.id } + : { customerEmail }), items: cartItemsSnapshot, shippingAddress, status: 'processing', diff --git a/packages/plugin-ecommerce/src/payments/adapters/stripe/initiatePayment.ts b/packages/plugin-ecommerce/src/payments/adapters/stripe/initiatePayment.ts index ef111c7f679..e1fb1ba8b10 100644 --- a/packages/plugin-ecommerce/src/payments/adapters/stripe/initiatePayment.ts +++ b/packages/plugin-ecommerce/src/payments/adapters/stripe/initiatePayment.ts @@ -11,7 +11,7 @@ type Props = { export const initiatePayment: (props: Props) => NonNullable['initiatePayment'] = (props) => - async ({ data, req, transactionsSlug }) => { + async ({ customersSlug = 'users', data, req, transactionsSlug }) => { const payload = req.payload const { apiVersion, appInfo, secretKey } = props || {} @@ -106,7 +106,9 @@ export const initiatePayment: (props: Props) => NonNullable['ini const transaction = await payload.create({ collection: transactionsSlug, data: { - ...(req.user ? { customer: req.user.id } : { customerEmail }), + ...(req.user?.collection === customersSlug + ? { customer: req.user.id } + : { customerEmail }), amount: paymentIntent.amount, billingAddress: billingAddressFromData, cart: cart.id,