Skip to content

feat(core-flows): add translations to line item#13190

Closed
pepijn-vanvlaanderen wants to merge 14 commits intomedusajs:developfrom
webbersagency:feat/add-translations-to-line-item
Closed

feat(core-flows): add translations to line item#13190
pepijn-vanvlaanderen wants to merge 14 commits intomedusajs:developfrom
webbersagency:feat/add-translations-to-line-item

Conversation

@pepijn-vanvlaanderen
Copy link
Copy Markdown
Contributor

@pepijn-vanvlaanderen pepijn-vanvlaanderen commented Aug 12, 2025

What

This PR serves to give localization support on some product / product variant / product collection data.

We have updated the helper function prepareLineItemData to support reading any translations from metadata fields. If these are absent, the usual core fields are used. It was also needed to add metadata fields to queried fields.

Why

Many times when working with multi lingual shops, the variants / product titles als needs localization. Though we always use CMS with localization support, cart & order item data is only available in one language in Medusa. With this small PR we can allready make cart & order line items translatable, given any metadata translations object provided.

One can then add UI widgets to manage those translations for a variant / product variant / collection.

@pepijn-vanvlaanderen pepijn-vanvlaanderen requested a review from a team as a code owner August 12, 2025 11:39
@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Aug 12, 2025

🦋 Changeset detected

Latest commit: 5093c96

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 71 packages
Name Type
@medusajs/core-flows Patch
@medusajs/medusa Patch
integration-tests-http Patch
@medusajs/test-utils Patch
@medusajs/medusa-oas-cli Patch
@medusajs/analytics Patch
@medusajs/api-key Patch
@medusajs/auth Patch
@medusajs/cart Patch
@medusajs/currency Patch
@medusajs/customer Patch
@medusajs/file Patch
@medusajs/fulfillment Patch
@medusajs/index Patch
@medusajs/inventory Patch
@medusajs/link-modules Patch
@medusajs/locking Patch
@medusajs/notification Patch
@medusajs/order Patch
@medusajs/payment Patch
@medusajs/pricing Patch
@medusajs/product Patch
@medusajs/promotion Patch
@medusajs/region Patch
@medusajs/sales-channel Patch
@medusajs/settings Patch
@medusajs/stock-location Patch
@medusajs/store Patch
@medusajs/tax Patch
@medusajs/user Patch
@medusajs/workflow-engine-inmemory Patch
@medusajs/workflow-engine-redis Patch
@medusajs/draft-order Patch
@medusajs/oas-github-ci Patch
@medusajs/cache-inmemory Patch
@medusajs/cache-redis Patch
@medusajs/event-bus-local Patch
@medusajs/event-bus-redis Patch
@medusajs/analytics-local Patch
@medusajs/analytics-posthog Patch
@medusajs/auth-emailpass Patch
@medusajs/auth-github Patch
@medusajs/auth-google Patch
@medusajs/file-local Patch
@medusajs/file-s3 Patch
@medusajs/fulfillment-manual Patch
@medusajs/locking-postgres Patch
@medusajs/locking-redis Patch
@medusajs/notification-local Patch
@medusajs/notification-sendgrid Patch
@medusajs/payment-stripe Patch
@medusajs/framework Patch
@medusajs/js-sdk Patch
@medusajs/modules-sdk Patch
@medusajs/orchestration Patch
@medusajs/types Patch
@medusajs/utils Patch
@medusajs/workflows-sdk Patch
@medusajs/cli Patch
@medusajs/telemetry Patch
@medusajs/admin-bundler Patch
@medusajs/admin-sdk Patch
@medusajs/admin-shared Patch
@medusajs/admin-vite-plugin Patch
@medusajs/dashboard Patch
@medusajs/icons Patch
@medusajs/toolbox Patch
@medusajs/ui-preset Patch
create-medusa-app Patch
medusa-dev-cli Patch
@medusajs/ui Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel
Copy link
Copy Markdown

vercel bot commented Aug 12, 2025

@pepijn-vanvlaanderen is attempting to deploy a commit to the medusajs Team on Vercel.

A member of the Team first needs to authorize it.

@willbouch willbouch changed the title feat: add translations to line item feat(core-flows): add translations to line item Aug 22, 2025
@willbouch
Copy link
Copy Markdown
Contributor

Hi @pepijn-vanvlaanderen and thank you for your contribution 🚀 . Although this looks like a working solution, after a discussion with the team, we decided that we would not go forward with translations in the metadata, since it was never meant to store this kind of information

@willbouch willbouch closed this Aug 28, 2025
@pepijn-vanvlaanderen
Copy link
Copy Markdown
Contributor Author

Hi @willbouch, agreed this is a 'patch'. But are there then any plans in the near future to support translations of product (variant) data? Line item data is currently fixed to 1 language. When running a multilingual store, you will run into issues even if you have a multilingual CMS in front, which is also a workaround tbh. Besides translating data for a storefront, you also have transactional emails, server-side tracking, analytics & reporting which depend on localized data.

@willbouch
Copy link
Copy Markdown
Contributor

Let me circle back with the team and I will get back to you

@TheGP
Copy link
Copy Markdown

TheGP commented Sep 21, 2025

So? Why do u store product information in one language already? I suggest completely removing any language data or adding multi language natively

@willbouch
Copy link
Copy Markdown
Contributor

willbouch commented Sep 22, 2025

@pepijn-vanvlaanderen @TheGP We added this ticket in our board and will get to it soon. We will expose a hook rather than using the metadata. That should cover what you need for your use case :)

@SalahAdDin
Copy link
Copy Markdown

@pepijn-vanvlaanderen @TheGP We added this ticket in our board and will get to it soon. We will expose a hook rather than using the metadata. That should cover what you need for your use case :)

Which ticket?

@mdiab1996
Copy link
Copy Markdown

Any updates?

@SalahAdDin
Copy link
Copy Markdown

@pepijn-vanvlaanderen @TheGP We added this ticket in our board and will get to it soon. We will expose a hook rather than using the metadata. That should cover what you need for your use case :)

which one?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants