Files
medusa-store/www/apps/resources/app/commerce-modules/promotion/actions/page.mdx
Shahed Nasser f6d3453e6d docs: improved commerce modules [4/n] (#9517)
Improve pricing, product, and promotion modules docs

[4/n]
2024-10-16 09:34:36 +00:00

134 lines
4.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
export const metadata = {
title: `Promotion Actions`,
}
# {metadata.title}
In this document, youll learn about promotion actions and how theyre computed using the [computeActions method](/references/promotion/computeActions).
## computeActions Method
The Promotion Module's main service has a [computeActions method](/references/promotion/computeActions) that returns an array of actions to perform on a cart when one or more promotions are applied.
Actions inform you what adjustment must be made to a cart item or shipping method. Each action is an object having the `action` property indicating the type of action.
---
## Action Types
### `addItemAdjustment` Action
The `addItemAdjustment` action indicates that an adjustment must be made to an item. For example, removing $5 off its amount.
This action has the following format:
```ts
export interface AddItemAdjustmentAction {
action: "addItemAdjustment"
item_id: string
amount: number
code: string
description?: string
}
```
This action means that a new record should be created of the `LineItemAdjustment` data model in the Cart Module, or `OrderLineItemAdjustment` data model in the Order Module.
<Note>
Refer to [this reference](/references/promotion/interfaces/promotion.AddItemAdjustmentAction) for details on the objects properties.
</Note>
### `removeItemAdjustment` Action
The `removeItemAdjustment` action indicates that an adjustment must be removed from a line item. For example, remove the $5 discount.
The `computeActions` method accepts any previous item adjustments in the `items` property of the second parameter.
This action has the following format:
```ts
export interface RemoveItemAdjustmentAction {
action: "removeItemAdjustment"
adjustment_id: string
description?: string
code: string
}
```
This action means that a new record should be removed of the `LineItemAdjustment` (or `OrderLineItemAdjustment`) with the specified ID in the `adjustment_id` property.
<Note>
Refer to [this reference](/references/promotion/interfaces/promotion.RemoveItemAdjustmentAction) for details on the objects properties.
</Note>
### `addShippingMethodAdjustment` Action
The `addShippingMethodAdjustment` action indicates that an adjustment must be made on a shipping method. For example, make the shipping method free.
This action has the following format:
```ts
export interface AddShippingMethodAdjustment {
action: "addShippingMethodAdjustment"
shipping_method_id: string
amount: number
code: string
description?: string
}
```
This action means that a new record should be created of the `ShippingMethodAdjustment` data model in the Cart Module, or `OrderShippingMethodAdjustment` data model in the Order Module.
<Note>
Refer to [this reference](/references/promotion/interfaces/promotion.AddShippingMethodAdjustment) for details on the objects properties.
</Note>
### `removeShippingMethodAdjustment` Action
The `removeShippingMethodAdjustment` action indicates that an adjustment must be removed from a shipping method. For example, remove the free shipping discount.
The `computeActions` method accepts any previous shipping method adjustments in the `shipping_methods` property of the second parameter.
This action has the following format:
```ts
export interface RemoveShippingMethodAdjustment {
action: "removeShippingMethodAdjustment"
adjustment_id: string
code: string
}
```
When the Medusa application receives this action type, it removes the `ShippingMethodAdjustment` (or `OrderShippingMethodAdjustment`) with the specified ID in the `adjustment_id` property.
<Note>
Refer to [this reference](/references/promotion/interfaces/promotion.RemoveShippingMethodAdjustment) for details on the objects properties.
</Note>
### `campaignBudgetExceeded` Action
When the `campaignBudgetExceeded` action is returned, the promotions within a campaign can no longer be used as the campaign budget has been exceeded.
This action has the following format:
```ts
export interface CampaignBudgetExceededAction {
action: "campaignBudgetExceeded"
code: string
}
```
<Note>
Refer to [this reference](/references/promotion/interfaces/promotion.CampaignBudgetExceededAction) for details on the objects properties.
</Note>