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
@@ -20,15 +20,15 @@ The `InventoryItem` data model mainly holds details related to the underlying st
An inventory level, represented by the [InventoryLevel data model](/references/inventory/models/InventoryLevel), holds the inventory and quantity details of an inventory item in a specific location.
It has three quantity-related fields:
It has three quantity-related properties:
- `stocked_quantity`: The available stock quantity of an item in the associated location.
- `reserved_quantity`: The quantity reserved from the available `stocked_quantity`. It indicates the quantity that's still not removed from stock, but considered as unavailable when checking whether an item is in stock.
- `incoming_quantity`: The incoming stock quantity of an item into the associated location. This field doesn't play into the `stocked_quantity` or when checking whether an item is in stock.
- `incoming_quantity`: The incoming stock quantity of an item into the associated location. This property doesn't play into the `stocked_quantity` or when checking whether an item is in stock.
### Associated Location
The inventory level's location is determined by the `location_id` field. Medusa links the `InventoryLevel` data model with the `StockLocation` data model from the Stock Location Module.
The inventory level's location is determined by the `location_id` property. Medusa links the `InventoryLevel` data model with the `StockLocation` data model from the Stock Location Module.
---
@@ -26,7 +26,7 @@ In this document, youll find common examples of how you can use the Inventory
request.scope.resolve(ModuleRegistrationName.INVENTORY)
const inventoryItem =
await inventoryModuleService.create({
await inventoryModuleService.createInventoryItems({
sku: request.body.sku,
title: request.body.title,
requires_shipping: request.body.requires_shipping,
@@ -52,7 +52,7 @@ In this document, youll find common examples of how you can use the Inventory
const body = await request.json()
const inventoryItem =
await inventoryModuleService.create({
await inventoryModuleService.createInventoryItems({
sku: body.sku,
title: body.title,
requires_shipping: body.requires_shipping,
@@ -85,7 +85,7 @@ In this document, youll find common examples of how you can use the Inventory
request.scope.resolve(ModuleRegistrationName.INVENTORY)
const inventoryItems =
await inventoryModuleService.list({})
await inventoryModuleService.listInventoryItems({})
res.json({ inventory_items: inventoryItems })
}
@@ -106,7 +106,7 @@ In this document, youll find common examples of how you can use the Inventory
await initializeInventoryModule({})
const inventoryItems =
await inventoryModuleService.list({})
await inventoryModuleService.listInventoryItems({})
return NextResponse.json({ inventory_items: inventoryItems })
}
@@ -135,7 +135,7 @@ In this document, youll find common examples of how you can use the Inventory
request.scope.resolve(ModuleRegistrationName.INVENTORY)
const inventoryItem =
await inventoryModuleService.retrieve(
await inventoryModuleService.retrieveInventoryItem(
request.params.id
)
@@ -167,7 +167,7 @@ In this document, youll find common examples of how you can use the Inventory
await initializeInventoryModule({})
const inventoryItem =
await inventoryModuleService.retrieve(
await inventoryModuleService.retrieveInventoryItem(
params.id
)
@@ -8,7 +8,7 @@ This document explains how the Inventory Module is used within the Medusa applic
## Product Variant Creation
When a product variant is created and its `manage_inventory` field's value is `true`, the Medusa application creates an inventory item associated with that product variant.
When a product variant is created and its `manage_inventory` property's value is `true`, the Medusa application creates an inventory item associated with that product variant.
![A diagram showcasing how the Inventory Module is used in the product variant creation form](https://res.cloudinary.com/dza7lstvk/image/upload/v1709661511/Medusa%20Resources/inventory-product-create_khz2hk.jpg)
@@ -32,7 +32,7 @@ When an order is placed, the Medusa application creates a reservation item for e
## Order Fulfillment
When an item in an order is fulfilled and the associated variant has its `manage_inventory` field set to `true`, the Medusa application:
When an item in an order is fulfilled and the associated variant has its `manage_inventory` property set to `true`, the Medusa application:
- Subtracts the `reserved_quantity` from the `stocked_quantity` in the inventory level associated with the variant's inventory item.
- Resets the `reserved_quantity` to `0`.
@@ -44,6 +44,6 @@ When an item in an order is fulfilled and the associated variant has its `manage
## Order Return
When an item in an order is returned and the associated variant has its `manage_inventory` field set to `true`, the Medusa application increments the `stocked_quantity` of the inventory item's level with the returned quantity.
When an item in an order is returned and the associated variant has its `manage_inventory` property set to `true`, the Medusa application increments the `stocked_quantity` of the inventory item's level with the returned quantity.
![A diagram showcasing how the Inventory Module is used in the order return flow](https://res.cloudinary.com/dza7lstvk/image/upload/v1709712457/Medusa%20Resources/inventory-order-return_ihftyk.jpg)
@@ -18,7 +18,7 @@ Inventory items hold details of the underlying stock-kept item, as well as inven
```ts
const inventoryItem =
await inventoryModuleService.create({
await inventoryModuleService.createInventoryItems({
sku: "SHIRT",
title: "Green Medusa Shirt",
requires_shipping: true,
@@ -89,7 +89,7 @@ For example:
res.json({
inventory_items:
await inventoryModuleService.list({}),
await inventoryModuleService.listInventoryItems({}),
})
}
```
@@ -109,7 +109,7 @@ For example:
container.resolve(ModuleRegistrationName.INVENTORY)
const inventoryItems =
await inventoryModuleService.list({})
await inventoryModuleService.listInventoryItems({})
}
```
@@ -128,7 +128,7 @@ For example:
container.resolve(ModuleRegistrationName.INVENTORY)
const inventoryItems =
await inventoryModuleService.list({})
await inventoryModuleService.listInventoryItems({})
})
```
@@ -12,7 +12,7 @@ Each product variant has different inventory details. Medusa defines a link modu
![A diagram showcasing an example of how data models from the Inventory and Product Module are linked.](https://res.cloudinary.com/dza7lstvk/image/upload/v1709658720/Medusa%20Resources/inventory-product_ejnray.jpg)
A product variant, whose `manage_inventory` field is enabled, has an associated inventory item. Through that inventory's items relations in the Inventory Module, you can manage and check the variant's inventory quantity.
A product variant, whose `manage_inventory` property is enabled, has an associated inventory item. Through that inventory's items relations in the Inventory Module, you can manage and check the variant's inventory quantity.
---