docs: updates to use DML and other changes (#7834)

- Change existing data model guides and add new ones for DML
- Change module's docs around service factory + remove guides that are now necessary
- Hide/remove all mentions of module relationships, or label them as coming soon.
- Change all data model creation snippets to use DML
- use `property` instead of `field` when referring to a data model's properties.
- Fix all snippets in commerce module guides to use new method suffix (no more main model methods)
- Rework recipes, removing/hiding a lot of sections as a lot of recipes are incomplete with the current state of DML.


### Other changes

- Highlight fixes in some guides
- Remove feature flags guide
- Fix code block styles when there are no line numbers.

### Upcoming changes in other PRs

- Re-generate commerce module references (for the updates in the method names)
- Ensure that the data model references are generated correctly for models using DML.
- (probably at a very later point) revisit recipes
This commit is contained in:
Shahed Nasser
2024-06-26 07:55:59 +00:00
committed by GitHub
parent 62dacdda75
commit 0462cc5acf
126 changed files with 1808 additions and 14242 deletions
@@ -25,7 +25,7 @@ In this guide, youll find common examples of how you can use the Product Modu
const productModuleService: IProductModuleService =
request.scope.resolve(ModuleRegistrationName.PRODUCT)
const products = await productModuleService.create([
const products = await productModuleService.createProducts([
{
title: "Medusa Shirt",
options: [
@@ -63,7 +63,7 @@ In this guide, youll find common examples of how you can use the Product Modu
export async function POST(request: Request) {
const productModuleService = await initializeProductModule()
const products = await productModuleService.create([
const products = await productModuleService.createProducts([
{
title: "Medusa Shirt",
options: [
@@ -110,7 +110,7 @@ In this guide, youll find common examples of how you can use the Product Modu
const productModuleService: IProductModuleService =
request.scope.resolve(ModuleRegistrationName.PRODUCT)
const products = await productModuleService.list()
const products = await productModuleService.listProducts()
res.json({ products })
}
@@ -129,7 +129,7 @@ In this guide, youll find common examples of how you can use the Product Modu
export async function GET(request: Request) {
const productModuleService = await initializeProductModule()
const products = await productModuleService.list()
const products = await productModuleService.listProducts()
return NextResponse.json({ products })
}
@@ -157,7 +157,7 @@ In this guide, youll find common examples of how you can use the Product Modu
const productModuleService: IProductModuleService =
request.scope.resolve(ModuleRegistrationName.PRODUCT)
const product = await productModuleService.retrieve(
const product = await productModuleService.retrieveProduct(
request.params.id
)
@@ -182,7 +182,7 @@ In this guide, youll find common examples of how you can use the Product Modu
const { id } = params
const productModuleService = await initializeProductModule()
const product = await productModuleService.retrieve(
const product = await productModuleService.retrieveProduct(
id
)
@@ -212,7 +212,7 @@ In this guide, youll find common examples of how you can use the Product Modu
const productModuleService: IProductModuleService =
request.scope.resolve(ModuleRegistrationName.PRODUCT)
const data = await productModuleService.list({
const data = await productModuleService.listProducts({
handle: "shirt",
})
@@ -233,7 +233,7 @@ In this guide, youll find common examples of how you can use the Product Modu
export async function GET(request: Request) {
const productModuleService = await initializeProductModule()
const data = await productModuleService.list({
const data = await productModuleService.listProducts({
handle: "shirt",
})
@@ -263,7 +263,8 @@ In this guide, youll find common examples of how you can use the Product Modu
const productModuleService: IProductModuleService =
request.scope.resolve(ModuleRegistrationName.PRODUCT)
const categories = await productModuleService.listCategories()
const categories = await productModuleService
.listProductCategories()
res.json({ categories })
}
@@ -282,7 +283,8 @@ In this guide, youll find common examples of how you can use the Product Modu
export async function GET(request: Request) {
const productModuleService = await initializeProductModule()
const categories = await productModuleService.listCategories()
const categories = await productModuleService
.listProductCategories()
return NextResponse.json({ categories })
}
@@ -310,9 +312,10 @@ In this guide, youll find common examples of how you can use the Product Modu
const productModuleService: IProductModuleService =
request.scope.resolve(ModuleRegistrationName.PRODUCT)
const data = await productModuleService.listCategories({
handle: request.params.handle,
})
const data = await productModuleService
.listProductCategories({
handle: request.params.handle,
})
res.json({ category: data[0] })
}
@@ -335,9 +338,10 @@ In this guide, youll find common examples of how you can use the Product Modu
const { handle } = params
const productModuleService = await initializeProductModule()
const data = await productModuleService.listCategories({
handle,
})
const data = await productModuleService
.listProductCategories({
handle,
})
return NextResponse.json({ category: data[0] })
}
@@ -15,7 +15,7 @@ The Product Module is the `@medusajs/product` NPM package that provides product-
Store and manage products. Products have custom options, such as color or size, and each variant in the product sets the value for these options.
```ts
const products = await productService.create([
const products = await productService.createProducts([
{
title: "Medusa Shirt",
options: [
@@ -42,11 +42,11 @@ const products = await productService.create([
The Product Module provides different data models used to organize products, including categories, collections, tags, and more.
```ts
const category = await productService.createCategory({
const category = await productService.createProductCategories({
name: "Shirts",
})
const products = await productService.update([
const products = await productService.updateProducts([
{
id: product.id,
categories: [
@@ -81,7 +81,9 @@ For example:
const productModuleService: IProductModuleService =
request.scope.resolve(ModuleRegistrationName.PRODUCT)
res.json({ products: await productModuleService.list() })
res.json({
products: await productModuleService.listProducts(),
})
}
```
@@ -99,7 +101,7 @@ For example:
const productModuleService: IProductModuleService =
container.resolve(ModuleRegistrationName.PRODUCT)
const products = await productModuleService.list()
const products = await productModuleService.listProducts()
}
```
@@ -117,7 +119,7 @@ For example:
const productModuleService: IProductModuleService =
container.resolve(ModuleRegistrationName.PRODUCT)
const products = await productModuleService.list()
const products = await productModuleService.listProducts()
})
```
@@ -48,6 +48,6 @@ Each product variant has different inventory details. Medusa defines a link modu
![A diagram showcasing an example of how data models from the Product and Inventory modules are linked.](https://res.cloudinary.com/dza7lstvk/image/upload/v1709652779/Medusa%20Resources/product-inventory_kmjnud.jpg)
When the `manage_inventory` field of a product variant is enabled, you can manage the variant's inventory in different locations through this relation.
When the `manage_inventory` property of a product variant is enabled, you can manage the variant's inventory in different locations through this relation.
Learn more about the `InventoryItem` data model in the [Inventory Concepts](../../inventory/concepts/page.mdx#inventoryitem)