@medusajs/types
Version:
Medusa Types definition
208 lines • 5.19 kB
TypeScript
import { BigNumberInput } from "../../totals";
/**
* A compute action informs you what adjustment must be made to a cart item or shipping method.
*/
export type ComputeActions = AddItemAdjustmentAction | RemoveItemAdjustmentAction | AddShippingMethodAdjustment | RemoveShippingMethodAdjustment | CampaignBudgetExceededAction;
/**
* These computed action types can affect a campaign's budget.
*/
export type UsageComputedActions = {
/**
* The amount to remove off the shipping method's total.
*/
amount: BigNumberInput;
/**
* The promotion's code.
*/
code: string;
};
/**
* This action indicates that the promotions within a campaign can no longer be used
* as the campaign budget has been exceeded.
*/
export interface CampaignBudgetExceededAction {
/**
* The type of action.
*/
action: "campaignBudgetExceeded";
/**
* The promotion's code.
*/
code: string;
}
/**
* This action indicates that an adjustment must be made to an item. For example, removing $5 off its amount.
*/
export interface AddItemAdjustmentAction {
/**
* The type of action.
*/
action: "addItemAdjustment";
/**
* The associated item's ID.
*/
item_id: string;
/**
* The amount to remove off the item's total.
*/
amount: BigNumberInput;
/**
* Whether the adjustment amount includes tax.
*/
is_tax_inclusive?: boolean;
/**
/**
* The promotion's code.
*/
code: string;
/**
* The promotion's description.
*/
description?: string;
}
/**
* This action indicates that an adjustment must be removed from a line item. For example, remove the $5 discount applied before.
*/
export interface RemoveItemAdjustmentAction {
/**
* The type of action.
*/
action: "removeItemAdjustment";
/**
* The associated adjustment's ID.
*/
adjustment_id: string;
/**
* The promotion's description.
*/
description?: string;
/**
* The promotion's code.
*/
code: string;
}
/**
* This action indicates that an adjustment must be made on a shipping method. For example, make the shipping method free.
*/
export interface AddShippingMethodAdjustment {
/**
* The type of action.
*/
action: "addShippingMethodAdjustment";
/**
* The associated shipping method's ID.
*/
shipping_method_id: string;
/**
* The amount to remove off the shipping method's total.
*/
amount: BigNumberInput;
/**
* The promotion's code.
*/
code: string;
/**
* The promotion's description.
*/
description?: string;
}
/**
* This action indicates that an adjustment must be removed from a shipping method. For example, remove the free shipping discount applied before.
*/
export interface RemoveShippingMethodAdjustment {
/**
* The type of action
*/
action: "removeShippingMethodAdjustment";
/**
* The associated adjustment's ID.
*/
adjustment_id: string;
/**
* The promotion's code.
*/
code: string;
}
/**
* An action's adjustment line.
*/
export interface ComputeActionAdjustmentLine extends Record<string, unknown> {
/**
* The ID of the compute action's adjustment line.
*/
id: string;
/**
* The promotion's code.
*/
code: string;
}
/**
* A cart's line item passed in the context when computing actions.
*/
export interface ComputeActionItemLine extends Record<string, unknown> {
/**
* The ID of the item line.
*/
id: string;
/**
* The quantity of the line item.
*/
quantity: BigNumberInput;
/**
* The subtotal of the line item.
*/
subtotal: BigNumberInput;
/**
* Whether the line item is discountable.
*/
is_discountable: boolean;
/**
* The adjustments applied before on the line item.
*/
adjustments?: ComputeActionAdjustmentLine[];
}
/**
* A cart's shipping method passed in the content when computing actions.
*/
export interface ComputeActionShippingLine extends Record<string, unknown> {
/**
* The ID of the shipping method.
*/
id: string;
/**
* The subtotal of the shipping method.
*/
subtotal: BigNumberInput;
/**
* The adjustments applied before on the shipping method.
*/
adjustments?: ComputeActionAdjustmentLine[];
}
/**
* The context provided when computing actions of promotions.
*/
export interface ComputeActionContext extends Record<string, unknown> {
/**
* The cart's currency
*/
currency_code: string;
/**
* The cart's line items.
*/
items?: ComputeActionItemLine[];
/**
* The cart's shipping methods.
*/
shipping_methods?: ComputeActionShippingLine[];
}
/**
* Options to configure how actions are computed.
*/
export interface ComputeActionOptions {
/**
* Whether to apply promotions having their `is_automatic` field enabled
* automatically. If not provided, the automatic promotions are applied.
*/
prevent_auto_promotions?: boolean;
}
//# sourceMappingURL=compute-actions.d.ts.map