diff --git a/docs/content/admin/onboarding.md b/docs/content/admin/onboarding.md index fca60fcff6914..ccfe81572d7e0 100644 --- a/docs/content/admin/onboarding.md +++ b/docs/content/admin/onboarding.md @@ -1190,7 +1190,7 @@ npx typeorm migration:create src/migrations/CreateOnboarding This will create a file in the `src/migrations` directory with the name formatted as `-CreateOnboarding.ts`. -In that file, import the `genereteEntityId` utility method at the top of the file: +In that file, import the `generateEntityId` utility method at the top of the file: ```ts import { generateEntityId } from "@medusajs/utils" diff --git a/docs/content/admin/quickstart.mdx b/docs/content/admin/quickstart.mdx index 4b19ae46430d9..845498a6e27bb 100644 --- a/docs/content/admin/quickstart.mdx +++ b/docs/content/admin/quickstart.mdx @@ -170,7 +170,7 @@ You can add the following options to the `medusa-admin build` command: - `--backend` or `-b`: a string specifying the URL of the Medusa backend. This can be useful with the `--deployment` option. The default here is the value of the environment variable `MEDUSA_BACKEND_URL`. For example, `medusa-admin build --deployment --backend example.com` - `--out-dir` or `-o`: a string specifying a custom path to output the build files to. By default, it will be the `build` directory. For example, `medusa-admin --deployment --out-dir public`. - `--include` or `-i`: a list of strings of paths to files you want to include in the build output. It can be useful if you want to inject files that are relevant to your external hosting, such as adding a `200.html` file that is needed for redirects on Surge. For example, `medusa-admin --deployment --include 200.html` -- `--include-dist` or `-d`: a string specifying the path to copy the files specified in `--include` to. By default, the files are coopied to the root of the build directory. You can use this option to change that. For example, `medusa-admin --deployment --include 200.html --include-dist static`. +- `--include-dist` or `-d`: a string specifying the path to copy the files specified in `--include` to. By default, the files are copied to the root of the build directory. You can use this option to change that. For example, `medusa-admin --deployment --include 200.html --include-dist static`. --- diff --git a/docs/content/cli/reference.mdx b/docs/content/cli/reference.mdx index 278d51a884258..0881ecc8a3d9a 100644 --- a/docs/content/cli/reference.mdx +++ b/docs/content/cli/reference.mdx @@ -205,7 +205,7 @@ medusa user --email [--password ] | Name | Description | | --- | --- | | `-e `, `--email ` | The email to create a user with. (required) | -| `-p `, `--password ` | The password to use with the user. If not included, the user will not have a password. | +| `-p `, `--password ` | The password to use with the user. If not included, the user will not have a password. | | `-i `, `--id ` | The user’s ID. By default it is automatically generated. | | `--invite` | Whether to create an invite instead of a user. When using this option, you don't need to specify a password. If ran successfully, you'll receive the invite token in the output. | diff --git a/docs/content/create-medusa-app.mdx b/docs/content/create-medusa-app.mdx index d6ca4519ea174..73e3f4be07dfd 100644 --- a/docs/content/create-medusa-app.mdx +++ b/docs/content/create-medusa-app.mdx @@ -95,7 +95,7 @@ You’ll first be asked to enter the name of your project, which is used to crea ### (Optional) Step 2: Specify PostgreSQL credentials -By default, this command will try to use the default PostgreSQL credentials to connect to your PostgreSQL server. If they don't work, you'll be prompted to enter your PostgreSQL database and passowrd. If they work, you can move ahead to the next step. +By default, this command will try to use the default PostgreSQL credentials to connect to your PostgreSQL server. If they don't work, you'll be prompted to enter your PostgreSQL database and password. If they work, you can move ahead to the next step. These credentials will be used to create a database during this setup and configure your Medusa backend to connect to that database. diff --git a/docs/content/deployments/server/deploying-on-microtica.md b/docs/content/deployments/server/deploying-on-microtica.md index 986f8d340eddc..ddd54a9a285f2 100644 --- a/docs/content/deployments/server/deploying-on-microtica.md +++ b/docs/content/deployments/server/deploying-on-microtica.md @@ -68,7 +68,7 @@ If you already have a Medusa backend repository that you want to deploy then you ### Step 2: Configure the Template -The second step provides customization posibilities by configuring environment variables. +The second step provides customization possibilities by configuring environment variables. Add an application name and the admin credentials that will be used to create an initial admin user with which you can later sign in to your Medusa Admin. diff --git a/docs/content/development/endpoints/create.md b/docs/content/development/endpoints/create.md index dd9df4ee2b569..f089f546ed58b 100644 --- a/docs/content/development/endpoints/create.md +++ b/docs/content/development/endpoints/create.md @@ -254,7 +254,7 @@ The `productService` has a `count` method that returns a Promise. This Promi Custom endpoints must be transpiled and moved to the `dist` directory before you can start consuming them. When you run your backend using the `medusa develop` command, it watches the files under `src` for any changes, then triggers the `build` command and restarts the server. -The build isn't triggerd though when the backend first starts running. So, make sure to run the `build` command before starting the backend: +The build isn't triggered though when the backend first starts running. So, make sure to run the `build` command before starting the backend: ```bash npm2yarn npm run build diff --git a/docs/content/development/entities/overview.mdx b/docs/content/development/entities/overview.mdx index 2f5b7af9f7af9..c278155f68633 100644 --- a/docs/content/development/entities/overview.mdx +++ b/docs/content/development/entities/overview.mdx @@ -33,7 +33,7 @@ Most entities in Medusa have a `metadata` attribute. This attribute is an object Some example use cases for the `metadata` attribute include: -- Store an external ID of an entity related to a third-party integartion. +- Store an external ID of an entity related to a third-party integration. - Store product customization such as personalization options. ### Add and Update Metadata diff --git a/docs/content/development/events/create-subscriber.md b/docs/content/development/events/create-subscriber.md index 9ae74456b90f4..8216818b0462f 100644 --- a/docs/content/development/events/create-subscriber.md +++ b/docs/content/development/events/create-subscriber.md @@ -9,7 +9,7 @@ In this document, you’ll learn how to create a [Subscriber](./subscribers.mdx) ## Implementation -A subscriber is a TypeScript or JavaScript file that is created under `src/subscribers`. Its file name, by convension, should be the class name of the subscriber without the word `Subscriber`. For example, if the subscriber is `HelloSubscriber`, the file name should be `hello.ts`. +A subscriber is a TypeScript or JavaScript file that is created under `src/subscribers`. Its file name, by convention, should be the class name of the subscriber without the word `Subscriber`. For example, if the subscriber is `HelloSubscriber`, the file name should be `hello.ts`. After creating the file under `src/subscribers`, in the constructor of your subscriber, listen to events using `eventBusService.subscribe` , where `eventBusService` is a service injected into your subscriber’s constructor. diff --git a/docs/content/development/fundamentals/dependency-injection.md b/docs/content/development/fundamentals/dependency-injection.md index a0c67856edf41..52bdbf8a75037 100644 --- a/docs/content/development/fundamentals/dependency-injection.md +++ b/docs/content/development/fundamentals/dependency-injection.md @@ -1,5 +1,5 @@ --- -description: 'Learn what the dependency container is and how to use it in Medusa. Learn also what dependency injection is, and what the resources regsitered and their names are.' +description: 'Learn what the dependency container is and how to use it in Medusa. Learn also what dependency injection is, and what the resources registered and their names are.' --- # Dependency Container and Injection diff --git a/docs/content/development/idempotency-key/use-service.md b/docs/content/development/idempotency-key/use-service.md index 52f8eff615478..8b8c401a4e29a 100644 --- a/docs/content/development/idempotency-key/use-service.md +++ b/docs/content/development/idempotency-key/use-service.md @@ -39,7 +39,7 @@ The method requires as a parameter an object having the following properties: The method handles generating the idempotency key value and saving the idempotency key with its details in the database. It returns the full idempotency key object. -Alternativaly, you can use the `initializeRequest` method that allows you to retrieve an idempotency key based on the value passed in the `Idempotency-Key` header of the request if it exists, or create a new key otherwise. For example: +Alternatively, you can use the `initializeRequest` method that allows you to retrieve an idempotency key based on the value passed in the `Idempotency-Key` header of the request if it exists, or create a new key otherwise. For example: ```ts router.post("/custom-route", async (req, res) => { diff --git a/docs/content/development/notification/overview.mdx b/docs/content/development/notification/overview.mdx index d3f1bfe8e9ea7..b138fe36cb168 100644 --- a/docs/content/development/notification/overview.mdx +++ b/docs/content/development/notification/overview.mdx @@ -1,5 +1,5 @@ --- -description: 'Learn about the Notificaiton architecture in Medusa and the automation flow. The Notification Architecture is made up of the Notification Provider and Notification.' +description: 'Learn about the Notification architecture in Medusa and the automation flow. The Notification Architecture is made up of the Notification Provider and Notification.' --- import DocCard from '@theme/DocCard'; @@ -88,7 +88,7 @@ An example of a flow that can be implemented using Medusa's Notification API is - A customer requests a return by sending a `POST` request to the `/store/returns` endpoint. - The Notification Provider listens to the `order.return_requested` event and sends an email to the customer with a return invoice and return label generated by the Fulfillment Provider. -- The customer returns the items triggering the `return.recieved` event. +- The customer returns the items triggering the `return.received` event. - The Notification Provider listens to the `return.received` event and sends an email to the customer with confirmation that their items have been received and that a refund has been issued. --- diff --git a/docs/content/development/plugins/overview.mdx b/docs/content/development/plugins/overview.mdx index c2dbc8349eba0..418fb0bca4f65 100644 --- a/docs/content/development/plugins/overview.mdx +++ b/docs/content/development/plugins/overview.mdx @@ -11,7 +11,7 @@ In this document, you’ll get an overview of plugins in Medusa, where to find t ## Overview -Medusa was built with flexibility and extendibility in mind. All different components and functionalities in Medusa are built with an abstraction layer that gives developers the freedom to choose what services they want to use or how to implement a certain component in their ecommerce store. +Medusa was built with flexibility and extendability in mind. All different components and functionalities in Medusa are built with an abstraction layer that gives developers the freedom to choose what services they want to use or how to implement a certain component in their ecommerce store. Developers can use plugins to take advantage of this abstraction, flexibility, and extendibility. Plugins allow developers to implement custom features or integrate third-party services into Medusa. diff --git a/docs/content/development/search/overview.mdx b/docs/content/development/search/overview.mdx index 592f070078b9c..f85287c2f0353 100644 --- a/docs/content/development/search/overview.mdx +++ b/docs/content/development/search/overview.mdx @@ -19,7 +19,7 @@ Using the [dependency container and injection](../fundamentals/dependency-inject Medusa provides official plugins that you can install and use in your Medusa backend. Check out available search plugins [here](../../plugins/search/index.mdx). -### Heirarchy of Search Services +### Hierarchy of Search Services Medusa provides a default search service that doesn’t actually perform any indexing or searching, but acts like a placeholder search service. Only one search service is registered in the dependency container under the `searchService` name. diff --git a/docs/content/modules/discounts/storefront/use-discounts-in-checkout.mdx b/docs/content/modules/discounts/storefront/use-discounts-in-checkout.mdx index 4a5115f00521d..f9f206ee239c1 100644 --- a/docs/content/modules/discounts/storefront/use-discounts-in-checkout.mdx +++ b/docs/content/modules/discounts/storefront/use-discounts-in-checkout.mdx @@ -158,7 +158,7 @@ In case the customer enters an invalid discount or the discount cannot be applie ## Display Discount Details -After the customer enters a discount code and it is applied to the cart, you can display the discount details to the customer. This shows the customer how much they benefitted from the discount. +After the customer enters a discount code and it is applied to the cart, you can display the discount details to the customer. This shows the customer how much they benefited from the discount. The previous request returns the full cart object with different fields that can be used to display the discount details depending on the discount type. diff --git a/docs/content/modules/multiwarehouse/stock-location-module.md b/docs/content/modules/multiwarehouse/stock-location-module.md index 8eb795bc3b0ed..9db483528fc67 100644 --- a/docs/content/modules/multiwarehouse/stock-location-module.md +++ b/docs/content/modules/multiwarehouse/stock-location-module.md @@ -22,7 +22,7 @@ The `StockLocation` entity represents a stock location. It has minimal attribute ## StockLocationAddress Entity -The `StockLocationAddress` is an entitiy that contains address-related fields, such as `city` or `country_code`. +The `StockLocationAddress` is an entity that contains address-related fields, such as `city` or `country_code`. The `StockLocationAddress` entity belongs to the `StockLocation` entity. It is used to store the address details of a stock location. diff --git a/docs/content/modules/orders/admin/manage-draft-orders.mdx b/docs/content/modules/orders/admin/manage-draft-orders.mdx index af3db2b2f76f0..4a8de2f37eb79 100644 --- a/docs/content/modules/orders/admin/manage-draft-orders.mdx +++ b/docs/content/modules/orders/admin/manage-draft-orders.mdx @@ -24,7 +24,7 @@ You want to add or use the following admin functionalities: --- -## Prerequisities +## Prerequisites ### Medusa Components diff --git a/docs/content/modules/orders/admin/manage-orders.mdx b/docs/content/modules/orders/admin/manage-orders.mdx index 8978197ae599d..11ae2ae36b62b 100644 --- a/docs/content/modules/orders/admin/manage-orders.mdx +++ b/docs/content/modules/orders/admin/manage-orders.mdx @@ -565,13 +565,13 @@ medusa.admin.orders.capturePayment(orderId) import { useAdminCapturePayment } from "medusa-react" const CapturePayment = () => { - const capturePament = useAdminCapturePayment( + const capturePayment = useAdminCapturePayment( orderId ) // ... const handleCapture = () => { - capturePament.mutate() + capturePayment.mutate() } // ... diff --git a/docs/content/modules/orders/orders.md b/docs/content/modules/orders/orders.md index 1cfb5089ea361..1975f44452624 100644 --- a/docs/content/modules/orders/orders.md +++ b/docs/content/modules/orders/orders.md @@ -182,7 +182,7 @@ Medusa provides the necessary infrastructure and tooling that allows automating The Medusa backend facilitates automating these flows by allowing the customer to submit a [return](https://docs.medusajs.com/api/store#tag/Returns/operation/PostReturns) or [swap](https://docs.medusajs.com/api/store#tag/Swaps/operation/PostSwaps) requests through the store APIs. The merchant can then review and handle these requests. This eliminates the need for the customer to perform the same action through customer support or other means. -You can also integrate these flows within bigger processes that trigger requesting or creating these flows. It can be done through core APIs, [custom endpoints](../../development/endpoints/overview.mdx), or [custom services](../../development/services/overview.mdx). You can also listen to events related to orders such as [Order](../../development/events/events-list.md#order-events) or [Swap](../../development/events/events-list.md#swap-events) events with [subscribers](../../development/events/subscribers.mdx) to perform asynchronus actions. +You can also integrate these flows within bigger processes that trigger requesting or creating these flows. It can be done through core APIs, [custom endpoints](../../development/endpoints/overview.mdx), or [custom services](../../development/services/overview.mdx). You can also listen to events related to orders such as [Order](../../development/events/events-list.md#order-events) or [Swap](../../development/events/events-list.md#swap-events) events with [subscribers](../../development/events/subscribers.mdx) to perform asynchronous actions. --- diff --git a/docs/content/modules/overview.mdx b/docs/content/modules/overview.mdx index fb7297b656a65..9a63f3ca55ef3 100644 --- a/docs/content/modules/overview.mdx +++ b/docs/content/modules/overview.mdx @@ -20,7 +20,7 @@ This section gives an overview of the features available in Medusa. You can lear ### Optimized Shopping and Fulfillment Experience -Medusa provides the necessary features to build a customizable shopping experience for your customers. Medusa also offers features optimized for business operations to manage their orders effeciently. +Medusa provides the necessary features to build a customizable shopping experience for your customers. Medusa also offers features optimized for business operations to manage their orders efficiently. - - Allow orders from both registered and unregisterd customers. + - Allow orders from both registered and unregistered customers. - Allow customers to create return or exchange requests from the storefront for better customer experience. - Assign customers different groups for segmentation and specify different pricing for customer groups. diff --git a/docs/content/modules/price-lists/admin/manage-price-lists.mdx b/docs/content/modules/price-lists/admin/manage-price-lists.mdx index c0c5c0d13ea50..48f4d4cf9b8ac 100644 --- a/docs/content/modules/price-lists/admin/manage-price-lists.mdx +++ b/docs/content/modules/price-lists/admin/manage-price-lists.mdx @@ -1,5 +1,5 @@ --- -description: 'Learn how to implement price list functionalities for admins using the REST APIs. This includes how to create a price list, retriving price list details, managing prices in the price list, and more.' +description: 'Learn how to implement price list functionalities for admins using the REST APIs. This includes how to create a price list, retrieving price list details, managing prices in the price list, and more.' addHowToData: true --- diff --git a/docs/content/modules/products/categories.md b/docs/content/modules/products/categories.md index 8b975322088ef..8d88fe6c3f991 100644 --- a/docs/content/modules/products/categories.md +++ b/docs/content/modules/products/categories.md @@ -82,7 +82,7 @@ The relation is implemented in the Product entity. You can access the product The parent-child hierarchy is represented in the `ProductCategory` entity through the following relations: - You can access the parent of a category by expanding the `parent_category` relation and accessing `category.parent_category`. You can also access the ID of the parent category by accessing `category.parent_category_id`. If a category doesn’t have a parent, the relation and the ID will be `null`. -- You can access the children of a category by expanding the `category_children` relation and accessing `category.category_children`. If a category doesn’t have children, the relation will be an empty array. By default, when expanding this relation in Product Category endpoints, only the immediate child categories are returned. If you want to get the entire heirarchy of child categories, you must pass the `include_descendants_tree` flag to the endpoint setting its value to `true`. +- You can access the children of a category by expanding the `category_children` relation and accessing `category.category_children`. If a category doesn’t have children, the relation will be an empty array. By default, when expanding this relation in Product Category endpoints, only the immediate child categories are returned. If you want to get the entire hierarchy of child categories, you must pass the `include_descendants_tree` flag to the endpoint setting its value to `true`. Aside from these relations, the `mpath` attribute, which is a [Materialized Path](https://typeorm.io/tree-entities#materialized-path-aka-path-enumeration) that is automatically generated by Typeorm, can be used to query deep trees faster. diff --git a/docs/content/modules/users/admin/manage-profile.mdx b/docs/content/modules/users/admin/manage-profile.mdx index 6a4b2b85d18b4..eebe6074ec2d8 100644 --- a/docs/content/modules/users/admin/manage-profile.mdx +++ b/docs/content/modules/users/admin/manage-profile.mdx @@ -1,5 +1,5 @@ --- -description: 'Learn how to implement user profile management features using the admin APIs. This includes user authentication, updating the profile, and reseting the password.' +description: 'Learn how to implement user profile management features using the admin APIs. This includes user authentication, updating the profile, and resetting the password.' addHowToData: true --- diff --git a/docs/content/plugins/analytics/segment.md b/docs/content/plugins/analytics/segment.md index 585679ff06dfe..a2d96fdffc3cc 100644 --- a/docs/content/plugins/analytics/segment.md +++ b/docs/content/plugins/analytics/segment.md @@ -199,7 +199,7 @@ The `SegmentService` also provides the method `identify` to tie a user to their After adding the above subscriber, run your backend again if it isn’t running and create a customer using the REST APIs or one of the Medusa storefronts. If you check the Debugger in your Segment source, you should see a new event “Customer Created” tracked. If you click on it, you’ll see the data you passed to the `track` method. -![The customer created event is recoreded on the Segment source](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000759/Medusa%20Docs/Segment/4LD41xE_qungdw.png) +![The customer created event is recorded on the Segment source](https://res.cloudinary.com/dza7lstvk/image/upload/v1668000759/Medusa%20Docs/Segment/4LD41xE_qungdw.png) --- diff --git a/docs/content/plugins/cms/contentful/index.md b/docs/content/plugins/cms/contentful/index.md index 2561d19d1738e..e52a644d49a7b 100644 --- a/docs/content/plugins/cms/contentful/index.md +++ b/docs/content/plugins/cms/contentful/index.md @@ -183,7 +183,7 @@ Using the Medusa admin, you can add products to your Medusa backend. This will t This section explains how you can establish a two-way sync between Medusa and Contentful. This would ensure that not only is the data updated from the Medusa backend to Contentful, but also ensure the updates are relayed from Contentful to the Medusa backend. -However, to perform this sync, it's required that you deploy your backend so that it can be publically accessible. You can learn how to do that through the [backend deployment](../../../deployments/server/index.mdx) guides. +However, to perform this sync, it's required that you deploy your backend so that it can be publicly accessible. You can learn how to do that through the [backend deployment](../../../deployments/server/index.mdx) guides. Configuring two-way sync requires configuring Webhooks in Contentful. To do that: diff --git a/docs/content/plugins/notifications/slack.md b/docs/content/plugins/notifications/slack.md index 083158b72aa66..7de70dadfb10b 100644 --- a/docs/content/plugins/notifications/slack.md +++ b/docs/content/plugins/notifications/slack.md @@ -20,7 +20,7 @@ The notification contains details about the order including: The plugin registers a subscriber to the `order.placed` event. When an order is placed, the subscriber handler method uses the ID of the order to retrieve order details mentioned above. -Then, the order notificaiton is sent to Slack using Webhooks. So, you'll need to create a Slack App, add it into your workspace, and activate Incoming Webhooks. +Then, the order notification is sent to Slack using Webhooks. So, you'll need to create a Slack App, add it into your workspace, and activate Incoming Webhooks. --- diff --git a/docs/content/recipes/subscriptions.mdx b/docs/content/recipes/subscriptions.mdx index a664641f6c3f5..6cd42ca8e3831 100644 --- a/docs/content/recipes/subscriptions.mdx +++ b/docs/content/recipes/subscriptions.mdx @@ -56,7 +56,7 @@ There are different ways to implement subscriptions in your Medusa backend. This Stripe provides a [subscription payments](https://stripe.com/docs/billing/subscriptions/overview) that allows you to authorize payment on a subscription basis within Stripe. Stripe then handles checking for recurring payments and capturing payment at the specified interval. -This approach allows you to deligate the complications of implementing the subscription logic to Stripe, but does not support using other payment providers. +This approach allows you to delegate the complications of implementing the subscription logic to Stripe, but does not support using other payment providers. Medusa provides a Stripe plugin, however, it doesn't handle subscriptions. You can either use that plugin to add the subscription feature on top of it, or create a custom Stripe Subscription payment provider. diff --git a/docs/content/upgrade-guides/medusa-core/1-3-6.md b/docs/content/upgrade-guides/medusa-core/1-3-6.md index e819d0fddb78d..7e6d0c774cf82 100644 --- a/docs/content/upgrade-guides/medusa-core/1-3-6.md +++ b/docs/content/upgrade-guides/medusa-core/1-3-6.md @@ -8,7 +8,7 @@ Following the addition of feature flags in version v1.3.3 and the addition of th :::note -In version 1.3.6, Sales Channels are available but guraded by [feature flags](../../development/feature-flags/toggle.md). If you don’t have Sales Channels enabled, you don’t need to follow the steps detailed in this migration script. +In version 1.3.6, Sales Channels are available but guarded by [feature flags](../../development/feature-flags/toggle.md). If you don’t have Sales Channels enabled, you don’t need to follow the steps detailed in this migration script. ::: diff --git a/docs/content/upgrade-guides/medusa-core/1-7-1.md b/docs/content/upgrade-guides/medusa-core/1-7-1.md index fede33848e1da..6b3949ee783cd 100644 --- a/docs/content/upgrade-guides/medusa-core/1-7-1.md +++ b/docs/content/upgrade-guides/medusa-core/1-7-1.md @@ -121,7 +121,7 @@ type PaymentContext = { } ``` -So, you can pass the previous `cart` parameter inside the new `context` paramter. +So, you can pass the previous `cart` parameter inside the new `context` parameter. Furthermore, these methods are now expected to return `PaymentSessionResponse`. It is made up of the following properties: diff --git a/docs/content/user-guide/orders/manage.mdx b/docs/content/user-guide/orders/manage.mdx index 102bf9e47b8ed..471194f6b01c0 100644 --- a/docs/content/user-guide/orders/manage.mdx +++ b/docs/content/user-guide/orders/manage.mdx @@ -58,7 +58,7 @@ This feature is only available if you have the Inventory and Stock Locations mod ::: -Item allocation occurs when a customer places an order. The orderd quantity of the items is considered reserved of the underlying product variant's quantity in a stock location. This is only applied for product variants that have "Manage Inventory" enabled. +Item allocation occurs when a customer places an order. The ordered quantity of the items is considered reserved of the underlying product variant's quantity in a stock location. This is only applied for product variants that have "Manage Inventory" enabled. You can manage the item's allocation by managing the location that the item's quantity will be reserved from.