Back to Medusa

computeActions - Promotion Module Reference

www/apps/resources/references/promotion/IPromotionModuleService/methods/promotion.IPromotionModuleService.computeActions/page.mdx

2.14.28.4 KB
Original Source

import { TypeList } from "docs-ui"

computeActions - Promotion Module Reference

This documentation provides a reference to the computeActions method. This belongs to the Promotion Module.

<Note>

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.

Example

ts
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",
          },
        ],
      },
    ],
  }
)

Parameters

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

Returns

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