Promotion Actions
In this document, you’ll learn about promotion actions and how they’re computed using the computeActions method.
computeActions Method#
The Promotion Module's main service has a computeActions method 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:
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.
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:
This action means that a new record should be removed of the LineItemAdjustment (or OrderLineItemAdjustment) with the specified ID in the adjustment_id property.
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:
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.
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:
When the Medusa application receives this action type, it removes the ShippingMethodAdjustment (or OrderShippingMethodAdjustment) with the specified ID in the adjustment_id property.
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: