mirror of
https://github.com/vercel/commerce.git
synced 2025-06-20 06:01:21 +00:00
fix/saleor: handle non-existing checkout
This commit is contained in:
parent
62f5dead0d
commit
4492f3051c
@ -6,7 +6,7 @@ import useCart from './use-cart'
|
|||||||
|
|
||||||
import * as mutation from '../utils/mutations'
|
import * as mutation from '../utils/mutations'
|
||||||
|
|
||||||
import { getCheckoutId, checkoutToCart } from '../utils'
|
import { getCheckoutId, checkoutToCart, checkoutCreate } from '../utils'
|
||||||
|
|
||||||
import { Mutation, MutationCheckoutLinesAddArgs } from '../schema'
|
import { Mutation, MutationCheckoutLinesAddArgs } from '../schema'
|
||||||
import { AddItemHook } from '@commerce/types/cart'
|
import { AddItemHook } from '@commerce/types/cart'
|
||||||
@ -35,6 +35,25 @@ export const handler: MutationHook<AddItemHook> = {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if (checkoutLinesAdd?.errors) {
|
||||||
|
await checkoutCreate(fetch)
|
||||||
|
|
||||||
|
const { checkoutLinesAdd } = await fetch<Mutation, MutationCheckoutLinesAddArgs>({
|
||||||
|
...options,
|
||||||
|
variables: {
|
||||||
|
checkoutId: getCheckoutId().checkoutId,
|
||||||
|
lineItems: [
|
||||||
|
{
|
||||||
|
variantId: item.variantId,
|
||||||
|
quantity: item.quantity ?? 1,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
return checkoutToCart(checkoutLinesAdd)
|
||||||
|
}
|
||||||
|
|
||||||
return checkoutToCart(checkoutLinesAdd)
|
return checkoutToCart(checkoutLinesAdd)
|
||||||
},
|
},
|
||||||
useHook:
|
useHook:
|
||||||
|
@ -16,12 +16,18 @@ export const handler: SWRHook<GetCartHook> = {
|
|||||||
let checkout
|
let checkout
|
||||||
|
|
||||||
if (checkoutId) {
|
if (checkoutId) {
|
||||||
const checkoutId = getCheckoutId().checkoutToken
|
const r = getCheckoutId()
|
||||||
|
const checkoutToken = r.checkoutToken
|
||||||
|
|
||||||
const data = await fetch({
|
const data = await fetch({
|
||||||
...options,
|
...options,
|
||||||
variables: { checkoutId },
|
variables: { checkoutId: checkoutToken },
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if (!data.checkout) {
|
||||||
|
checkout = await checkoutCreate(fetch)
|
||||||
|
}
|
||||||
|
|
||||||
checkout = data
|
checkout = data
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user