--- products: - product - store --- import { CodeTabs, CodeTab, Table } from "docs-ui" export const metadata = { title: `Links between Translation Module and Other Modules`, } # {metadata.title} This document showcases the module links that Medusa defines between the Translation Module and other Commerce Modules. ## Summary Medusa defines the following links between the Translation Module and other Commerce Modules: First Data Model Second Data Model Type Description [Product](/references/product/models/Product) in [Product Module](../../product/page.mdx) [Translation](/references/translation/models/Translation) Read-only - one-to-many [Learn more](#product-module) [ProductVariant](/references/product/models/ProductVariant) in [Product Module](../../product/page.mdx) [Translation](/references/translation/models/Translation) Read-only - one-to-many [Learn more](#product-module) [ProductCategory](/references/product/models/ProductCategory) in [Product Module](../../product/page.mdx) [Translation](/references/translation/models/Translation) Read-only - one-to-many [Learn more](#product-module) [ProductCollection](/references/product/models/ProductCollection) in [Product Module](../../product/page.mdx) [Translation](/references/translation/models/Translation) Read-only - one-to-many [Learn more](#product-module) [ProductTag](/references/product/models/ProductTag) in [Product Module](../../product/page.mdx) [Translation](/references/translation/models/Translation) Read-only - one-to-many [Learn more](#product-module) [ProductType](/references/product/models/ProductType) in [Product Module](../../product/page.mdx) [Translation](/references/translation/models/Translation) Read-only - one-to-many [Learn more](#product-module) [ProductOption](/references/product/models/ProductOption) in [Product Module](../../product/page.mdx) [Translation](/references/translation/models/Translation) Read-only - one-to-many [Learn more](#product-module) [ProductOptionValue](/references/product/models/ProductOptionValue) in [Product Module](../../product/page.mdx) [Translation](/references/translation/models/Translation) Read-only - one-to-many [Learn more](#product-module) [StoreLocale](/references/store/models/StoreLocale) in [Store Module](../../store/page.mdx) [Locale](/references/translation/models/Locale) Read-only - has many [Learn more](#store-module)
--- ## Product Module Medusa defines the following read-only links between the Translation and Product Modules: Data Model Link Type Description [Product](/references/product/models/Product) \<-\> [Translation](/references/translation/models/Translation) One-to-many (bidirectional) Retrieve translations associated with a product and vice versa. [ProductVariant](/references/product/models/ProductVariant) -> [Translation](/references/translation/models/Translation) One-to-many (read-only) Retrieve translations of a product variant only. [ProductCategory](/references/product/models/ProductCategory) -> [Translation](/references/translation/models/Translation) One-to-many (read-only) Retrieve translations of a product category only. [ProductCollection](/references/product/models/ProductCollection) -> [Translation](/references/translation/models/Translation) One-to-many (read-only) Retrieve translations of a product collection only. [ProductTag](/references/product/models/ProductTag) -> [Translation](/references/translation/models/Translation) One-to-many (read-only) Retrieve translations of a product tag only. [ProductType](/references/product/models/ProductType) -> [Translation](/references/translation/models/Translation) One-to-many (read-only) Retrieve translations of a product type only. [ProductOption](/references/product/models/ProductOption) -> [Translation](/references/translation/models/Translation) One-to-many (read-only) Retrieve translations of a product option only. [ProductOptionValue](/references/product/models/ProductOptionValue) -> [Translation](/references/translation/models/Translation) One-to-many (read-only) Retrieve translations of a product option value only.
### Retrieve with Query To retrieve the translations of a product with [Query](!docs!/learn/fundamentals/module-links/query), pass `translations.*` in `fields`: You can pass the `translations.*` field when querying any of the above-mentioned data models to retrieve their associated translations. ```ts const { data: products } = await query.graph({ entity: "product", fields: [ "translations.*", ], }) // products[0].translations ``` ```ts import { useQueryGraphStep } from "@medusajs/medusa/core-flows" // ... const { data: products } = useQueryGraphStep({ entity: "product", fields: [ "translations.*", ], }) // products[0].translations ``` --- ## Store Module The [Store Module](../../store/page.mdx) has a `StoreLocale` data model that stores the supported locales of a store. However, these locales don't hold all the details of a locale, such as its name. Instead, Medusa defines a read-only link from the Store Module's `StoreLocale` data model to the Translation Module's `Locale` data model. This means you can retrieve the details of a store's supported locales, but you don't manage the links in a pivot table in the database. ### Retrieve with Query To retrieve the details of a store's locales with [Query](!docs!/learn/fundamentals/module-links/query), pass `supported_locales.locale.*` in `fields`: ```ts const { data: stores } = await query.graph({ entity: "store", fields: [ "supported_locales.locale.*", ], }) // stores[0].supported_locales[0].locale ``` ```ts import { useQueryGraphStep } from "@medusajs/medusa/core-flows" // ... const { data: stores } = useQueryGraphStep({ entity: "store", fields: [ "supported_locales.locale.*", ], }) // stores[0].supported_locales[0].locale ```