diff --git a/packages/sylius/src/cart/use-remove-item.tsx b/packages/sylius/src/cart/use-remove-item.tsx index e04c54d78..2448abd6f 100644 --- a/packages/sylius/src/cart/use-remove-item.tsx +++ b/packages/sylius/src/cart/use-remove-item.tsx @@ -34,7 +34,6 @@ export const handler: MutationHook = { return useCallback( async function removeItem(input) { const data = await fetch({ input: { itemId: input.id } }) - console.log('remove item', data) await mutate(data, false) return data }, diff --git a/packages/sylius/src/cart/use-update-item.tsx b/packages/sylius/src/cart/use-update-item.tsx index 8cfb903bf..363e59961 100644 --- a/packages/sylius/src/cart/use-update-item.tsx +++ b/packages/sylius/src/cart/use-update-item.tsx @@ -69,7 +69,6 @@ export const handler: MutationHook = { itemId, }, }) - console.log('update quantity', data) await mutate(data, false) return data }, diff --git a/packages/sylius/src/types/cart.ts b/packages/sylius/src/types/cart.ts index c4a65f182..f057417dc 100644 --- a/packages/sylius/src/types/cart.ts +++ b/packages/sylius/src/types/cart.ts @@ -10,6 +10,10 @@ export interface SyliusOrder { taxTotal: number itemsTotal: number total: number + taxExcludedTotal: number + taxIncludedTotal: number + shippingTotal: number + orderPromotionTotal: number items: SyliusOrderItem[] } @@ -22,4 +26,12 @@ export interface SyliusOrderItem { variant: SyliusProductVariant optionValues: SyliusProductOptionValue[] product: SyliusProduct + adjustments: SyliusAdjustment[] +} + +export interface SyliusAdjustment { + id: number + type: string + label: string + amount: number } diff --git a/packages/sylius/src/utils/normalize/normalize-cart.ts b/packages/sylius/src/utils/normalize/normalize-cart.ts index 1e5a519ab..9d3a69992 100644 --- a/packages/sylius/src/utils/normalize/normalize-cart.ts +++ b/packages/sylius/src/utils/normalize/normalize-cart.ts @@ -4,7 +4,8 @@ import { SelectedOption, } 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 { SyliusProduct, SyliusProductOption, @@ -18,7 +19,7 @@ export const normalizeCart = (syliusOrder: SyliusOrder): Cart => { id: syliusOrder.id.toString(), createdAt: '', currency: { code: syliusOrder.currencyCode }, - taxesIncluded: syliusOrder.taxTotal > 0, + taxesIncluded: syliusOrder.total !== syliusOrder.taxExcludedTotal, lineItems: syliusOrder.items.map((item) => normalizeOrderItem(item)), lineItemsSubtotalPrice: syliusOrder.itemsTotal / 100, subtotalPrice: syliusOrder.itemsTotal / 100, @@ -33,7 +34,6 @@ const normalizeOrderItem = (syliusOrderItem: SyliusOrderItem): LineItem => { productId: syliusOrderItem.product.id.toString(), name: syliusOrderItem.productName, quantity: syliusOrderItem.quantity, - discounts: [], path: syliusOrderItem.product.slug, variant: normalizeOrderItemVariant( syliusOrderItem.variant, @@ -45,6 +45,9 @@ const normalizeOrderItem = (syliusOrderItem: SyliusOrderItem): LineItem => { syliusOrderItem.product.options ) ), + discounts: syliusOrderItem.adjustments.map((adjustment) => + normalizeAdjustment(adjustment) + ), } } @@ -80,3 +83,9 @@ const normalizeOrderItemOptionValue = ( value: optionValue.value, } } + +const normalizeAdjustment = (adjustment: SyliusAdjustment): Discount => { + return { + value: adjustment.amount / 100, + } +}