docs: docs for next release (#13621)

* docs: docs for next release

* changes to opentelemetry dependencies

* document plugin env variables

* document admin changes

* fix vale error

* add version notes

* document campaign budget updates

* document campaign changes in user guide

* document chages in cluster mode cli

* documented once promotion allocation

* document multiple API keys support
This commit is contained in:
Shahed Nasser
2025-10-21 10:32:08 +03:00
committed by GitHub
parent f38f0f9aca
commit ed715813a5
54 changed files with 1621 additions and 252 deletions
@@ -93,7 +93,13 @@ To capture an orders payment:
## Refund Payment
If you've made changes to an order, such as return or exchange items, that resulted in a negative outstanding amount, you can refund a previously-captured payment.
You can refund a payment either partially or in full. This can be done for various reasons, such as when a customer returns an item or if there was an error in the order.
<Note>
Prior to [Medusa v2.11.0](https://github.com/medusajs/medusa/releases/tag/v2.11.0), you were only able to refund a payment after creating a return or making an order change. From Medusa v2.11.0 onwards, you can refund a payment directly from the order details page without needing to create a return or make an order change. If you're unable to refund a payment, contact your technical team to [update your Medusa application](!docs!/learn/update).
</Note>
Refunding the payment triggers its processing with the chosen payment provider, such as Stripe.
@@ -103,21 +109,21 @@ Refunding payments is irreversible.
</Note>
To refund an orders negative outstanding amount:
To refund an order's captured payment:
1. Open the order's details page.
2. Scroll to the Payment section.
3. Click on the <InlineIcon Icon={EllipsisHorizontal} alt="three-dots" /> icon at the end of the payment to refund.
4. Choose "Refund" from the dropdown.
5. In the side window that opens, fill out the following fields:
- **Select payment to refund**: Choose the payment to refund an amount from.
- **Amount**: Enter the amount to refund.
- **Note**: A note that the customer can see in the notification they receive.
- **Refund Reason**: Select a reason for the refund from the dropdown. You can [manage refund reasons in the settings](../../settings/refund-reasons/page.mdx).
- **Note**: Enter a note that the customer can see in the notification they receive.
6. Once youre done, click on the Save button.
Once the payment is refunded, the customer will receive a notification about the refund and you can view the refund as part of the order's activity.
![Refund Payment Form](https://res.cloudinary.com/dza7lstvk/image/upload/v1739550855/User%20Guide/Screenshot_2025-02-14_at_6.34.01_PM_l9evmh.png)
![Refund Payment Form](https://res.cloudinary.com/dza7lstvk/image/upload/v1759995110/User%20Guide/CleanShot_2025-10-09_at_10.31.35_2x_dvbdbp.png)
---
@@ -131,6 +131,6 @@ To cancel a requested return:
## Refund Customer for a Return
If a return causes an outstanding amount, you can see it in the Summary section of an order. To learn how to refund the payment, refer to [this guide](../payments/page.mdx#refund-payment).
If a return causes an outstanding amount, you can see it in the Summary section of an order. Refer to the [Manage Payments guide](../payments/page.mdx#refund-payment) to learn how to refund the customer for the return.
![Outstanding amount in summary](https://res.cloudinary.com/dza7lstvk/image/upload/v1739799808/User%20Guide/Screenshot_2025-02-17_at_3.42.49_PM_cjxgpg.png)
@@ -56,12 +56,22 @@ To create a campaign:
- **Spend**: The total amount that can be discounted by the promotions in the campaign. Once the total amount discounted exceeds the limit, the campaign and its promotions expire. This is not applicable to "Buy X Get Y" or "Free Shipping" promotions.
- If you chose the **Spend** type, select the currency of the limit in the "Currency" field.
- When adding promotions to the campaign later, promotions that discount a fixed amount can only be added if the currency matches the campaign budget's currency.
- In the Limit field, you can set a campaign budget limit based on the type you chose.
- In the **Limit** field, you can set a campaign budget limit based on the type you chose.
- If you chose **Usage**, enter the number of times the promotions in the campaign can be used.
- If you chose **Spend**, enter the total amount that can be discounted by the promotions in the campaign.
- If you chose the **Usage** type, you can optionally set the **Limit usage per** field to apply the limitation for each customer or email.
- If you don't select any condition, the limit is applied globally. For example, if the limit is set to 5, the promotions in the campaign can be used a total of 5 times.
- If you select "Customer", the limit is applied for each customer based on their unique identifier. For example, if the limit is set to 5, each customer can use the promotions in the campaign 5 times.
- If you select "Customer Email", the limit is applied for each customer based on their email address. For example, if the limit is set to 5, each unique email address can use the promotions in the campaign 5 times.
4. Once you're done, click the Create button.
![Create Campaign Form](https://res.cloudinary.com/dza7lstvk/image/upload/v1739953632/User%20Guide/Screenshot_2025-02-19_at_10.27.00_AM_u4w38d.png)
<Note>
The **Limit usage per** field is available from [Medusa Admin v2.11.0](https://github.com/medusajs/medusa/releases/tag/v2.11.0). If you don't see it, request your technical team to [upgrade your Medusa application](!docs!/learn/update).
</Note>
![Create Campaign Form](https://res.cloudinary.com/dza7lstvk/image/upload/v1760349967/User%20Guide/CleanShot_2025-10-13_at_13.05.33_2x_xq5ec5.png)
---
@@ -133,6 +143,23 @@ To edit a campaign's budget usage or spending limit:
---
## Information that Can't be Edited in Campaign
After creating a campaign, you can't edit the following information:
1. The campaign's budget type (usage or spend).
2. The campaign's budget currency (if the type is spend).
3. The campaign's budget "limit usage per" condition (customer or customer email).
If you need to change any of this information, you should either:
1. [Delete the campaign](#delete-campaign).
2. Expire the campaign by [setting an end date in the past](#edit-campaign-details).
Then, create a new campaign with the correct information and [add promotions to it](#manage-promotions-of-campaign).
---
## Manage Promotions of Campaign
From the campaign's details page, you can manage which promotions belong to the campaign.
@@ -77,7 +77,10 @@ If you chose the "Amount off Products" promotion type in the first section, fill
7. In the Maximum Quantity field, set the maximum quantity line-item quantity that the promotion is applied to in the cart.
- For example, if set to `1` and the customer has a line item with quantity two in the cart, the promotion is only applied to one of them.
- This condition is applied on the quantity of every applicable item in the cart. For example, if set to `1` and the customer has two applicable items in the cart, the promotion is applied to one of each of them.
8. In the "What items will the promotion be applied to?" section, you'll specify the items in the cart that the promotion can be applied to. To add a condition, click on the "Add condition" button. For each condition:
8. In the Allocation field, choose how the discount is applied when there are multiple applicable items in the cart:
- **Each**: The discount is applied to each applicable item in the cart.
- **Once**: The discount is applied to a specific number of applicable items in the cart, which is determined by the Maximum Quantity field.
9. In the "What items will the promotion be applied to?" section, you'll specify the items in the cart that the promotion can be applied to. To add a condition, click on the "Add condition" button. For each condition:
- Select the attribute in the first field. This is the attribute that the condition applies to. It can be:
- **Product**: The promotion applies / doesn't apply to the specified product(s).
- **Product Category**: The promotion applies / doesn't apply to the products belonging to the specified categories.
@@ -92,7 +95,7 @@ If you chose the "Amount off Products" promotion type in the first section, fill
- Set the Attribute to Product Category.
- Set the Operator to In.
- Set the Value to the Shirts product category.
9. Once you're done, click Next and move on to the [next step](#step-3-campaign).
10. Once you're done, click Next and move on to the [next step](#step-3-campaign).
![What items will the promotion be applied to section](https://res.cloudinary.com/dza7lstvk/image/upload/v1739898160/User%20Guide/Screenshot_2025-02-18_at_7.02.26_PM_izi1sv.png)
@@ -130,6 +133,12 @@ If you chose the "Amount off Order" promotion type in the first section, fill ou
### c. Percentage off Product
<Note>
If any of the fields are not visible in your admin, contact your technical team to [update your Medusa version](!docs!/learn/update).
</Note>
If you chose the "Percentage off Product" promotion type in the first section, fill out the following in the Details step:
1. For the Method, choose how you want the promotion to be applied:
@@ -158,7 +167,10 @@ If you chose the "Percentage off Product" promotion type in the first section, f
6. In the Promotion Value field, set the amount to be discounted from applicable products when the promotion is applied. The amount is in the currency you chose in the previous section.
7. In the Maximum Quantity field, set the maximum quantity of the applicable that the promotion is applied to in the cart. For example, if set to `1` and the customer has two applicable items in the cart, the promotion is only applied to one of them.
8. In the "What items will the promotion be applied to?" section, you'll specify the items in the cart that the promotion can be applied to. To add a condition, click on the "Add condition" button. For each condition:
8. In the Allocation field, choose how the discount is applied when there are multiple applicable items in the cart:
- **Each**: The discount is applied to each applicable item in the cart.
- **Once**: The discount is applied to a specific number of applicable items in the cart, which is determined by the Maximum Quantity field.
9. In the "What items will the promotion be applied to?" section, you'll specify the items in the cart that the promotion can be applied to. To add a condition, click on the "Add condition" button. For each condition:
- Select the attribute in the first field. This is the attribute that the condition applies to. It can be:
- **Product**: The promotion applies / doesn't apply to the specified product(s).
- **Product Category**: The promotion applies / doesn't apply to the products belonging to the specified categories.
@@ -173,7 +185,7 @@ If you chose the "Percentage off Product" promotion type in the first section, f
- Set the Attribute to Product Category.
- Set the Operator to In.
- Set the Value to the Shirts product category.
9. Once you're done, click Next and move on to the [next step](#step-3-campaign).
10. Once you're done, click Next and move on to the [next step](#step-3-campaign).
![What items will the promotion be applied to section](https://res.cloudinary.com/dza7lstvk/image/upload/v1739898386/User%20Guide/Screenshot_2025-02-18_at_7.06.14_PM_bdi5jv.png)
@@ -332,8 +344,8 @@ In the campaigns section, you can select whether to:
If you selected a new campaign, you need to fill out the following to create a campaign and add the promotion to it:
1. In the Name field, enter the campaign's name.
2. In the Identifier field, enter a custom identifier for the campaign. This is useful if you're associating the campaign with a campaign in an external system, for example.
1. In the **Name** field, enter the campaign's name.
2. In the **Identifier** field, enter a custom identifier for the campaign. This is useful if you're associating the campaign with a campaign in an external system, for example.
3. Optionally enter a description, and start and end dates.
- If a start date is specified, all promotions in the campaign can be used after the specified date.
- If an end date is specified, all promotions in the campaign can't be used after the specified date.
@@ -341,7 +353,17 @@ If you selected a new campaign, you need to fill out the following to create a c
- For Type, you can choose to set the budget either based on:
- **Usage**: How many times the promotions in the campaign can be used. Once the number of times exceed the limit, the campaign and its promotions expire.
- **Spend**: The total amount that can be discounted by the promotions in the campaign. Once the total amount discounted exceeds the limit, the campaign and its promotions expire. This is disabled if you select the "Buy X Get Y" or "Free Shipping" promotion types.
- In the Limit field, enter the budget limit based on the chosen type.
- In the **Limit** field, enter the budget limit based on the chosen type.
- If you chose the **Usage** type, you can optionally set the **Limit usage per** field to apply the limitation for each customer or email.
- If you don't select any condition, the limit is applied globally. For example, if the limit is set to 5, the promotions in the campaign can be used a total of 5 times.
- If you select "Customer", the limit is applied for each customer based on their unique identifier. For example, if the limit is set to 5, each customer can use the promotions in the campaign 5 times.
- If you select "Customer Email", the limit is applied for each customer based on their email address. For example, if the limit is set to 5, each unique email address can use the promotions in the campaign 5 times.
5. Once you're done, click on the Save button.
<Note>
The **Limit usage per** field is available from [Medusa Admin v2.11.0](https://github.com/medusajs/medusa/releases/tag/v2.11.0). If you don't see it, request your technical team to [upgrade your Medusa application](!docs!/learn/update).
</Note>
You can now [manage the promotion](../manage/page.mdx) you created.
@@ -69,6 +69,12 @@ A promotion's status is shown in the Promotions listing page, and in the promoti
## Edit Promotion's Details
<Note>
If any of the fields are not visible in your admin, contact your technical team to [update your Medusa version](!docs!/learn/update).
</Note>
To edit a promotion's general details:
1. Go to the promotion's details page.
@@ -78,8 +84,12 @@ To edit a promotion's general details:
- You can change the promotion's status to either **Draft**, **Active**, or **Inactive**. Inactive is useful if the promotion was originally active but you want to expire it.
- You can edit the promotion's method (whether it's applied manually or automatically) and code.
- Based on the promotion's type, you can change how the amount is discounted, either by a fixed amount or a percentage. You can also change the discounted amount.
- Based on the promotion's type, you can change how the promotion is applied, either on every applicable item or across all items in the cart.
- For example, if your promotion discounts an amount from applicable products in a cart, choosing **Each** applies the discount on each applicable product, whereas **Across** applies the discount across all applicable products.
- Based on the promotion's type, you can change how the promotion is applied:
- **Each**: The discount is applied to each applicable item in the cart.
- **Across**: The discount is applied across all applicable items in the cart.
- **Once**: The discount is applied to a specific number of applicable items in the cart, which is determined by the Maximum Quantity field.
- Based on the promotion's type, some of the above options may not be available. For example, for "Amount off order", only "Across" is available.
- You can edit the maximum quantity of applicable items that the promotion is applied to in the cart.
5. Once you're done, click the Save button.
![Edit Promotion Form](https://res.cloudinary.com/dza7lstvk/image/upload/v1739951499/User%20Guide/Screenshot_2025-02-19_at_9.51.26_AM_zylmig.png)
@@ -44,7 +44,13 @@ Here, you can see a list of all the secret API keys for the logged-in user. You
## Create Secret API Key
When you create a secret API key, you create it for the currently logged-in user. A user can have one active secret key at a time. So, if you already have one, you must [revoke it](#revoke-secret-api-key) before creating a new one.
When you create a secret API key, you create it for the currently logged-in user.
<Note>
Prior to [Medusa v2.11.0], users could only have one active secret API key at a time. To create a new secret API key, you had to [revoke](#revoke-secret-api-key) the existing key first. If you can't create multiple secret API keys, request your technical team to [upgrade your Medusa application](!docs!/learn/update).
</Note>
To create a new secret API key for the currently logged-in user:
@@ -52,7 +52,7 @@ To create a stock location:
To view the details of a location:
1. Go to Settings → Locations.
2. Click on "View details" in the header of the location's section.
2. Click on the location you want to view.
This opens the location's details page where you can also manage the location.
@@ -19,19 +19,31 @@ export const metadata = {
In the Locations & Shipping settings, you can manage stock locations and their shipping options, and other shipping-related configurations, such as shipping profiles.
## Overview
### Stock Locations
A stock location:
- Is associated with sales channels. Orders from these sales channels are fulfilled from this location.
- Has fulfillment providers that can be used in that location. For example, you can use UPS in the United States and DHL in Europe.
- Has shipping and pick up modes that you can add shipping options to. These are the shipping options used to fulfill items from this stock location.
### Shipping Profiles
A shipping profile groups similar products that require a different way of fulfillment. For example, fragile products are fulfilled differently than normal products. You can then provide shipping options specific for products that belong to the Fragile shipping profile.
### Shipping Option Types
A shipping option type groups shipping options with similar characteristics. For example, you can group all express shipping options together and apply a promotion to all of them at once.
---
## View Location & Shipping Settings
To view location and shipping settings, go to Settings → Locations & Shipping.
![Location & shipping settings](https://res.cloudinary.com/dza7lstvk/image/upload/v1756389687/User%20Guide/CleanShot_2025-08-28_at_17.00.53_2x_kymfeh.png)
![Location & shipping settings](https://res.cloudinary.com/dza7lstvk/image/upload/v1759995534/User%20Guide/CleanShot_2025-10-09_at_10.38.39_2x_eqsrxl.png)
---
@@ -27,6 +27,7 @@ You can also go back to the main sidebar by clicking the <InlineIcon Icon={Arrow
- [Manage Regions](./regions/page.mdx)
- [Manage Tax Regions](./tax-regions/page.mdx)
- [Manage Return Reasons](./return-reasons/page.mdx)
- [Manage Refund Reasons](./refund-reasons/page.mdx)
- [Manage Sales Channels](./sales-channels/page.mdx)
- [Manage Product Types](./product-types/page.mdx)
- [Manage Product Tags](./product-tags/page.mdx)
@@ -0,0 +1,88 @@
---
sidebar_position: 5
sidebar_label: "Manage Refund Reasons"
tags:
- user guide
- order
products:
- order
---
import { EllipsisHorizontal } from "@medusajs/icons"
export const metadata = {
title: `Manage Refund Reasons in Medusa Admin`,
}
# {metadata.title}
In this guide, youll learn what refund reasons are and how to manage them.
<Note>
Refund reason management is available from [Medusa Admin v2.11.0](https://github.com/medusajs/medusa/releases/tag/v2.11.0). If you don't see the Refund Reasons option in your Medusa Admin, request your technical team to [upgrade your Medusa application](!docs!/learn/update).
</Note>
## What's a Refund Reason?
A refund reason is a predefined reason for refunding an order. It helps you categorize and track refunds in your store.
When [processing a refund](../../orders/payments/page.mdx#refund-payment), you can select a reason from the list of refund reasons you have set up.
---
## View Refund Reasons
To view refund reasons in your store, go to Settings → Refund Reasons. Here, you can see a list of all the refund reasons you have set up in your store. You can also search, filter, and sort the refund reasons to find the one you are looking for.
Medusa adds some default refund reasons to your store. You can use or [delete](#delete-a-refund-reason) them.
![Refund reasons list](https://res.cloudinary.com/dza7lstvk/image/upload/v1759994483/User%20Guide/CleanShot_2025-10-09_at_10.20.53_2x_sowoag.png)
---
## Create Refund Reason
To create a refund reason:
1. Go to Settings → Refund Reasons.
2. Click the Create button in the main section's header.
3. In the form that opens:
- **Label**: Enter what is shown to customers or admin users.
- **Code**: Enter a unique identifier for the reason that's used internally. It's recommended to use only lowercase letters and underscores (`_`). For example, `pricing_error`.
- **Description**: Enter an optional description for the refund reason.
4. Once done, click the Save button.
![Create refund reason form](https://res.cloudinary.com/dza7lstvk/image/upload/v1759994670/User%20Guide/CleanShot_2025-10-09_at_10.24.22_2x_mmkr8z.png)
---
## Edit a Refund Reason
To edit a refund reason:
1. Go to Settings → Refund Reasons.
2. Find the refund reason to edit and click the <InlineIcon Icon={EllipsisHorizontal} alt="three-dots" /> icon in its row.
3. Choose Edit from the dropdown.
4. In the side window that opens, you can edit the refund reason's code, label, and description.
5. Once you're done, click the Save button.
![Edit refund reason form](https://res.cloudinary.com/dza7lstvk/image/upload/v1759994731/User%20Guide/CleanShot_2025-10-09_at_10.25.22_2x_hyo1j3.png)
---
## Delete a Refund Reason
<Note type="warning">
Deleting a refund reason is irreversible.
</Note>
To delete a refund reason:
1. Go to Settings → Refund Reasons.
2. Find the refund reason to delete and click the <InlineIcon Icon={EllipsisHorizontal} alt="three-dots" /> icon in its row.
3. Choose Delete from the dropdown.
4. Confirm deleting the refund reason by clicking the Delete button in the pop-up.
@@ -18,6 +18,18 @@ To learn how to change the language, refer to the [Manage Profile](../../setting
---
## Right-to-Left (RTL) Language Support
<Note>
Right-to-left (RTL) language support is available from [Medusa Admin v2.11.0](https://github.com/medusajs/medusa/releases/tag/v2.11.0). If your dashboard doesn't adjust to RTL languages, request your technical team to [upgrade your Medusa application](!docs!/learn/update).
</Note>
When you change the language to a right-to-left (RTL) language, such as Arabic or Hebrew, the Medusa Admin interface automatically adjusts to support RTL text direction. This includes aligning text and UI elements appropriately for better readability and user experience.
---
## Official Languages
- English