import { Table } from "docs-ui"
export const metadata = {
title: `Application Method`,
}
# {metadata.title}
In this document, you'll learn what an application method is.
## What is an Application Method?
The [ApplicationMethod data model](/references/promotion/models/ApplicationMethod) defines how a promotion is applied:
Property
Purpose
`type`
Does the promotion discount a fixed amount or a percentage?
`target_type`
Is the promotion applied on a cart item, shipping method, or the entire order?
`allocation`
Is the discounted amount applied on each item or split between the applicable items?
## Target Promotion Rules
When the promotion is applied to a cart item or a shipping method, you can restrict which items/shipping methods the promotion is applied to.
The `ApplicationMethod` data model has a collection of `PromotionRule` records to restrict which items or shipping methods the promotion applies to. The `target_rules` property represents this relation.

In this example, the promotion is only applied on products in the cart having the SKU `SHIRT`.
---
## Buy Promotion Rules
When the promotion’s 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 represents this relation.

In this example, the cart must have two products with the SKU `SHIRT` for the promotion to be applied.