Application Method

In this guide, you'll learn what an application method is in the Promotion Module.

What is an Application Method?#

The ApplicationMethod data model defines how a promotion is applied. It has the following properties that determine its behavior:

Property

Purpose

Possible Values

type

Does the promotion discount a fixed amount or a percentage?

fixed, percentage

target_type

Is the promotion applied to a cart item, shipping method, or the entire order?

items, shipping_methods, order

allocation

Is the discounted amount applied to each item or split between the applicable items?

each, across

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 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

In this example, the promotion is only applied to product variants in the cart that have 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 in the ApplicationMethod represents this relation.

A diagram showcasing the buy_rules relation between the ApplicationMethod and PromotionRule data models

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

Was this page helpful?
Ask Anything
FAQ
What is Medusa?
How can I create a module?
How can I create a data model?
How do I create a workflow?
How can I extend a data model in the Product Module?
Recipes
How do I build a marketplace with Medusa?
How do I build digital products with Medusa?
How do I build subscription-based purchases with Medusa?
What other recipes are available in the Medusa documentation?
Chat is cleared on refresh
Line break