feat: Add metadata to shipping options endpoints (#13554)
This commit is contained in:
@@ -292,6 +292,54 @@ medusaIntegrationTestRunner({
|
||||
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", () => {
|
||||
|
||||
@@ -178,6 +178,10 @@ export interface AdminCreateShippingOption {
|
||||
* documentation.
|
||||
*/
|
||||
rules?: AdminCreateShippingOptionRule[]
|
||||
/**
|
||||
* Custom key-value pairs that can be added to the shipping option.
|
||||
*/
|
||||
metadata?: Record<string, unknown>
|
||||
}
|
||||
|
||||
export interface AdminUpdateShippingOptionRule
|
||||
@@ -282,6 +286,10 @@ export interface AdminUpdateShippingOption {
|
||||
* documentation.
|
||||
*/
|
||||
rules?: (AdminUpdateShippingOptionRule | AdminCreateShippingOptionRule)[]
|
||||
/**
|
||||
* Custom key-value pairs that can be added to the shipping option.
|
||||
*/
|
||||
metadata?: Record<string, unknown>
|
||||
}
|
||||
|
||||
export interface AdminUpdateShippingOptionRules {
|
||||
|
||||
@@ -142,6 +142,7 @@ export const AdminCreateShippingOption = z
|
||||
AdminCreateShippingOptionPriceWithRegion
|
||||
).array(),
|
||||
rules: AdminCreateShippingOptionRule.array().optional(),
|
||||
metadata: z.record(z.unknown()).optional(),
|
||||
})
|
||||
.strict()
|
||||
.refine((data) => isDefined(data.type_id) !== isDefined(data.type), {
|
||||
@@ -170,6 +171,7 @@ export const AdminUpdateShippingOption = z
|
||||
rules: AdminUpdateShippingOptionRule.or(AdminCreateShippingOptionRule)
|
||||
.array()
|
||||
.optional(),
|
||||
metadata: z.record(z.unknown()).optional(),
|
||||
})
|
||||
.strict()
|
||||
.refine(
|
||||
|
||||
@@ -6,6 +6,7 @@ export const defaultStoreShippingOptionsFields = [
|
||||
"shipping_profile_id",
|
||||
"fulfillment_provider_id",
|
||||
"shipping_option_type_id",
|
||||
"metadata",
|
||||
]
|
||||
|
||||
export const listTransformQueryConfig = {
|
||||
|
||||
Reference in New Issue
Block a user