www/apps/resources/references/promotion/IPromotionModuleService/methods/promotion.IPromotionModuleService.computeActions/page.mdx
import { TypeList } from "docs-ui"
This documentation provides a reference to the computeActions method. This belongs to the Promotion Module.
You should only use this methods when implementing complex customizations. For common cases, check out available workflows instead.
</Note>This method provides the actions to perform on a cart based on the specified promotions and context.
const actions = await promotionModuleService.computeActions(
["50OFF"],
{
items: [
{
id: "cali_123",
quantity: 2,
subtotal: 1000,
},
],
shipping_methods: [
{
id: "casm_123",
subtotal: 0,
adjustments: [
{
id: "adj_123",
code: "FREESHIPPING",
},
],
},
],
}
)
<TypeList types={[{"name":"promotionCodesToApply","type":"string[]","description":"The promotion codes to be applied on the cart.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"applicationContext","type":"ComputeActionContext","description":"The items and shipping methods of the cart.","optional":false,"defaultValue":"","expandable":false,"children":[{"name":"currency_code","type":"string","description":"The cart's currency","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"customer","type":"object","description":"The customer associated with the cart.","optional":true,"defaultValue":"","expandable":false,"children":[{"name":"id","type":"string","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"groups","type":"object[]","description":"The customer groups the customer belongs to.","optional":true,"defaultValue":"","expandable":false,"children":[]}]},{"name":"region","type":"object","description":"The region associated with the cart.","optional":true,"defaultValue":"","expandable":false,"children":[{"name":"id","type":"string","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]}]},{"name":"shipping_address","type":"object","description":"The shipping address associated with the cart.","optional":true,"defaultValue":"","expandable":false,"children":[{"name":"country_code","type":"string","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]}]},{"name":"sales_channel_id","type":"string","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"email","type":"string","description":"The cart's email","optional":true,"defaultValue":"","expandable":false,"children":[],"since":"2.11.0"},{"name":"items","type":"ComputeActionItemLine[]","description":"The cart's line items.","optional":true,"defaultValue":"","expandable":false,"children":[{"name":"id","type":"string","description":"The ID of the item line.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"quantity","type":"BigNumberInput","description":"The quantity of the line item.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"subtotal","type":"BigNumberInput","description":"The subtotal of the line item.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"original_total","type":"BigNumberInput","description":"The total of the line item.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"is_discountable","type":"boolean","description":"Whether the line item is discountable.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"adjustments","type":"ComputeActionAdjustmentLine[]","description":"The adjustments applied before on the line item.","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"product","type":"object","description":"The product ID of the line item. Our default promotion rules rely on the product ID to apply the promotion.","optional":true,"defaultValue":"","expandable":false,"children":[]}]},{"name":"shipping_methods","type":"ComputeActionShippingLine[]","description":"The cart's shipping methods.","optional":true,"defaultValue":"","expandable":false,"children":[{"name":"id","type":"string","description":"The ID of the shipping method.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"subtotal","type":"BigNumberInput","description":"The subtotal of the shipping method.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"original_total","type":"BigNumberInput","description":"The total of the shipping method.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"adjustments","type":"ComputeActionAdjustmentLine[]","description":"The adjustments applied before on the shipping method.","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"shipping_option","type":"object","description":"The shipping option type associated with the shipping method.","optional":true,"defaultValue":"","expandable":false,"children":[]}]}]},{"name":"options","type":"Record<string, any>","description":"Any relevant options that may change how the actions are computed.","optional":true,"defaultValue":"","expandable":false,"children":[]}]} expandUrl="https://docs.medusajs.com/learn/fundamentals/data-models/manage-relationships#retrieve-records-of-relation" sectionTitle="computeActions"/>
<TypeList types={[{"name":"Promise","type":"Promise<ComputeActions[]>","optional":false,"defaultValue":"","description":"The list of computed actions to be applied on the cart.","expandable":false,"children":[{"name":"ComputeActions[]","type":"ComputeActions[]","optional":false,"defaultValue":"","description":"","expandable":false,"children":[{"name":"action","type":"\"addItemAdjustment\"","description":"The type of action.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"item_id","type":"string","description":"The associated item's ID.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"amount","type":"BigNumberInput","description":"The amount to remove off the item's total.","optional":false,"defaultValue":"","expandable":false,"children":[{"name":"value","type":"string \| number","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"numeric","type":"number","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"raw","type":"BigNumberRawValue","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"bigNumber","type":"BigNumber","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]}]},{"name":"code","type":"string","description":"The promotion's code.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"adjustment_id","type":"string","description":"The associated adjustment's ID.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"shipping_method_id","type":"string","description":"The associated shipping method's ID.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"is_tax_inclusive","type":"boolean","description":"Whether the promotion amount includes tax.","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"description","type":"string","description":"The promotion's description.","optional":true,"defaultValue":"","expandable":false,"children":[]}]}]}]} expandUrl="https://docs.medusajs.com/learn/fundamentals/data-models/manage-relationships#retrieve-records-of-relation" sectionTitle="computeActions"/>