Files
medusa-store/www/apps/resources/app/commerce-modules/promotion/application-method/page.mdx
Shahed Nasser 24199fa47a docs: general updates and fixes (#13374)
* docs: general updates and fixes

* fix lint errors
2025-09-02 09:07:07 +03:00

110 lines
3.1 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.
import { Table } from "docs-ui"
export const metadata = {
title: `Application Method`,
}
# {metadata.title}
In this guide, you'll learn what an application method is in the Promotion Module.
## What is an Application Method?
The [ApplicationMethod data model](/references/promotion/models/ApplicationMethod) defines how a promotion is applied. It has the following properties that determine its behavior:
<Table>
<Table.Header>
<Table.Row>
<Table.HeaderCell>
Property
</Table.HeaderCell>
<Table.HeaderCell>
Purpose
</Table.HeaderCell>
<Table.HeaderCell>
Possible Values
</Table.HeaderCell>
</Table.Row>
</Table.Header>
<Table.Body>
<Table.Row>
<Table.Cell>
`type`
</Table.Cell>
<Table.Cell>
Does the promotion discount a fixed amount or a percentage?
</Table.Cell>
<Table.Cell>
`fixed`, `percentage`
</Table.Cell>
</Table.Row>
<Table.Row>
<Table.Cell>
`target_type`
</Table.Cell>
<Table.Cell>
Is the promotion applied to a cart item, shipping method, or the entire order?
</Table.Cell>
<Table.Cell>
`items`, `shipping_methods`, `order`
</Table.Cell>
</Table.Row>
<Table.Row>
<Table.Cell>
`allocation`
</Table.Cell>
<Table.Cell>
Is the discounted amount applied to each item or split between the applicable items?
</Table.Cell>
<Table.Cell>
`each`, `across`
</Table.Cell>
</Table.Row>
</Table.Body>
</Table>
## Target Promotion Rules
When the promotion is applied to a cart item or a shipping method (in other words, when `target_type` is `items` or `shipping_methods`), you can restrict which items/shipping methods the promotion is applied to.
The `ApplicationMethod` data model has a collection of [PromotionRule](/references/promotion/models/PromotionRule) records to restrict which items or shipping methods the promotion applies to. The `target_rules` property in the `ApplicationMethod` represents this relation.
![A diagram showcasing the target_rules relation between the ApplicationMethod and PromotionRule data models](https://res.cloudinary.com/dza7lstvk/image/upload/v1709898273/Medusa%20Resources/application-method-target-rules_hqaymz.jpg)
In this example, the promotion is only applied to product variants in the cart that have the SKU `SHIRT`.
---
## Buy Promotion Rules
When the promotions type is `buyget`, you must specify the “buy X” condition. For example, a cart must have two shirts before the promotion can be applied.
The application method has a collection of `PromotionRule` items to define the “buy X” rule. The `buy_rules` property in the `ApplicationMethod` represents this relation.
![A diagram showcasing the buy_rules relation between the ApplicationMethod and PromotionRule data models](https://res.cloudinary.com/dza7lstvk/image/upload/v1709898453/Medusa%20Resources/application-method-buy-rules_djjuhw.jpg)
In this example, the cart must have two product variants with the SKU `SHIRT` for the promotion to be applied.