feat: Add metadata to shipping options endpoints (#13554)
This commit is contained in:
@@ -292,6 +292,54 @@ medusaIntegrationTestRunner({
|
|||||||
metadata: null,
|
metadata: null,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it("should retrieve a shipping option with metadata successfully", async () => {
|
||||||
|
const shippingOptionPayload = {
|
||||||
|
name: "Test shipping option with metadata",
|
||||||
|
service_zone_id: fulfillmentSet.service_zones[0].id,
|
||||||
|
shipping_profile_id: shippingProfile.id,
|
||||||
|
provider_id: "manual_test-provider",
|
||||||
|
price_type: "flat",
|
||||||
|
type: {
|
||||||
|
label: "Test type",
|
||||||
|
description: "Test description",
|
||||||
|
code: "test-code",
|
||||||
|
},
|
||||||
|
prices: [{ currency_code: "usd", amount: 1000 }],
|
||||||
|
metadata: {
|
||||||
|
priority: "high",
|
||||||
|
tracking: "enabled",
|
||||||
|
carrier: "express",
|
||||||
|
specialHandling: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
const {
|
||||||
|
data: { shipping_option: shippingOption },
|
||||||
|
} = await api.post(
|
||||||
|
`/admin/shipping-options`,
|
||||||
|
shippingOptionPayload,
|
||||||
|
adminHeaders
|
||||||
|
)
|
||||||
|
|
||||||
|
const shippingOptionRes = await api.get(
|
||||||
|
`/admin/shipping-options/${shippingOption.id}`,
|
||||||
|
adminHeaders
|
||||||
|
)
|
||||||
|
|
||||||
|
expect(shippingOptionRes.data.shipping_option).toEqual(
|
||||||
|
expect.objectContaining({
|
||||||
|
id: expect.any(String),
|
||||||
|
name: "Test shipping option with metadata",
|
||||||
|
metadata: {
|
||||||
|
priority: "high",
|
||||||
|
tracking: "enabled",
|
||||||
|
carrier: "express",
|
||||||
|
specialHandling: true,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe("POST /admin/shipping-options", () => {
|
describe("POST /admin/shipping-options", () => {
|
||||||
|
|||||||
@@ -178,6 +178,10 @@ export interface AdminCreateShippingOption {
|
|||||||
* documentation.
|
* documentation.
|
||||||
*/
|
*/
|
||||||
rules?: AdminCreateShippingOptionRule[]
|
rules?: AdminCreateShippingOptionRule[]
|
||||||
|
/**
|
||||||
|
* Custom key-value pairs that can be added to the shipping option.
|
||||||
|
*/
|
||||||
|
metadata?: Record<string, unknown>
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface AdminUpdateShippingOptionRule
|
export interface AdminUpdateShippingOptionRule
|
||||||
@@ -282,6 +286,10 @@ export interface AdminUpdateShippingOption {
|
|||||||
* documentation.
|
* documentation.
|
||||||
*/
|
*/
|
||||||
rules?: (AdminUpdateShippingOptionRule | AdminCreateShippingOptionRule)[]
|
rules?: (AdminUpdateShippingOptionRule | AdminCreateShippingOptionRule)[]
|
||||||
|
/**
|
||||||
|
* Custom key-value pairs that can be added to the shipping option.
|
||||||
|
*/
|
||||||
|
metadata?: Record<string, unknown>
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface AdminUpdateShippingOptionRules {
|
export interface AdminUpdateShippingOptionRules {
|
||||||
|
|||||||
@@ -142,6 +142,7 @@ export const AdminCreateShippingOption = z
|
|||||||
AdminCreateShippingOptionPriceWithRegion
|
AdminCreateShippingOptionPriceWithRegion
|
||||||
).array(),
|
).array(),
|
||||||
rules: AdminCreateShippingOptionRule.array().optional(),
|
rules: AdminCreateShippingOptionRule.array().optional(),
|
||||||
|
metadata: z.record(z.unknown()).optional(),
|
||||||
})
|
})
|
||||||
.strict()
|
.strict()
|
||||||
.refine((data) => isDefined(data.type_id) !== isDefined(data.type), {
|
.refine((data) => isDefined(data.type_id) !== isDefined(data.type), {
|
||||||
@@ -170,6 +171,7 @@ export const AdminUpdateShippingOption = z
|
|||||||
rules: AdminUpdateShippingOptionRule.or(AdminCreateShippingOptionRule)
|
rules: AdminUpdateShippingOptionRule.or(AdminCreateShippingOptionRule)
|
||||||
.array()
|
.array()
|
||||||
.optional(),
|
.optional(),
|
||||||
|
metadata: z.record(z.unknown()).optional(),
|
||||||
})
|
})
|
||||||
.strict()
|
.strict()
|
||||||
.refine(
|
.refine(
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ export const defaultStoreShippingOptionsFields = [
|
|||||||
"shipping_profile_id",
|
"shipping_profile_id",
|
||||||
"fulfillment_provider_id",
|
"fulfillment_provider_id",
|
||||||
"shipping_option_type_id",
|
"shipping_option_type_id",
|
||||||
|
"metadata",
|
||||||
]
|
]
|
||||||
|
|
||||||
export const listTransformQueryConfig = {
|
export const listTransformQueryConfig = {
|
||||||
|
|||||||
Reference in New Issue
Block a user