fix(core-flows): confirm return request (#8242)
This commit is contained in:
@@ -43,7 +43,7 @@ export function prepareLineItemData(data: Input) {
|
||||
product_title: variant.product.title,
|
||||
product_description: variant.product.description,
|
||||
product_subtitle: variant.product.subtitle,
|
||||
product_type: variant.product.type?.[0].value ?? null,
|
||||
product_type: variant.product.type?.[0]?.value ?? null,
|
||||
product_collection: variant.product.collection?.[0]?.value ?? null,
|
||||
product_handle: variant.product.handle,
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import {
|
||||
CreateOrderReturnItemDTO,
|
||||
IOrderModuleService,
|
||||
OrderChangeActionDTO,
|
||||
UpdateReturnDTO,
|
||||
} from "@medusajs/types"
|
||||
import { ModuleRegistrationName } from "@medusajs/utils"
|
||||
import { StepResponse, createStep } from "@medusajs/workflows-sdk"
|
||||
@@ -21,33 +21,24 @@ export const createReturnItemsStep = createStep(
|
||||
const returnItems = input.changes.map((item) => {
|
||||
return {
|
||||
return_id: input.returnId,
|
||||
item_id: item.details?.reference_id,
|
||||
item_id: item.details?.reference_id! as string,
|
||||
reason_id: item.details?.reason_id,
|
||||
quantity: item.details?.quantity as number,
|
||||
note: item.internal_note,
|
||||
metadata: (item.details?.metadata as Record<string, unknown>) ?? {},
|
||||
}
|
||||
} as CreateOrderReturnItemDTO
|
||||
})
|
||||
|
||||
const [prevReturn] = await orderModuleService.listReturns(
|
||||
{ id: input.returnId },
|
||||
{
|
||||
select: ["id"],
|
||||
relations: ["items"],
|
||||
}
|
||||
const createdReturnItems = await orderModuleService.createReturnItems(
|
||||
returnItems
|
||||
)
|
||||
|
||||
const createdReturnItems = await orderModuleService.updateReturns([
|
||||
{
|
||||
selector: { id: input.returnId },
|
||||
data: { items: returnItems as UpdateReturnDTO["items"] },
|
||||
},
|
||||
])
|
||||
|
||||
return new StepResponse(createdReturnItems, prevReturn)
|
||||
return new StepResponse(
|
||||
createdReturnItems,
|
||||
createdReturnItems.map((i) => i.id)
|
||||
)
|
||||
},
|
||||
async (prevData, { container }) => {
|
||||
if (!prevData) {
|
||||
async (ids, { container }) => {
|
||||
if (!ids) {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -55,9 +46,6 @@ export const createReturnItemsStep = createStep(
|
||||
ModuleRegistrationName.ORDER
|
||||
)
|
||||
|
||||
await orderModuleService.updateReturns(
|
||||
{ id: prevData.id },
|
||||
{ items: prevData.items }
|
||||
)
|
||||
await orderModuleService.deleteReturnItems(ids)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -222,7 +222,7 @@ export const createOrderFulfillmentWorkflow = createWorkflow(
|
||||
})
|
||||
|
||||
const shippingMethod = transform(order, (data) => {
|
||||
return { data: data.shipping_methods?.[0].data }
|
||||
return { data: data.shipping_methods?.[0]?.data }
|
||||
})
|
||||
|
||||
const shippingOptionId = transform(order, (data) => {
|
||||
|
||||
@@ -1139,6 +1139,21 @@ export interface ReturnDTO extends Omit<OrderDTO, "status" | "version"> {
|
||||
order_id: string
|
||||
}
|
||||
|
||||
export interface OrderReturnItemDTO {
|
||||
id: string
|
||||
return_id: string
|
||||
order_id: string
|
||||
item_id: string
|
||||
reason_id?: string | null
|
||||
quantity: number
|
||||
raw_quantity: BigNumberRawValue
|
||||
received_quantity?: number
|
||||
raw_received_quantity?: BigNumberRawValue
|
||||
metadata?: Record<string, unknown> | null
|
||||
created_at?: Date | string
|
||||
updated_at?: Date | string
|
||||
}
|
||||
|
||||
export interface OrderClaimDTO
|
||||
extends Omit<OrderDTO, "status" | "version" | "items"> {
|
||||
claim_items: any[]
|
||||
|
||||
@@ -470,6 +470,15 @@ export interface UpdateOrderExchangeDTO {
|
||||
metadata?: Record<string, unknown> | null
|
||||
}
|
||||
|
||||
export interface CreateOrderReturnItemDTO {
|
||||
return_id: string
|
||||
item_id: string
|
||||
quantity?: BigNumberInput
|
||||
reason_id?: string
|
||||
note?: string
|
||||
metadata?: Record<string, unknown> | null
|
||||
}
|
||||
|
||||
export interface UpdateOrderReturnWithSelectorDTO {
|
||||
selector: Partial<ReturnDTO>
|
||||
data: Partial<UpdateReturnDTO>
|
||||
|
||||
@@ -28,6 +28,7 @@ import {
|
||||
OrderLineItemAdjustmentDTO,
|
||||
OrderLineItemDTO,
|
||||
OrderLineItemTaxLineDTO,
|
||||
OrderReturnItemDTO,
|
||||
OrderReturnReasonDTO,
|
||||
OrderShippingMethodAdjustmentDTO,
|
||||
OrderShippingMethodDTO,
|
||||
@@ -52,6 +53,7 @@ import {
|
||||
CreateOrderLineItemDTO,
|
||||
CreateOrderLineItemTaxLineDTO,
|
||||
CreateOrderReturnDTO,
|
||||
CreateOrderReturnItemDTO,
|
||||
CreateOrderReturnReasonDTO,
|
||||
CreateOrderShippingMethodAdjustmentDTO,
|
||||
CreateOrderShippingMethodDTO,
|
||||
@@ -1891,6 +1893,16 @@ export interface IOrderModuleService extends IModuleService {
|
||||
sharedContext?: Context
|
||||
): Promise<Record<string, string[]> | void>
|
||||
|
||||
createReturnItems(
|
||||
data: CreateOrderReturnItemDTO,
|
||||
sharedContext?: Context
|
||||
): Promise<OrderReturnItemDTO>
|
||||
|
||||
createReturnItems(
|
||||
data: CreateOrderReturnItemDTO[],
|
||||
sharedContext?: Context
|
||||
): Promise<OrderReturnItemDTO[]>
|
||||
|
||||
createReturns(
|
||||
data: CreateOrderReturnDTO,
|
||||
sharedContext?: Context
|
||||
@@ -1916,6 +1928,8 @@ export interface IOrderModuleService extends IModuleService {
|
||||
|
||||
deleteReturns(ids: string[], sharedContext?: Context): Promise<void>
|
||||
|
||||
deleteReturnItems(ids: string[], sharedContext?: Context): Promise<void>
|
||||
|
||||
softDeleteReturns<TReturnableLinkableKeys extends string = string>(
|
||||
ids: string[],
|
||||
config?: SoftDeleteReturn<TReturnableLinkableKeys>,
|
||||
|
||||
Reference in New Issue
Block a user