diff --git a/www/apps/book/public/llms-full.txt b/www/apps/book/public/llms-full.txt
index 67fb9d64c6..baccd30e18 100644
--- a/www/apps/book/public/llms-full.txt
+++ b/www/apps/book/public/llms-full.txt
@@ -27808,6 +27808,14 @@ A region’s price preference’s `is_tax_inclusive`'s value takes higher preced
- the selected price belongs to the region;
- and the region has a price preference
+***
+
+## Tax-Inclusive Pricing with Promotions
+
+When you enable tax-inclusive prices for regions or currencies, this can impact how promotions are applied to the cart. So, it's recommended to enable tax-inclusiveness for promotions as well.
+
+Learn more in the [Tax-Inclusive Promotions](https://docs.medusajs.com/Users/shahednasser/medusa/www/apps/resources/app/commerce-modules/promotion/promotion-taxes/index.html.md) guide.
+
# Calculate Product Variant Price with Taxes
@@ -28973,6 +28981,7 @@ export interface AddItemAdjustmentAction {
amount: number
code: string
description?: string
+ is_tax_inclusive?: boolean
}
```
@@ -29613,6 +29622,142 @@ Learn more about workflows in [this documentation](https://docs.medusajs.com/doc
***
+# Tax-Inclusive Promotions
+
+In this guide, you’ll learn how taxes are applied to promotions in a cart.
+
+This feature is available from [Medusa v2.8.5](https://github.com/medusajs/medusa/releases/tag/v2.8.5).
+
+## What are Tax-Inclusive Promotions?
+
+By default, promotions are tax-exclusive, meaning that the discount amount is applied as-is to the cart before taxes are calculated and applied to the cart total.
+
+A tax-inclusive promotion is a promotion for which taxes are calculated from the discount amount entered by the merchant.
+
+When a promotion is tax-inclusive, the discount amount is reduced by the calculated tax amount based on the [tax region's rate](https://docs.medusajs.com/Users/shahednasser/medusa/www/apps/resources/app/commerce-modules/tax/tax-region/index.html.md). The reduced discount amount is then applied to the cart total.
+
+Tax-inclusiveness doesn't apply to Buy X Get Y promotions.
+
+### When to Use Tax-Inclusive Promotions
+
+Tax-inclusive promotions are most useful when using [tax-inclusive prices](https://docs.medusajs.com/Users/shahednasser/medusa/www/apps/resources/app/commerce-modules/pricing/tax-inclusive-pricing/index.html.md) for items in the cart.
+
+In this scenario, Medusa applies taxes consistently across the cart, ensuring that the total price reflects the taxes and promotions correctly.
+
+You can see this in action in the [examples below](#tax-inclusiveness-examples).
+
+***
+
+## What Makes a Promotion Tax-Inclusive?
+
+The [Promotion data model](https://docs.medusajs.com/references/promotion/models/Promotion/index.html.md) has an `is_tax_inclusive` property that determines whether the promotion is tax-inclusive.
+
+If `is_tax_inclusive` is disabled (which is the default), the promotion's discount amount will be applied as-is to the cart, before taxes are calculated. See an example in the [Tax-Exclusive Promotion Example](#tax-exclusive-promotion-example) section.
+
+If `is_tax_inclusive` is enabled, the promotion's discount amount will first be reduced by the calculated tax amount (based on the [tax region's rate](https://docs.medusajs.com/Users/shahednasser/medusa/www/apps/resources/app/commerce-modules/tax/tax-region/index.html.md)). The reduced discount amount is then applied to the cart total. See an example in the [Tax-Inclusive Promotion Example](#tax-inclusive-promotion-example) section.
+
+***
+
+## How to Set a Promotion as Tax-Inclusive
+
+You can enable tax-inclusiveness for a promotion when [creating it in the Medusa Admin](https://docs.medusajs.com/user-guide/promotions/create/index.html.md).
+
+You can set the `is_tax_inclusive` property when creating a promotion by using either the [Promotion workflows](https://docs.medusajs.com/Users/shahednasser/medusa/www/apps/resources/app/commerce-modules/promotion/workflows/index.html.md) or the [Promotion Module's service](https://docs.medusajs.com/references/promotion/index.html.md).
+
+For most use cases, it's recommended to use [workflows](https://docs.medusajs.com/docs/learn/fundamentals/workflows/index.html.md) instead of directly using the module's service, as they implement the necessary rollback mechanisms in case of errors.
+
+For example, if you're creating a promotion with the [createPromotionsWorkflow](https://docs.medusajs.com/references/medusa-workflows/createPromotionsWorkflow/index.html.md) in an API route:
+
+```ts highlights={[["17"]]}
+import type {
+ MedusaRequest,
+ MedusaResponse,
+} from "@medusajs/framework/http"
+import { createPromotionsWorkflow } from "@medusajs/medusa/core-flows"
+
+export async function POST(
+ req: MedusaRequest,
+ res: MedusaResponse
+) {
+ const { result } = await createPromotionsWorkflow(req.scope)
+ .run({
+ input: {
+ promotionsData: [{
+ code: "10OFF",
+ // ...
+ is_tax_inclusive: true,
+ }],
+ }
+ })
+
+ res.send(result)
+}
+```
+
+In the above example, you set the `is_tax_inclusive` property to `true` when creating the promotion, making it tax-inclusive.
+
+### Updating a Promotion's Tax-Inclusiveness
+
+A promotion's tax-inclusiveness cannot be updated after it has been created. If you need to change a promotion's tax-inclusiveness, you must delete the existing promotion and create a new one with the desired `is_tax_inclusive` value.
+
+***
+
+## Tax-Inclusiveness Examples
+
+The following sections provide examples of how tax-inclusive promotions work in different scenarios, including both tax-exclusive and tax-inclusive promotions.
+
+These examples will help you understand how tax-inclusive promotions affect the cart total, allowing you to decide when to use them effectively.
+
+### Tax-Exclusive Promotion Example
+
+Consider the following scenario:
+
+- A tax-exclusive promotion gives a `$10` discount on the cart's total.
+- The cart's tax region has a `25%` tax rate.
+- The cart total before applying the promotion is `$100`.
+- [The prices in the cart's tax region are tax-exclusive](https://docs.medusajs.com/Users/shahednasser/medusa/www/apps/resources/app/commerce-modules/pricing/tax-inclusive-pricing/index.html.md).
+
+The result:
+
+1. Apply `$10` discount to cart total: `$100` - `$10` = `$90`
+2. Calculate tax on discounted total: `$90` x `25%` = `$22.50`
+3. Final total: `$90` + `$22.50` = `$112.50`
+
+### Tax-Inclusive Promotion Example
+
+Consider the following scenario:
+
+- A tax-inclusive promotion gives a `$10` discount on the cart's total.
+- The cart's tax region has a `25%` tax rate.
+- The cart total before applying the promotion is `$100`.
+- [The prices in the cart's tax region are tax-exclusive](https://docs.medusajs.com/Users/shahednasser/medusa/www/apps/resources/app/commerce-modules/pricing/tax-inclusive-pricing/index.html.md).
+
+The result:
+
+1. Calculate actual discount (removing tax): `$10` ÷ `1.25` = `$8`
+2. Apply discount to cart total: `$100` - `$8` = `$92`
+3. Calculate tax on discounted total: `$92` x `25%` = `$23`
+4. Final total: `$92` + `$23` = `$115`
+
+### Tax-Inclusive Promotions with Tax-Inclusive Prices
+
+Consider the following scenario:
+
+- A tax-inclusive promotion gives a `$10` discount on the cart's total.
+- The cart's tax region has a `25%` tax rate.
+- The cart total before applying the promotion is `$100`.
+- [The prices in the cart's tax region are tax-inclusive](https://docs.medusajs.com/Users/shahednasser/medusa/www/apps/resources/app/commerce-modules/pricing/tax-inclusive-pricing/index.html.md).
+
+The result:
+
+1. Calculate actual discount (removing tax): `$10` ÷ `1.25` = `$8`
+2. Calculate cart total without tax: `$100` ÷ `1.25` = `$80`
+3. Apply discount to cart total without tax: `$80` - `$8` = `$72`
+4. Add tax back to total: `$72` x `1.25` = `$90`
+
+The final total is `$90`, which correctly applies both the tax-inclusive promotion and tax-inclusive pricing.
+
+
# Links between Region Module and Other Modules
This document showcases the module links defined between the Region Module and other Commerce Modules.
diff --git a/www/apps/resources/app/commerce-modules/pricing/tax-inclusive-pricing/page.mdx b/www/apps/resources/app/commerce-modules/pricing/tax-inclusive-pricing/page.mdx
index 2d3d379599..822ebefdce 100644
--- a/www/apps/resources/app/commerce-modules/pricing/tax-inclusive-pricing/page.mdx
+++ b/www/apps/resources/app/commerce-modules/pricing/tax-inclusive-pricing/page.mdx
@@ -76,3 +76,11 @@ A region’s price preference’s `is_tax_inclusive`'s value takes higher preced
- both the `region_id` and `currency_code` are provided in the calculation context;
- the selected price belongs to the region;
- and the region has a price preference
+
+---
+
+## Tax-Inclusive Pricing with Promotions
+
+When you enable tax-inclusive prices for regions or currencies, this can impact how promotions are applied to the cart. So, it's recommended to enable tax-inclusiveness for promotions as well.
+
+Learn more in the [Tax-Inclusive Promotions](../../promotion/promotion-taxes/page.mdx) guide.
diff --git a/www/apps/resources/app/commerce-modules/promotion/actions/page.mdx b/www/apps/resources/app/commerce-modules/promotion/actions/page.mdx
index 81887ca586..955d8ede4b 100644
--- a/www/apps/resources/app/commerce-modules/promotion/actions/page.mdx
+++ b/www/apps/resources/app/commerce-modules/promotion/actions/page.mdx
@@ -29,6 +29,7 @@ export interface AddItemAdjustmentAction {
amount: number
code: string
description?: string
+ is_tax_inclusive?: boolean
}
```
diff --git a/www/apps/resources/app/commerce-modules/promotion/promotion-taxes/page.mdx b/www/apps/resources/app/commerce-modules/promotion/promotion-taxes/page.mdx
new file mode 100644
index 0000000000..33c6ac6805
--- /dev/null
+++ b/www/apps/resources/app/commerce-modules/promotion/promotion-taxes/page.mdx
@@ -0,0 +1,162 @@
+---
+tags:
+ - tax
+product:
+ - cart
+ - tax
+---
+
+export const metadata = {
+ title: `Tax-Inclusive Promotions`,
+}
+
+# {metadata.title}
+
+In this guide, you’ll learn how taxes are applied to promotions in a cart.
+
+
+
+This feature is available from [Medusa v2.8.5](https://github.com/medusajs/medusa/releases/tag/v2.8.5).
+
+
+
+## What are Tax-Inclusive Promotions?
+
+By default, promotions are tax-exclusive, meaning that the discount amount is applied as-is to the cart before taxes are calculated and applied to the cart total.
+
+A tax-inclusive promotion is a promotion for which taxes are calculated from the discount amount entered by the merchant.
+
+When a promotion is tax-inclusive, the discount amount is reduced by the calculated tax amount based on the [tax region's rate](../../tax/tax-region/page.mdx). The reduced discount amount is then applied to the cart total.
+
+
+
+Tax-inclusiveness doesn't apply to Buy X Get Y promotions.
+
+
+
+### When to Use Tax-Inclusive Promotions
+
+Tax-inclusive promotions are most useful when using [tax-inclusive prices](../../pricing/tax-inclusive-pricing/page.mdx) for items in the cart.
+
+In this scenario, Medusa applies taxes consistently across the cart, ensuring that the total price reflects the taxes and promotions correctly.
+
+You can see this in action in the [examples below](#tax-inclusiveness-examples).
+
+---
+
+## What Makes a Promotion Tax-Inclusive?
+
+The [Promotion data model](/references/promotion/models/Promotion) has an `is_tax_inclusive` property that determines whether the promotion is tax-inclusive.
+
+If `is_tax_inclusive` is disabled (which is the default), the promotion's discount amount will be applied as-is to the cart, before taxes are calculated. See an example in the [Tax-Exclusive Promotion Example](#tax-exclusive-promotion-example) section.
+
+If `is_tax_inclusive` is enabled, the promotion's discount amount will first be reduced by the calculated tax amount (based on the [tax region's rate](../../tax/tax-region/page.mdx)). The reduced discount amount is then applied to the cart total. See an example in the [Tax-Inclusive Promotion Example](#tax-inclusive-promotion-example) section.
+
+---
+
+## How to Set a Promotion as Tax-Inclusive
+
+
+
+You can enable tax-inclusiveness for a promotion when [creating it in the Medusa Admin](!user-guide!/promotions/create).
+
+
+
+You can set the `is_tax_inclusive` property when creating a promotion by using either the [Promotion workflows](../workflows/page.mdx) or the [Promotion Module's service](/references/promotion).
+
+
+
+For most use cases, it's recommended to use [workflows](!docs!/learn/fundamentals/workflows) instead of directly using the module's service, as they implement the necessary rollback mechanisms in case of errors.
+
+
+
+For example, if you're creating a promotion with the [createPromotionsWorkflow](/references/medusa-workflows/createPromotionsWorkflow) in an API route:
+
+```ts highlights={[["17"]]}
+import type {
+ MedusaRequest,
+ MedusaResponse,
+} from "@medusajs/framework/http"
+import { createPromotionsWorkflow } from "@medusajs/medusa/core-flows"
+
+export async function POST(
+ req: MedusaRequest,
+ res: MedusaResponse
+) {
+ const { result } = await createPromotionsWorkflow(req.scope)
+ .run({
+ input: {
+ promotionsData: [{
+ code: "10OFF",
+ // ...
+ is_tax_inclusive: true,
+ }],
+ }
+ })
+
+ res.send(result)
+}
+```
+
+In the above example, you set the `is_tax_inclusive` property to `true` when creating the promotion, making it tax-inclusive.
+
+### Updating a Promotion's Tax-Inclusiveness
+
+A promotion's tax-inclusiveness cannot be updated after it has been created. If you need to change a promotion's tax-inclusiveness, you must delete the existing promotion and create a new one with the desired `is_tax_inclusive` value.
+
+---
+
+## Tax-Inclusiveness Examples
+
+The following sections provide examples of how tax-inclusive promotions work in different scenarios, including both tax-exclusive and tax-inclusive promotions.
+
+These examples will help you understand how tax-inclusive promotions affect the cart total, allowing you to decide when to use them effectively.
+
+### Tax-Exclusive Promotion Example
+
+Consider the following scenario:
+
+- A tax-exclusive promotion gives a `$10` discount on the cart's total.
+- The cart's tax region has a `25%` tax rate.
+- The cart total before applying the promotion is `$100`.
+- [The prices in the cart's tax region are tax-exclusive](../../pricing/tax-inclusive-pricing/page.mdx).
+
+The result:
+
+1. Apply `$10` discount to cart total: `$100` - `$10` = `$90`
+2. Calculate tax on discounted total: `$90` x `25%` = `$22.50`
+3. Final total: `$90` + `$22.50` = `$112.50`
+
+### Tax-Inclusive Promotion Example
+
+Consider the following scenario:
+
+- A tax-inclusive promotion gives a `$10` discount on the cart's total.
+- The cart's tax region has a `25%` tax rate.
+- The cart total before applying the promotion is `$100`.
+- [The prices in the cart's tax region are tax-exclusive](../../pricing/tax-inclusive-pricing/page.mdx).
+
+The result:
+
+1. Calculate actual discount (removing tax): `$10` ÷ `1.25` = `$8`
+2. Apply discount to cart total: `$100` - `$8` = `$92`
+3. Calculate tax on discounted total: `$92` x `25%` = `$23`
+4. Final total: `$92` + `$23` = `$115`
+
+### Tax-Inclusive Promotions with Tax-Inclusive Prices
+
+Consider the following scenario:
+
+- A tax-inclusive promotion gives a `$10` discount on the cart's total.
+- The cart's tax region has a `25%` tax rate.
+- The cart total before applying the promotion is `$100`.
+- [The prices in the cart's tax region are tax-inclusive](../../pricing/tax-inclusive-pricing/page.mdx).
+
+The result:
+
+1. Calculate actual discount (removing tax): `$10` ÷ `1.25` = `$8`
+2. Calculate cart total without tax: `$100` ÷ `1.25` = `$80`
+3. Apply discount to cart total without tax: `$80` - `$8` = `$72`
+4. Add tax back to total: `$72` x `1.25` = `$90`
+
+The final total is `$90`, which correctly applies both the tax-inclusive promotion and tax-inclusive pricing.
\ No newline at end of file
diff --git a/www/apps/resources/generated/edit-dates.mjs b/www/apps/resources/generated/edit-dates.mjs
index 4044157d76..2a88b7298f 100644
--- a/www/apps/resources/generated/edit-dates.mjs
+++ b/www/apps/resources/generated/edit-dates.mjs
@@ -58,7 +58,7 @@ export const generatedEditDates = {
"app/commerce-modules/pricing/concepts/page.mdx": "2024-10-09T13:37:25.678Z",
"app/commerce-modules/pricing/price-calculation/page.mdx": "2025-05-20T07:51:40.710Z",
"app/commerce-modules/pricing/price-rules/page.mdx": "2025-05-20T07:51:40.710Z",
- "app/commerce-modules/pricing/tax-inclusive-pricing/page.mdx": "2024-10-09T13:48:23.261Z",
+ "app/commerce-modules/pricing/tax-inclusive-pricing/page.mdx": "2025-06-27T15:43:35.193Z",
"app/commerce-modules/pricing/page.mdx": "2025-05-20T07:51:40.710Z",
"app/commerce-modules/product/_events/_events-table/page.mdx": "2024-07-03T19:27:13+03:00",
"app/commerce-modules/product/_events/page.mdx": "2024-07-03T19:27:13+03:00",
@@ -67,7 +67,7 @@ export const generatedEditDates = {
"app/commerce-modules/product/page.mdx": "2025-05-20T07:51:40.711Z",
"app/commerce-modules/promotion/_events/_events-table/page.mdx": "2024-07-03T19:27:13+03:00",
"app/commerce-modules/promotion/_events/page.mdx": "2024-07-03T19:27:13+03:00",
- "app/commerce-modules/promotion/actions/page.mdx": "2024-10-09T14:49:01.645Z",
+ "app/commerce-modules/promotion/actions/page.mdx": "2025-06-27T15:42:19.142Z",
"app/commerce-modules/promotion/application-method/page.mdx": "2024-06-26T07:55:59+00:00",
"app/commerce-modules/promotion/campaign/page.mdx": "2025-02-26T11:32:24.484Z",
"app/commerce-modules/promotion/concepts/page.mdx": "2025-02-26T11:31:54.391Z",
@@ -6546,8 +6546,6 @@ export const generatedEditDates = {
"references/utils/utils.Payment/page.mdx": "2025-06-05T19:05:53.489Z",
"app/integrations/guides/slack/page.mdx": "2025-06-26T12:57:20.880Z",
"app/integrations/guides/sentry/page.mdx": "2025-06-16T10:11:29.955Z",
- "app/integrations/guides/mailchimp/page.mdx": "2025-06-24T08:08:35.034Z",
- "app/how-to-tutorials/tutorials/first-purchase-discounts/page.mdx": "2025-06-26T09:13:19.296Z",
"app/integrations/guides/mailchimp/page.mdx": "2025-06-26T11:59:15.303Z",
"app/how-to-tutorials/tutorials/first-purchase-discounts/page.mdx": "2025-06-26T11:55:27.175Z",
"references/types/CommonTypes/interfaces/types.CommonTypes.CookieOptions/page.mdx": "2025-06-25T10:11:37.088Z",
@@ -6557,5 +6555,6 @@ export const generatedEditDates = {
"references/types/interfaces/types.InitiatePaymentOutput/page.mdx": "2025-06-25T10:11:39.942Z",
"references/types/interfaces/types.UpdatePaymentOutput/page.mdx": "2025-06-25T10:11:39.945Z",
"app/how-to-tutorials/tutorials/gift-message/page.mdx": "2025-06-26T09:13:19.296Z",
- "app/how-to-tutorials/tutorials/re-order/page.mdx": "2025-06-26T12:38:24.308Z"
+ "app/how-to-tutorials/tutorials/re-order/page.mdx": "2025-06-26T12:38:24.308Z",
+ "app/commerce-modules/promotion/promotion-taxes/page.mdx": "2025-06-27T15:44:46.638Z"
}
\ No newline at end of file
diff --git a/www/apps/resources/generated/files-map.mjs b/www/apps/resources/generated/files-map.mjs
index 6606a59579..a16f665673 100644
--- a/www/apps/resources/generated/files-map.mjs
+++ b/www/apps/resources/generated/files-map.mjs
@@ -507,6 +507,10 @@ export const filesMap = [
"filePath": "/www/apps/resources/app/commerce-modules/promotion/page.mdx",
"pathname": "/commerce-modules/promotion"
},
+ {
+ "filePath": "/www/apps/resources/app/commerce-modules/promotion/promotion-taxes/page.mdx",
+ "pathname": "/commerce-modules/promotion/promotion-taxes"
+ },
{
"filePath": "/www/apps/resources/app/commerce-modules/promotion/workflows/page.mdx",
"pathname": "/commerce-modules/promotion/workflows"
@@ -1127,10 +1131,6 @@ export const filesMap = [
"filePath": "/www/apps/resources/app/storefront-development/cart/manage-items/page.mdx",
"pathname": "/storefront-development/cart/manage-items"
},
- {
- "filePath": "/www/apps/resources/app/storefront-development/cart/page.mdx",
- "pathname": "/storefront-development/cart"
- },
{
"filePath": "/www/apps/resources/app/storefront-development/cart/retrieve/page.mdx",
"pathname": "/storefront-development/cart/retrieve"
@@ -1191,10 +1191,6 @@ export const filesMap = [
"filePath": "/www/apps/resources/app/storefront-development/customers/login/page.mdx",
"pathname": "/storefront-development/customers/login"
},
- {
- "filePath": "/www/apps/resources/app/storefront-development/customers/page.mdx",
- "pathname": "/storefront-development/customers"
- },
{
"filePath": "/www/apps/resources/app/storefront-development/customers/profile/page.mdx",
"pathname": "/storefront-development/customers/profile"
@@ -1231,10 +1227,6 @@ export const filesMap = [
"filePath": "/www/apps/resources/app/storefront-development/products/categories/nested-categories/page.mdx",
"pathname": "/storefront-development/products/categories/nested-categories"
},
- {
- "filePath": "/www/apps/resources/app/storefront-development/products/categories/page.mdx",
- "pathname": "/storefront-development/products/categories"
- },
{
"filePath": "/www/apps/resources/app/storefront-development/products/categories/products/page.mdx",
"pathname": "/storefront-development/products/categories/products"
@@ -1247,10 +1239,6 @@ export const filesMap = [
"filePath": "/www/apps/resources/app/storefront-development/products/collections/list/page.mdx",
"pathname": "/storefront-development/products/collections/list"
},
- {
- "filePath": "/www/apps/resources/app/storefront-development/products/collections/page.mdx",
- "pathname": "/storefront-development/products/collections"
- },
{
"filePath": "/www/apps/resources/app/storefront-development/products/collections/products/page.mdx",
"pathname": "/storefront-development/products/collections/products"
@@ -1267,10 +1255,6 @@ export const filesMap = [
"filePath": "/www/apps/resources/app/storefront-development/products/list/page.mdx",
"pathname": "/storefront-development/products/list"
},
- {
- "filePath": "/www/apps/resources/app/storefront-development/products/page.mdx",
- "pathname": "/storefront-development/products"
- },
{
"filePath": "/www/apps/resources/app/storefront-development/products/price/examples/sale-price/page.mdx",
"pathname": "/storefront-development/products/price/examples/sale-price"
diff --git a/www/apps/resources/generated/generated-commerce-modules-sidebar.mjs b/www/apps/resources/generated/generated-commerce-modules-sidebar.mjs
index 12ff6194c6..342726e231 100644
--- a/www/apps/resources/generated/generated-commerce-modules-sidebar.mjs
+++ b/www/apps/resources/generated/generated-commerce-modules-sidebar.mjs
@@ -6086,6 +6086,14 @@ const generatedgeneratedCommerceModulesSidebarSidebar = {
"sort_sidebar": "alphabetize",
"description": "Learn how to use the Order Module in your customizations on the Medusa application server.",
"children": [
+ {
+ "loaded": true,
+ "isPathHref": true,
+ "type": "ref",
+ "title": "Add Gift Message",
+ "path": "https://docs.medusajs.com/resources/how-to-tutorials/tutorials/gift-message",
+ "children": []
+ },
{
"loaded": true,
"isPathHref": true,
@@ -13088,6 +13096,14 @@ const generatedgeneratedCommerceModulesSidebarSidebar = {
"title": "Promotion",
"children": []
},
+ {
+ "loaded": true,
+ "isPathHref": true,
+ "type": "link",
+ "path": "/commerce-modules/promotion/promotion-taxes",
+ "title": "Tax-Inclusive Promotions",
+ "children": []
+ },
{
"loaded": true,
"isPathHref": true,
diff --git a/www/apps/resources/sidebars/promotion.mjs b/www/apps/resources/sidebars/promotion.mjs
index 79e9ce3a27..e3d82e7442 100644
--- a/www/apps/resources/sidebars/promotion.mjs
+++ b/www/apps/resources/sidebars/promotion.mjs
@@ -22,6 +22,11 @@ export const promotionSidebar = [
path: "/commerce-modules/promotion/concepts",
title: "Promotion",
},
+ {
+ type: "link",
+ path: "/commerce-modules/promotion/promotion-taxes",
+ title: "Tax-Inclusive Promotions",
+ },
{
type: "link",
path: "/commerce-modules/promotion/application-method",
diff --git a/www/packages/tags/src/tags/order.ts b/www/packages/tags/src/tags/order.ts
index 7108ec5372..12460962ca 100644
--- a/www/packages/tags/src/tags/order.ts
+++ b/www/packages/tags/src/tags/order.ts
@@ -39,6 +39,10 @@ export const order = [
"title": "Implement Quote Management",
"path": "https://docs.medusajs.com/resources/examples/guides/quote-management"
},
+ {
+ "title": "Add Gift Message",
+ "path": "https://docs.medusajs.com/resources/how-to-tutorials/tutorials/gift-message"
+ },
{
"title": "Implement Loyalty Points",
"path": "https://docs.medusajs.com/resources/how-to-tutorials/tutorials/loyalty-points"
diff --git a/www/packages/tags/src/tags/tax.ts b/www/packages/tags/src/tags/tax.ts
index 23363cb62e..be8655c480 100644
--- a/www/packages/tags/src/tags/tax.ts
+++ b/www/packages/tags/src/tags/tax.ts
@@ -7,6 +7,10 @@ export const tax = [
"title": "Get Variant Price with Taxes",
"path": "https://docs.medusajs.com/resources/commerce-modules/product/guides/price-with-taxes"
},
+ {
+ "title": "Tax-Inclusive Promotions",
+ "path": "https://docs.medusajs.com/resources/commerce-modules/promotion/promotion-taxes"
+ },
{
"title": "Example: Show Price with Taxes",
"path": "https://docs.medusajs.com/resources/storefront-development/products/price/examples/tax-price"