forked from crowetic/commerce
Added update cart item to api
This commit is contained in:
parent
55ac91fcee
commit
3d2739e526
@ -61,14 +61,14 @@ const cartApi: BigcommerceApiHandler<Cart> = async (req, res, config) => {
|
|||||||
return res.status(200).json({ data: result.data ?? null })
|
return res.status(200).json({ data: result.data ?? null })
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create or add a product to the cart
|
// Create or add an item to the cart
|
||||||
if (req.method === 'POST') {
|
if (req.method === 'POST') {
|
||||||
const item: Item | undefined = req.body?.item
|
const item: Item | undefined = req.body?.item
|
||||||
|
|
||||||
if (!item) {
|
if (!item) {
|
||||||
return res.status(400).json({
|
return res.status(400).json({
|
||||||
data: null,
|
data: null,
|
||||||
errors: [{ message: 'Missing product' }],
|
errors: [{ message: 'Missing item' }],
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -82,8 +82,6 @@ const cartApi: BigcommerceApiHandler<Cart> = async (req, res, config) => {
|
|||||||
? await config.storeApiFetch(`/v3/carts/${cartId}/items`, options)
|
? await config.storeApiFetch(`/v3/carts/${cartId}/items`, options)
|
||||||
: await config.storeApiFetch('/v3/carts', options)
|
: await config.storeApiFetch('/v3/carts', options)
|
||||||
|
|
||||||
console.log('API DATA', data)
|
|
||||||
|
|
||||||
// Create or update the cart cookie
|
// Create or update the cart cookie
|
||||||
res.setHeader(
|
res.setHeader(
|
||||||
'Set-Cookie',
|
'Set-Cookie',
|
||||||
@ -92,6 +90,39 @@ const cartApi: BigcommerceApiHandler<Cart> = async (req, res, config) => {
|
|||||||
|
|
||||||
return res.status(200).json({ data })
|
return res.status(200).json({ data })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Update item in cart
|
||||||
|
if (req.method === 'PUT') {
|
||||||
|
const { itemId, item } = (req.body ?? {}) as {
|
||||||
|
itemId?: string
|
||||||
|
item?: Item
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!cartId || !itemId || !item) {
|
||||||
|
return res.status(400).json({
|
||||||
|
data: null,
|
||||||
|
errors: [{ message: 'Invalid request' }],
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const { data } = await config.storeApiFetch(
|
||||||
|
`/v3/carts/${cartId}/items/${itemId}`,
|
||||||
|
{
|
||||||
|
method: 'PUT',
|
||||||
|
body: JSON.stringify({
|
||||||
|
line_items: [parseItem(item)],
|
||||||
|
}),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// Update the cart cookie
|
||||||
|
res.setHeader(
|
||||||
|
'Set-Cookie',
|
||||||
|
getCartCookie(config.cartCookie, cartId, config.cartCookieMaxAge)
|
||||||
|
)
|
||||||
|
|
||||||
|
return res.status(200).json({ data })
|
||||||
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error)
|
console.error(error)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user