mirror of
https://github.com/vercel/commerce.git
synced 2025-06-30 02:11:21 +00:00
feat: add discounts and remove console.log
This commit is contained in:
parent
7ab1d9a50d
commit
c355725fa9
@ -34,7 +34,6 @@ export const handler: MutationHook<any> = {
|
|||||||
return useCallback(
|
return useCallback(
|
||||||
async function removeItem(input) {
|
async function removeItem(input) {
|
||||||
const data = await fetch({ input: { itemId: input.id } })
|
const data = await fetch({ input: { itemId: input.id } })
|
||||||
console.log('remove item', data)
|
|
||||||
await mutate(data, false)
|
await mutate(data, false)
|
||||||
return data
|
return data
|
||||||
},
|
},
|
||||||
|
@ -69,7 +69,6 @@ export const handler: MutationHook<any> = {
|
|||||||
itemId,
|
itemId,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
console.log('update quantity', data)
|
|
||||||
await mutate(data, false)
|
await mutate(data, false)
|
||||||
return data
|
return data
|
||||||
},
|
},
|
||||||
|
@ -10,6 +10,10 @@ export interface SyliusOrder {
|
|||||||
taxTotal: number
|
taxTotal: number
|
||||||
itemsTotal: number
|
itemsTotal: number
|
||||||
total: number
|
total: number
|
||||||
|
taxExcludedTotal: number
|
||||||
|
taxIncludedTotal: number
|
||||||
|
shippingTotal: number
|
||||||
|
orderPromotionTotal: number
|
||||||
items: SyliusOrderItem[]
|
items: SyliusOrderItem[]
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -22,4 +26,12 @@ export interface SyliusOrderItem {
|
|||||||
variant: SyliusProductVariant
|
variant: SyliusProductVariant
|
||||||
optionValues: SyliusProductOptionValue[]
|
optionValues: SyliusProductOptionValue[]
|
||||||
product: SyliusProduct
|
product: SyliusProduct
|
||||||
|
adjustments: SyliusAdjustment[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface SyliusAdjustment {
|
||||||
|
id: number
|
||||||
|
type: string
|
||||||
|
label: string
|
||||||
|
amount: number
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,8 @@ import {
|
|||||||
SelectedOption,
|
SelectedOption,
|
||||||
} from '@vercel/commerce/types/cart'
|
} from '@vercel/commerce/types/cart'
|
||||||
import { LineItem } from '@vercel/commerce/types/cart'
|
import { LineItem } from '@vercel/commerce/types/cart'
|
||||||
import { SyliusOrder, SyliusOrderItem } from 'types/cart'
|
import { Discount } from '@vercel/commerce/types/common'
|
||||||
|
import { SyliusAdjustment, SyliusOrder, SyliusOrderItem } from 'types/cart'
|
||||||
import {
|
import {
|
||||||
SyliusProduct,
|
SyliusProduct,
|
||||||
SyliusProductOption,
|
SyliusProductOption,
|
||||||
@ -18,7 +19,7 @@ export const normalizeCart = (syliusOrder: SyliusOrder): Cart => {
|
|||||||
id: syliusOrder.id.toString(),
|
id: syliusOrder.id.toString(),
|
||||||
createdAt: '',
|
createdAt: '',
|
||||||
currency: { code: syliusOrder.currencyCode },
|
currency: { code: syliusOrder.currencyCode },
|
||||||
taxesIncluded: syliusOrder.taxTotal > 0,
|
taxesIncluded: syliusOrder.total !== syliusOrder.taxExcludedTotal,
|
||||||
lineItems: syliusOrder.items.map((item) => normalizeOrderItem(item)),
|
lineItems: syliusOrder.items.map((item) => normalizeOrderItem(item)),
|
||||||
lineItemsSubtotalPrice: syliusOrder.itemsTotal / 100,
|
lineItemsSubtotalPrice: syliusOrder.itemsTotal / 100,
|
||||||
subtotalPrice: syliusOrder.itemsTotal / 100,
|
subtotalPrice: syliusOrder.itemsTotal / 100,
|
||||||
@ -33,7 +34,6 @@ const normalizeOrderItem = (syliusOrderItem: SyliusOrderItem): LineItem => {
|
|||||||
productId: syliusOrderItem.product.id.toString(),
|
productId: syliusOrderItem.product.id.toString(),
|
||||||
name: syliusOrderItem.productName,
|
name: syliusOrderItem.productName,
|
||||||
quantity: syliusOrderItem.quantity,
|
quantity: syliusOrderItem.quantity,
|
||||||
discounts: [],
|
|
||||||
path: syliusOrderItem.product.slug,
|
path: syliusOrderItem.product.slug,
|
||||||
variant: normalizeOrderItemVariant(
|
variant: normalizeOrderItemVariant(
|
||||||
syliusOrderItem.variant,
|
syliusOrderItem.variant,
|
||||||
@ -45,6 +45,9 @@ const normalizeOrderItem = (syliusOrderItem: SyliusOrderItem): LineItem => {
|
|||||||
syliusOrderItem.product.options
|
syliusOrderItem.product.options
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
discounts: syliusOrderItem.adjustments.map((adjustment) =>
|
||||||
|
normalizeAdjustment(adjustment)
|
||||||
|
),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -80,3 +83,9 @@ const normalizeOrderItemOptionValue = (
|
|||||||
value: optionValue.value,
|
value: optionValue.value,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const normalizeAdjustment = (adjustment: SyliusAdjustment): Discount => {
|
||||||
|
return {
|
||||||
|
value: adjustment.amount / 100,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user