fix(core-flows): confirm return request (#8242)

This commit is contained in:
Carlos R. L. Rodrigues
2024-07-23 13:29:06 -03:00
committed by GitHub
parent 47dde05517
commit f38f6d53b4
11 changed files with 190 additions and 36 deletions
@@ -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) => {
+15
View File
@@ -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>
+14
View File
@@ -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>,