feat(translation,core-flows): translate remaining core entities and sync shipping option <> method translations (#14358)
* Get translated shipping options step * Apply translations on shipping options list methods. * Pass shipping option naem when refreshing cart shipping methods, so if locale changed, we update the name * Update translatable fields config * Cart shipping method update translation tests * Shipping options translations tests * Add changeset * Update order shipping method translations on update * Remove unnecessary workflow and use step instead * Translate shipping method on order edit * Use new update shipping methods tranlsations step * Draft order shipping method translation sync * Translate shipping method on order exchange * Translate returns shipping methods * Translate claims shipping methods * Remove unnecessary check * Early return * Fix import --------- Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
This commit is contained in:
co-authored by
Oli Juhl
parent
5f807ee657
commit
11de7e3e34
@@ -33,6 +33,7 @@ medusaIntegrationTestRunner({
|
||||
let shippingProfile: { id: string }
|
||||
let stockLocation: { id: string }
|
||||
let shippingOption: { id: string }
|
||||
let additionalShippingOption: { id: string }
|
||||
let inventoryItem: { id: string }
|
||||
|
||||
beforeAll(async () => {
|
||||
@@ -196,6 +197,27 @@ medusaIntegrationTestRunner({
|
||||
)
|
||||
).data.shipping_option
|
||||
|
||||
additionalShippingOption = (
|
||||
await api.post(
|
||||
`/admin/shipping-options`,
|
||||
{
|
||||
name: "Additional shipping option",
|
||||
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: 500 }],
|
||||
rules: [],
|
||||
},
|
||||
adminHeaders
|
||||
)
|
||||
).data.shipping_option
|
||||
|
||||
await api.post(
|
||||
"/admin/translations/batch",
|
||||
{
|
||||
@@ -242,6 +264,38 @@ medusaIntegrationTestRunner({
|
||||
locale_code: "de-DE",
|
||||
translations: { title: "Mittel" },
|
||||
},
|
||||
{
|
||||
reference_id: shippingOption.id,
|
||||
reference: "shipping_option",
|
||||
locale_code: "fr-FR",
|
||||
translations: {
|
||||
name: "Option d'expédition de test",
|
||||
},
|
||||
},
|
||||
{
|
||||
reference_id: shippingOption.id,
|
||||
reference: "shipping_option",
|
||||
locale_code: "de-DE",
|
||||
translations: {
|
||||
name: "Test-Versandoption",
|
||||
},
|
||||
},
|
||||
{
|
||||
reference_id: additionalShippingOption.id,
|
||||
reference: "shipping_option",
|
||||
locale_code: "fr-FR",
|
||||
translations: {
|
||||
name: "Option d'expédition supplémentaire",
|
||||
},
|
||||
},
|
||||
{
|
||||
reference_id: additionalShippingOption.id,
|
||||
reference: "shipping_option",
|
||||
locale_code: "de-DE",
|
||||
translations: {
|
||||
name: "Zusätzliche Versandoption",
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
adminHeaders
|
||||
@@ -414,6 +468,96 @@ medusaIntegrationTestRunner({
|
||||
)
|
||||
})
|
||||
})
|
||||
|
||||
describe("POST /admin/order-edits/:id/shipping-method (add shipping method during order edit)", () => {
|
||||
it("should translate shipping method added during order edit using order locale", async () => {
|
||||
const order = await createOrderFromCart("fr-FR")
|
||||
|
||||
await api.post(
|
||||
"/admin/order-edits",
|
||||
{ order_id: order.id },
|
||||
adminHeaders
|
||||
)
|
||||
|
||||
const previewResponse = await api.post(
|
||||
`/admin/order-edits/${order.id}/shipping-method`,
|
||||
{ shipping_option_id: additionalShippingOption.id },
|
||||
adminHeaders
|
||||
)
|
||||
|
||||
expect(previewResponse.data.order_preview.shipping_methods).toEqual(
|
||||
expect.arrayContaining([
|
||||
expect.objectContaining({
|
||||
shipping_option_id: additionalShippingOption.id,
|
||||
name: "Option d'expédition supplémentaire",
|
||||
}),
|
||||
])
|
||||
)
|
||||
|
||||
await api.post(
|
||||
`/admin/order-edits/${order.id}/confirm`,
|
||||
{},
|
||||
adminHeaders
|
||||
)
|
||||
|
||||
const updatedOrder = (
|
||||
await api.get(`/admin/orders/${order.id}`, adminHeaders)
|
||||
).data.order
|
||||
|
||||
expect(updatedOrder.shipping_methods).toEqual(
|
||||
expect.arrayContaining([
|
||||
expect.objectContaining({
|
||||
shipping_option_id: additionalShippingOption.id,
|
||||
name: "Option d'expédition supplémentaire",
|
||||
}),
|
||||
])
|
||||
)
|
||||
})
|
||||
|
||||
it("should have original shipping method name when order has no locale", async () => {
|
||||
const order = await createOrderFromCart()
|
||||
|
||||
await api.post(
|
||||
"/admin/order-edits",
|
||||
{ order_id: order.id },
|
||||
adminHeaders
|
||||
)
|
||||
|
||||
const previewResponse = await api.post(
|
||||
`/admin/order-edits/${order.id}/shipping-method`,
|
||||
{ shipping_option_id: additionalShippingOption.id },
|
||||
adminHeaders
|
||||
)
|
||||
|
||||
expect(previewResponse.data.order_preview.shipping_methods).toEqual(
|
||||
expect.arrayContaining([
|
||||
expect.objectContaining({
|
||||
shipping_option_id: additionalShippingOption.id,
|
||||
name: "Additional shipping option",
|
||||
}),
|
||||
])
|
||||
)
|
||||
|
||||
await api.post(
|
||||
`/admin/order-edits/${order.id}/confirm`,
|
||||
{},
|
||||
adminHeaders
|
||||
)
|
||||
|
||||
const updatedOrder = (
|
||||
await api.get(`/admin/orders/${order.id}`, adminHeaders)
|
||||
).data.order
|
||||
|
||||
expect(updatedOrder.shipping_methods).toEqual(
|
||||
expect.arrayContaining([
|
||||
expect.objectContaining({
|
||||
shipping_option_id: additionalShippingOption.id,
|
||||
name: "Additional shipping option",
|
||||
}),
|
||||
])
|
||||
)
|
||||
})
|
||||
})
|
||||
})
|
||||
},
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user