docs: fixes following QA testing (#9690)

This commit is contained in:
Shahed Nasser
2024-10-22 18:20:21 +03:00
committed by GitHub
parent b2122c4073
commit 731309e87a
40 changed files with 70 additions and 66 deletions
@@ -23,4 +23,4 @@ Refer to the [Medusa UI documentation](https://docs.medusajs.com/ui) to learn ho
## Admin Components List
To build admin customizations that match the Medusa Admin's designs and layouts, refer to [this guide](!resources!/admin-component) to find common components.
To build admin customizations that match the Medusa Admin's designs and layouts, refer to [this guide](!resources!/admin-components) to find common components.
@@ -165,4 +165,4 @@ If you run the Medusa application and go to `localhost:9000/app/custom/123`, you
## Admin Components List
To build admin customizations that match the Medusa Admin's designs and layouts, refer to [this guide](!resources!/admin-component) to find common components.
To build admin customizations that match the Medusa Admin's designs and layouts, refer to [this guide](!resources!/admin-components) to find common components.
@@ -147,7 +147,7 @@ import { Modules } from "@medusajs/framework/utils"
createProductsWorkflow.hooks.productsCreated(
async ({ products, additional_data }, { container }) => {
if (!additional_data.brand) {
if (!additional_data?.brand) {
return
}
@@ -204,4 +204,4 @@ createProductsWorkflow.hooks.productsCreated(
)
```
This updates the product to their original state before adding the brand to their `metadata` property.
This updates the products to their original state before adding the brand to their `metadata` property.
@@ -68,7 +68,7 @@ export default defineMiddlewares({
The `authenticate` middleware function accepts three parameters:
1. The type of user authenticating. Use `user` for authenticating admin users, and `customer` for authenticating customers. You can also pass `*` to allow all types of users.
2. An array of the types of authentication methods allowed. Both `user` and `customer` scopes support `session` and `bearer`. The `admin` scope also supports the `api-key` authentication method.
2. An array of types of authentication methods allowed. Both `user` and `customer` scopes support `session` and `bearer`. The `admin` scope also supports the `api-key` authentication method.
3. An optional object of configurations accepting the following property:
- `allowUnauthenticated`: (default: `false`) A boolean indicating whether authentication is required. For example, you may have an API route where you want to access the logged-in customer if available, but guest customers can still access it too.
@@ -4,7 +4,7 @@ export const metadata = {
# {metadata.title}
In this chapter, you'll learn how create and execute custom scripts from Medusa's CLI tool.
In this chapter, you'll learn how to create and execute custom scripts from Medusa's CLI tool.
## What is a Custom CLI Script?
@@ -42,7 +42,7 @@ In the example above, you pass the `user` property when creating or updating an
When you create a record of a data model that has one of another, pass the ID of the other data model's record in the relation property.
For example, assuming you have the [User and Email data models from the previous chapter](../relationships/page.mdx#one-to-one-relationship), set an user's email ID as follows:
For example, assuming you have the [User and Email data models from the previous chapter](../relationships/page.mdx#one-to-one-relationship), set a user's email ID as follows:
export const hasOneHighlights = [
["4", "email", "The ID of the email that the user has."],
@@ -34,7 +34,7 @@ A one-to-one relationship indicates that one record of a data model belongs to o
To define a one-to-one relationship, create relationship properties in the data models using the following methods:
1. `hasOne`: indicates that the model has one record of the specified model.
1. `hasOne`: indicates that the model has one records of the specified model.
2. `belongsTo`: indicates that the model belongs to one record of the specified model.
For example:
@@ -8,7 +8,7 @@ In this chapter, you'll learn how to add custom columns to a link definition and
## How to Add Custom Columns to a Link's Table?
The `defineLink` function used to define a link accepts a third paramter, which is an object of options.
The `defineLink` function used to define a link accepts a third parameter, which is an object of options.
To add custom columns to a link's table, pass in the third parameter of `defineLink` a `database` property:
@@ -14,7 +14,7 @@ So, resources in the module, such as services or loaders, can only resolve other
### List of Registered Resources
Find a list of resources or dependencies registered in a module's container in [this Learning Resources reference](!resoures!/medusa-container-resources).
Find a list of resources or dependencies registered in a module's container in [this Development Resources reference](!resources!/medusa-container-resources).
---
@@ -161,9 +161,9 @@ Refer to [MikroORM's reference](https://mikro-orm.io/api/5.9/knex/class/EntityMa
### Why Wrap a Transactional Method
The variables in the transactional method (for example, `update_`) hold values that are uncomitted to the database. They're only committed once the method finishes execution.
The variables in the transactional method (for example, `update_`) hold values that are uncommitted to the database. They're only committed once the method finishes execution.
So, if in your method you perform database operations, then use their result to perform other actions, such as connect to a third-party service, you'll be working with uncommitted data.
So, if in your method you perform database operations, then use their result to perform other actions, such as connecting to a third-party service, you'll be working with uncommitted data.
By placing only the database operations in a method that has the `InjectTransactionManager` and using it in a wrapper method, the wrapper method receives the committed result of the transactional method.
@@ -201,7 +201,7 @@ In this case, only the `update_` method is wrapped in a transaction. The returne
### Using Methods in Transactional Methods
If your transactional method uses other methods that accept a Medusa context, pass the shared context to those method.
If your transactional method uses other methods that accept a Medusa context, pass the shared context to those methods.
For example:
@@ -8,7 +8,7 @@ This chapter lists constraints to keep in mind when creating a service.
## Use Async Methods
Medusa wraps service method executions to inject useful context or transactions. However, since Medusa can't detect whether the method is asynchronus, it always executes methods in the wrapper with the `await` keyword.
Medusa wraps service method executions to inject useful context or transactions. However, since Medusa can't detect whether the method is asynchronous, it always executes methods in the wrapper with the `await` keyword.
For example, if you have a synchronous `getMessage` method, and you use it other resources like workflows, Medusa executes it as an async method:
@@ -6,7 +6,7 @@ export const metadata = {
In the previous chapters, you got a brief introduction to Medusas basic concepts. However, to build a custom commerce application, you need a deeper understanding of how you utilize these concepts for your business use case.
The next chapters dive deeper into each concept, and explores Medusa's architecture. By the end of these chapters, youll be able to:
The next chapters dive deeper into each concept, and explore Medusa's architecture. By the end of these chapters, youll be able to:
- Expose API routes with control over authentication.
- Build sophisticated business logic in modules and manage links between them.
@@ -41,7 +41,7 @@ const workflow = createWorkflow(
)
```
Instead of invoking the workflow, passing it the container, you use its `runAsStep` method and pass it an object as a parameter.
Instead of invoking the workflow and passing it the container, you use its `runAsStep` method and pass it an object as a parameter.
The object has an `input` property to pass input to the workflow.
@@ -6,7 +6,7 @@ export const metadata = {
In this chapter, you'll learn how to manipulate variables in a workflow using the transform utility.
## Why Variable Manipulation isn't Allowed in Worflows?
## Why Variable Manipulation isn't Allowed in Workflows?
Medusa creates an internal representation of the workflow definition you pass to `createWorkflow` to track and store its steps.
@@ -29,7 +29,7 @@ const str1 = step1()
const str2 = step2()
```
To concatinate the strings, you create a new variable `str3` using the `transform` function:
To concatenate the strings, you create a new variable `str3` using the `transform` function:
export const highlights = [
["14", "str3", "Holds the result returned by `transform`'s second parameter function."],