diff --git a/.changeset/wise-dodos-clean.md b/.changeset/wise-dodos-clean.md new file mode 100644 index 0000000000000..c86400741d5e8 --- /dev/null +++ b/.changeset/wise-dodos-clean.md @@ -0,0 +1,5 @@ +--- +"@medusajs/medusa": patch +--- + +fix(medusa): Allows passing data object on shipping methods during claim creation and updates diff --git a/integration-tests/api/__tests__/admin/order/order.js b/integration-tests/api/__tests__/admin/order/order.js index 46bf91e4b744b..5a84cc44ebe5a 100644 --- a/integration-tests/api/__tests__/admin/order/order.js +++ b/integration-tests/api/__tests__/admin/order/order.js @@ -1346,6 +1346,7 @@ describe("/admin/orders", () => { it("creates a claim on a swap", async () => { const api = useApi() + const shippingOption = await simpleShippingOptionFactory(dbConnection) const claimOnClaim = await api .post( @@ -1367,6 +1368,15 @@ describe("/admin/orders", () => { quantity: 1, }, ], + shipping_methods: [ + { + option_id: shippingOption.id, + price: 1000, + data: { + test: "test", + }, + }, + ], }, adminReqConfig ) diff --git a/packages/medusa/src/api/routes/admin/orders/create-claim.ts b/packages/medusa/src/api/routes/admin/orders/create-claim.ts index 89ace2a2d5bc4..4644280ac34a9 100644 --- a/packages/medusa/src/api/routes/admin/orders/create-claim.ts +++ b/packages/medusa/src/api/routes/admin/orders/create-claim.ts @@ -383,6 +383,9 @@ export default async (req, res) => { * price: * description: The price to charge for the Shipping Method * type: integer + * data: + * description: An optional set of key-value pairs to hold additional information. + * type: object * shipping_address: * type: object * description: "An optional shipping address to send the claim to. Defaults to the parent order's shipping address" @@ -466,6 +469,10 @@ class ShippingMethod { @IsInt() @IsOptional() price?: number + + @IsObject() + @IsOptional() + data?: Record } class Item { diff --git a/packages/medusa/src/api/routes/admin/orders/update-claim.ts b/packages/medusa/src/api/routes/admin/orders/update-claim.ts index ffd402e83e36f..95528245aa647 100644 --- a/packages/medusa/src/api/routes/admin/orders/update-claim.ts +++ b/packages/medusa/src/api/routes/admin/orders/update-claim.ts @@ -1,4 +1,3 @@ -import { ClaimService, OrderService } from "../../../../services" import { IsArray, IsBoolean, @@ -10,10 +9,11 @@ import { ValidateNested, } from "class-validator" import { defaultAdminOrdersFields, defaultAdminOrdersRelations } from "." +import { ClaimService, OrderService } from "../../../../services" import { Type } from "class-transformer" -import { validator } from "../../../../utils/validator" import { EntityManager } from "typeorm" +import { validator } from "../../../../utils/validator" /** * @oas [post] /order/{id}/claims/{claim_id} @@ -178,6 +178,9 @@ export default async (req, res) => { * price: * description: The price to charge for the Shipping Method * type: integer + * data: + * description: An optional set of key-value pairs to hold additional information. + * type: object * no_notification: * description: If set to true no notification will be send related to this Swap. * type: boolean @@ -219,6 +222,10 @@ class ShippingMethod { @IsInt() @IsOptional() price?: number + + @IsObject() + @IsOptional() + data?: Record } class Item { diff --git a/packages/medusa/src/services/claim.ts b/packages/medusa/src/services/claim.ts index 824a25d597f64..93ba081198b18 100644 --- a/packages/medusa/src/services/claim.ts +++ b/packages/medusa/src/services/claim.ts @@ -166,7 +166,7 @@ export default class ClaimService extends TransactionBaseService { } else { await shippingOptionServiceTx.createShippingMethod( method.option_id as string, - (method as any).data, + method.data ?? {}, { claim_order_id: claim.id, price: method.price, @@ -403,7 +403,7 @@ export default class ClaimService extends TransactionBaseService { } else { await shippingOptionServiceTx.createShippingMethod( method.option_id as string, - (method as any).data, + method.data ?? {}, { claim_order_id: result.id, price: method.price, diff --git a/packages/medusa/src/types/claim.ts b/packages/medusa/src/types/claim.ts index 60389d94b2d1b..ada41e73897c8 100644 --- a/packages/medusa/src/types/claim.ts +++ b/packages/medusa/src/types/claim.ts @@ -29,6 +29,7 @@ type CreateClaimShippingMethodInput = { id?: string option_id?: string price?: number + data?: Record } export type CreateClaimItemInput = { @@ -59,6 +60,7 @@ type UpdateClaimShippingMethodInput = { id?: string option_id?: string price?: number + data?: Record } type UpdateClaimItemInput = {