feat(cart): Line item adjustments (#6112)
This commit is contained in:
1 parent
af7af73745
commit
06b33a9b45
21 files changed
+974
-71
No files matched your search
@@ -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[]
|
||||
|
||||
@@ -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 */
|
||||
@@ -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>
|
||||
}
|
||||
Reference in new issue
Block a user