feat(cart): Line item adjustments (#6112)

This commit is contained in:
Oli Juhl authored and GitHub committed 2024-01-22 09:55:47 +01:00
1 parent af7af73745
commit 06b33a9b45
21 files changed
+974 -71

No files matched your search

+20 -4
View File
@@ -9,11 +9,15 @@ export interface AdjustmentLineDTO {
/**
* The code of the adjustment line
*/
code: string
code?: string
/**
* The amount of the adjustment line
*/
amount: number
/**
* The ID of the associated cart
*/
cart_id: string
/**
* The description of the adjustment line
*/
@@ -43,11 +47,16 @@ export interface ShippingMethodAdjustmentLineDTO extends AdjustmentLineDTO {
shipping_method: CartShippingMethodDTO
}
export interface LineItemAdjustmentLineDTO extends AdjustmentLineDTO {
export interface LineItemAdjustmentDTO extends AdjustmentLineDTO {
/**
* The associated line item
* @expandable
*/
item: CartLineItemDTO
/**
* The associated line item
*/
line_item: CartLineItemDTO
item_id: string
}
export interface TaxLineDTO {
@@ -340,7 +349,7 @@ export interface CartLineItemDTO {
*
* @expandable
*/
adjustments?: LineItemAdjustmentLineDTO[]
adjustments?: LineItemAdjustmentDTO[]
/**
* The associated cart.
*
@@ -494,6 +503,13 @@ export interface FilterableLineItemProps
product_id?: string | string[]
}
export interface FilterableLineItemAdjustmentProps
extends BaseFilterable<FilterableLineItemAdjustmentProps> {
id?: string | string[]
item_id?: string | string[]
promotion_id?: string | string[]
provider_id?: string | string[]
}
export interface FilterableShippingMethodProps
extends BaseFilterable<FilterableShippingMethodProps> {
id?: string | string[]
+54 -13
View File
@@ -1,5 +1,6 @@
import { CartLineItemDTO } from "./common"
/** ADDRESS START */
export interface UpsertAddressDTO {
customer_id?: string
company?: string
@@ -21,6 +22,9 @@ export interface UpdateAddressDTO extends UpsertAddressDTO {
export interface CreateAddressDTO extends UpsertAddressDTO {}
/** ADDRESS END */
/** CART START */
export interface CreateCartDTO {
region_id?: string
customer_id?: string
@@ -54,6 +58,9 @@ export interface UpdateCartDTO {
metadata?: Record<string, unknown>
}
/** CART END */
/** TAXLINES START */
export interface CreateTaxLineDTO {
description?: string
tax_rate_id?: string
@@ -62,14 +69,6 @@ export interface CreateTaxLineDTO {
provider_id?: string
}
export interface CreateAdjustmentDTO {
code: string
amount: number
description?: string
promotion_id?: string
provider_id?: string
}
export interface UpdateTaxLineDTO {
id: string
description?: string
@@ -79,15 +78,48 @@ export interface UpdateTaxLineDTO {
provider_id?: string
}
/** TAXLINES END */
/** ADJUSTMENT START */
export interface CreateAdjustmentDTO {
item_id: string
code?: string
amount: number
description?: string
promotion_id?: string
provider_id?: string
}
export interface UpdateAdjustmentDTO {
id: string
code?: string
amount: number
description?: string
promotion_id?: string
provider_id?: string
}
export interface CreateLineItemAdjustmentDTO extends CreateAdjustmentDTO {
item_id: string
}
export interface UpdateLineItemAdjustmentDTO extends UpdateAdjustmentDTO {
item_id: string
}
export interface UpsertLineItemAdjustmentDTO {
id?: string
item_id: string
code?: string
amount?: number
description?: string
promotion_id?: string
provider_id?: string
}
/** ADJUSTMENT START */
/** LINE ITEMS START */
export interface CreateLineItemDTO {
title: string
subtitle?: string
@@ -146,14 +178,23 @@ export interface UpdateLineItemDTO
adjustments?: UpdateAdjustmentDTO[] | CreateAdjustmentDTO[]
}
/** LINE ITEMS END */
/** SHIPPING METHODS START */
export interface CreateShippingMethodDTO {
name: string
cart_id: string
amount: number
data?: Record<string, unknown>
tax_lines?: CreateTaxLineDTO[]
adjustments?: CreateAdjustmentDTO[]
}
export interface CreateShippingMethodForSingleCartDTO {
name: string
amount: number
data?: Record<string, unknown>
tax_lines?: CreateTaxLineDTO[]
adjustments?: CreateAdjustmentDTO[]
}
@@ -161,10 +202,10 @@ export interface CreateShippingMethodDTO {
export interface UpdateShippingMethodDTO {
id: string
name?: string
amount?: number
data?: Record<string, unknown>
tax_lines?: UpdateTaxLineDTO[] | CreateTaxLineDTO[]
adjustments?: UpdateAdjustmentDTO[] | CreateAdjustmentDTO[]
adjustments?: CreateAdjustmentDTO[] | UpdateAdjustmentDTO[]
}
/** SHIPPING METHODS END */
+70 -17
View File
@@ -2,24 +2,29 @@ import { FindConfig } from "../common"
import { IModuleService } from "../modules-sdk"
import { Context } from "../shared-context"
import {
CartAddressDTO,
CartDTO,
CartLineItemDTO,
CartShippingMethodDTO,
FilterableAddressProps,
FilterableCartProps,
FilterableShippingMethodProps,
CartAddressDTO,
CartDTO,
CartLineItemDTO,
CartShippingMethodDTO,
FilterableAddressProps,
FilterableCartProps,
FilterableLineItemAdjustmentProps,
FilterableLineItemProps,
FilterableShippingMethodProps,
LineItemAdjustmentDTO,
} from "./common"
import {
CreateAddressDTO,
CreateCartDTO,
CreateLineItemDTO,
CreateLineItemForCartDTO,
CreateShippingMethodDTO,
UpdateAddressDTO,
UpdateCartDTO,
UpdateLineItemDTO,
UpdateLineItemWithSelectorDTO,
CreateAddressDTO,
CreateAdjustmentDTO,
CreateCartDTO,
CreateLineItemDTO,
CreateLineItemForCartDTO,
CreateShippingMethodDTO,
UpdateAddressDTO,
UpdateCartDTO,
UpdateLineItemDTO,
UpdateLineItemWithSelectorDTO,
UpsertLineItemAdjustmentDTO
} from "./mutations"
export interface ICartModuleService extends IModuleService {
@@ -77,7 +82,19 @@ export interface ICartModuleService extends IModuleService {
deleteAddresses(ids: string[], sharedContext?: Context): Promise<void>
deleteAddresses(ids: string, sharedContext?: Context): Promise<void>
addLineItems(data: CreateLineItemForCartDTO): Promise<CartLineItemDTO>
retrieveLineItem(
itemId: string,
config?: FindConfig<CartLineItemDTO>,
sharedContext?: Context
): Promise<CartLineItemDTO>
listLineItems(
filters: FilterableLineItemProps,
config?: FindConfig<CartLineItemDTO>,
sharedContext?: Context
): Promise<CartLineItemDTO[]>
addLineItems(data: CreateLineItemForCartDTO): Promise<CartLineItemDTO[]>
addLineItems(data: CreateLineItemForCartDTO[]): Promise<CartLineItemDTO[]>
addLineItems(
cartId: string,
@@ -136,4 +153,40 @@ export interface ICartModuleService extends IModuleService {
selector: Partial<CartShippingMethodDTO>,
sharedContext?: Context
): Promise<void>
listLineItemAdjustments(
filters: FilterableLineItemAdjustmentProps,
config?: FindConfig<LineItemAdjustmentDTO>,
sharedContext?: Context
): Promise<LineItemAdjustmentDTO[]>
addLineItemAdjustments(
data: CreateAdjustmentDTO[]
): Promise<LineItemAdjustmentDTO[]>
addLineItemAdjustments(
data: CreateAdjustmentDTO
): Promise<LineItemAdjustmentDTO[]>
addLineItemAdjustments(
cartId: string,
data: CreateAdjustmentDTO[]
): Promise<LineItemAdjustmentDTO[]>
setLineItemAdjustments(
cartId: string,
data: UpsertLineItemAdjustmentDTO[],
sharedContext?: Context
): Promise<LineItemAdjustmentDTO[]>
removeLineItemAdjustments(
adjustmentIds: string[],
sharedContext?: Context
): Promise<void>
removeLineItemAdjustments(
adjustmentIds: string,
sharedContext?: Context
): Promise<void>
removeLineItemAdjustments(
selector: Partial<LineItemAdjustmentDTO>,
sharedContext?: Context
): Promise<void>
}