Class: TotalsService
A service that calculates total and subtotals for orders, carts etc..
Implements
Copy to Clipboard
Hierarchy
TransactionBaseService
Copy to Clipboard↳
TotalsService
Copy to Clipboard
Constructors
constructor
• new TotalsService(__namedParameters
Copy to Clipboard)
Parameters
Name | Type |
---|---|
__namedParameters Copy to Clipboard | TotalsServiceProps Copy to Clipboard |
Overrides
TransactionBaseService.constructor
Defined in
packages/medusa/src/services/totals.ts:113
Properties
__configModule__
• Protected
Copy to Clipboard Optional
Copy to Clipboard Readonly
Copy to Clipboard __configModule__: Record
Copy to Clipboard<string
Copy to Clipboard, unknown
Copy to Clipboard>
Inherited from
TransactionBaseService.__configModule__
Defined in
packages/medusa/src/interfaces/transaction-base-service.ts:10
__container__
• Protected
Copy to Clipboard Readonly
Copy to Clipboard __container__: any
Copy to Clipboard
Inherited from
TransactionBaseService.__container__
Defined in
packages/medusa/src/interfaces/transaction-base-service.ts:9
__moduleDeclaration__
• Protected
Copy to Clipboard Optional
Copy to Clipboard Readonly
Copy to Clipboard __moduleDeclaration__: Record
Copy to Clipboard<string
Copy to Clipboard, unknown
Copy to Clipboard>
Inherited from
TransactionBaseService.__moduleDeclaration__
Defined in
packages/medusa/src/interfaces/transaction-base-service.ts:11
featureFlagRouter_
• Protected
Copy to Clipboard Readonly
Copy to Clipboard featureFlagRouter_: FlagRouter
Copy to Clipboard
Defined in
packages/medusa/src/services/totals.ts:111
manager_
• Protected
Copy to Clipboard manager_: EntityManager
Copy to Clipboard
Overrides
TransactionBaseService.manager_
Defined in
packages/medusa/src/services/totals.ts:105
newTotalsService_
• Protected
Copy to Clipboard Readonly
Copy to Clipboard newTotalsService_: NewTotalsService
Copy to Clipboard
Defined in
packages/medusa/src/services/totals.ts:109
taxCalculationStrategy_
• Protected
Copy to Clipboard Readonly
Copy to Clipboard taxCalculationStrategy_: ITaxCalculationStrategy
Copy to Clipboard
Defined in
packages/medusa/src/services/totals.ts:110
taxProviderService_
• Protected
Copy to Clipboard Readonly
Copy to Clipboard taxProviderService_: TaxProviderService
Copy to Clipboard
Defined in
packages/medusa/src/services/totals.ts:108
transactionManager_
• Protected
Copy to Clipboard transactionManager_: EntityManager
Copy to Clipboard
Overrides
TransactionBaseService.transactionManager_
Defined in
packages/medusa/src/services/totals.ts:106
Methods
atomicPhase_
▸ Protected
Copy to Clipboard atomicPhase_<TResult
Copy to Clipboard, TError
Copy to Clipboard>(work
Copy to Clipboard, isolationOrErrorHandler?
Copy to Clipboard, maybeErrorHandlerOrDontFail?
Copy to Clipboard): Promise
Copy to Clipboard<TResult
Copy to Clipboard>
Wraps some work within a transactional block. If the service already has a transaction manager attached this will be reused, otherwise a new transaction manager is created.
Type parameters
Name |
---|
TResult Copy to Clipboard |
TError Copy to Clipboard |
Parameters
Name | Type | Description |
---|---|---|
work Copy to Clipboard | (transactionManager Copy to Clipboard: EntityManager Copy to Clipboard) => Promise Copy to Clipboard<TResult Copy to Clipboard> | the transactional work to be done |
isolationOrErrorHandler? Copy to Clipboard | IsolationLevel Copy to Clipboard | (error Copy to Clipboard: TError Copy to Clipboard) => Promise Copy to Clipboard<void Copy to Clipboard | TResult Copy to Clipboard> | the isolation level to be used for the work. |
maybeErrorHandlerOrDontFail? Copy to Clipboard | (error Copy to Clipboard: TError Copy to Clipboard) => Promise Copy to Clipboard<void Copy to Clipboard | TResult Copy to Clipboard> | Potential error handler |
Returns
Promise
Copy to Clipboard<TResult
Copy to Clipboard>
the result of the transactional work
Inherited from
TransactionBaseService.atomicPhase_
Defined in
packages/medusa/src/interfaces/transaction-base-service.ts:50
calculateDiscount_
▸ calculateDiscount_(lineItem
Copy to Clipboard, variant
Copy to Clipboard, variantPrice
Copy to Clipboard, value
Copy to Clipboard, discountType
Copy to Clipboard): LineDiscount
Copy to Clipboard
Calculates either fixed or percentage discount of a variant
Parameters
Name | Type | Description |
---|---|---|
lineItem Copy to Clipboard | LineItem Copy to Clipboard | id of line item |
variant Copy to Clipboard | string Copy to Clipboard | id of variant in line item |
variantPrice Copy to Clipboard | number Copy to Clipboard | price of the variant based on region |
value Copy to Clipboard | number Copy to Clipboard | discount value |
discountType Copy to Clipboard | DiscountRuleType Copy to Clipboard | the type of discount (fixed or percentage) |
Returns
LineDiscount
Copy to Clipboard
triples of lineitem, variant and applied discount
Defined in
packages/medusa/src/services/totals.ts:629
getAllocationItemDiscounts
▸ getAllocationItemDiscounts(discount
Copy to Clipboard, cart
Copy to Clipboard): LineDiscount
Copy to Clipboard[]
If the rule of a discount has allocation="item", then we need to calculate discount on each item in the cart. Furthermore, we need to make sure to only apply the discount on valid variants. And finally we return ether an array of percentages discounts or fixed discounts alongside the variant on which the discount was applied.
Parameters
Name | Type | Description |
---|---|---|
discount Copy to Clipboard | Discount Copy to Clipboard | the discount to which we do the calculation |
cart Copy to Clipboard | Cart Copy to Clipboard | Order Copy to Clipboard | the cart to calculate discounts for |
Returns
LineDiscount
Copy to Clipboard[]
array of triples of lineitem, variant and applied discount
Defined in
packages/medusa/src/services/totals.ts:671
getAllocationMap
▸ getAllocationMap(orderOrCart
Copy to Clipboard, options?
Copy to Clipboard): Promise
Copy to Clipboard<LineAllocationsMap
Copy to Clipboard>
Gets a map of discounts and gift cards that apply to line items in an order. The function calculates the amount of a discount or gift card that applies to a specific line item.
Parameters
Name | Type | Description |
---|---|---|
orderOrCart Copy to Clipboard | Object Copy to Clipboard | the order or cart to get an allocation map for |
orderOrCart.claims? Copy to Clipboard | ClaimOrder Copy to Clipboard[] | - |
orderOrCart.discounts? Copy to Clipboard | Discount Copy to Clipboard[] | - |
orderOrCart.items Copy to Clipboard | LineItem Copy to Clipboard[] | - |
orderOrCart.swaps? Copy to Clipboard | Swap Copy to Clipboard[] | - |
options Copy to Clipboard | AllocationMapOptions Copy to Clipboard | controls what should be included in allocation map |
Returns
Promise
Copy to Clipboard<LineAllocationsMap
Copy to Clipboard>
the allocation map for the line items in the cart or order.
Defined in
packages/medusa/src/services/totals.ts:438
getCalculationContext
▸ getCalculationContext(calculationContextData
Copy to Clipboard, options?
Copy to Clipboard): Promise
Copy to Clipboard<TaxCalculationContext
Copy to Clipboard>
Prepares the calculation context for a tax total calculation.
Parameters
Name | Type | Description |
---|---|---|
calculationContextData Copy to Clipboard | CalculationContextData Copy to Clipboard | the calculationContextData to get the calculation context for |
options Copy to Clipboard | CalculationContextOptions Copy to Clipboard | options to gather context by |
Returns
Promise
Copy to Clipboard<TaxCalculationContext
Copy to Clipboard>
the tax calculation context
Defined in
packages/medusa/src/services/totals.ts:1025
getDiscountTotal
▸ getDiscountTotal(cartOrOrder
Copy to Clipboard): Promise
Copy to Clipboard<number
Copy to Clipboard>
Calculates the total discount amount for each of the different supported discount types. If discounts aren't present or invalid returns 0.
Parameters
Name | Type | Description |
---|---|---|
cartOrOrder Copy to Clipboard | Cart Copy to Clipboard | Order Copy to Clipboard | the cart or order to calculate discounts for |
Returns
Promise
Copy to Clipboard<number
Copy to Clipboard>
the total discounts amount
Defined in
packages/medusa/src/services/totals.ts:1005
getGiftCardTotal
▸ getGiftCardTotal(cartOrOrder
Copy to Clipboard, opts?
Copy to Clipboard): Promise
Copy to Clipboard<{ tax_total
Copy to Clipboard: number
Copy to Clipboard ; total
Copy to Clipboard: number
Copy to Clipboard }>
Gets the gift card amount on a cart or order.
Parameters
Name | Type | Description |
---|---|---|
cartOrOrder Copy to Clipboard | Cart Copy to Clipboard | Order Copy to Clipboard | the cart or order to get gift card amount for |
opts Copy to Clipboard | Object Copy to Clipboard | - |
opts.gift_cardable? Copy to Clipboard | number Copy to Clipboard | - |
Returns
Promise
Copy to Clipboard<{ tax_total
Copy to Clipboard: number
Copy to Clipboard ; total
Copy to Clipboard: number
Copy to Clipboard }>
the gift card amount applied to the cart or order
Defined in
packages/medusa/src/services/totals.ts:974
getGiftCardableAmount
▸ getGiftCardableAmount(cartOrOrder
Copy to Clipboard): Promise
Copy to Clipboard<number
Copy to Clipboard>
Gets the amount that can be gift carded on a cart. In regions where gift cards are taxable this amount should exclude taxes.
Parameters
Name | Type | Description |
---|---|---|
cartOrOrder Copy to Clipboard | Cart Copy to Clipboard | Order Copy to Clipboard | the cart or order to get gift card amount for |
Returns
Promise
Copy to Clipboard<number
Copy to Clipboard>
the gift card amount applied to the cart or order
Defined in
packages/medusa/src/services/totals.ts:957
getLineDiscounts
▸ getLineDiscounts(cartOrOrder
Copy to Clipboard, discount?
Copy to Clipboard): LineDiscountAmount
Copy to Clipboard[]
Returns the discount amount allocated to the line items of an order.
Parameters
Name | Type | Description |
---|---|---|
cartOrOrder Copy to Clipboard | Object Copy to Clipboard | the cart or order to get line discount allocations for |
cartOrOrder.claims? Copy to Clipboard | ClaimOrder Copy to Clipboard[] | - |
cartOrOrder.items Copy to Clipboard | LineItem Copy to Clipboard[] | - |
cartOrOrder.swaps? Copy to Clipboard | Swap Copy to Clipboard[] | - |
discount? Copy to Clipboard | Discount Copy to Clipboard | the discount to use as context for the calculation |
Returns
LineDiscountAmount
Copy to Clipboard[]
the allocations that the discount has on the items in the cart or order
Defined in
packages/medusa/src/services/totals.ts:722
getLineItemAdjustmentsTotal
▸ getLineItemAdjustmentsTotal(cartOrOrder
Copy to Clipboard): number
Copy to Clipboard
Parameters
Name | Type |
---|---|
cartOrOrder Copy to Clipboard | Cart Copy to Clipboard | Order Copy to Clipboard |
Returns
number
Copy to Clipboard
Defined in
packages/medusa/src/services/totals.ts:699
getLineItemDiscountAdjustment
▸ getLineItemDiscountAdjustment(lineItem
Copy to Clipboard, discount
Copy to Clipboard): number
Copy to Clipboard
Parameters
Name | Type |
---|---|
lineItem Copy to Clipboard | LineItem Copy to Clipboard |
discount Copy to Clipboard | Discount Copy to Clipboard |
Returns
number
Copy to Clipboard
Defined in
packages/medusa/src/services/totals.ts:684
getLineItemRefund
▸ getLineItemRefund(order
Copy to Clipboard, lineItem
Copy to Clipboard): Promise
Copy to Clipboard<number
Copy to Clipboard>
The amount that can be refunded for a given line item.
Parameters
Name | Type | Description |
---|---|---|
order Copy to Clipboard | Order Copy to Clipboard | order to use as context for the calculation |
lineItem Copy to Clipboard | LineItem Copy to Clipboard | the line item to calculate the refund amount for. |
Returns
Promise
Copy to Clipboard<number
Copy to Clipboard>
the line item refund amount.
Defined in
packages/medusa/src/services/totals.ts:507
getLineItemTotal
▸ getLineItemTotal(lineItem
Copy to Clipboard, cartOrOrder
Copy to Clipboard, options?
Copy to Clipboard): Promise
Copy to Clipboard<number
Copy to Clipboard>
Gets a total for a line item. The total can take gift cards, discounts and taxes into account. This can be controlled through the options.
Parameters
Name | Type | Description |
---|---|---|
lineItem Copy to Clipboard | LineItem Copy to Clipboard | the line item to calculate a total for |
cartOrOrder Copy to Clipboard | Cart Copy to Clipboard | Order Copy to Clipboard | the cart or order to use as context for the calculation |
options Copy to Clipboard | GetLineItemTotalOptions Copy to Clipboard | the options to use for the calculation |
Returns
Promise
Copy to Clipboard<number
Copy to Clipboard>
the line item total
Defined in
packages/medusa/src/services/totals.ts:930
getLineItemTotals
▸ getLineItemTotals(lineItem
Copy to Clipboard, cartOrOrder
Copy to Clipboard, options?
Copy to Clipboard): Promise
Copy to Clipboard<LineItemTotals
Copy to Clipboard>
Breaks down the totals related to a line item; these are the subtotal, the amount of discount applied to the line item, the amount of a gift card applied to a line item and the amount of tax applied to a line item.
Parameters
Name | Type | Description |
---|---|---|
lineItem Copy to Clipboard | LineItem Copy to Clipboard | the line item to calculate totals for |
cartOrOrder Copy to Clipboard | Cart Copy to Clipboard | Order Copy to Clipboard | the cart or order to use as context for the calculation |
options Copy to Clipboard | LineItemTotalsOptions Copy to Clipboard | the options to evaluate the line item totals for |
Returns
Promise
Copy to Clipboard<LineItemTotals
Copy to Clipboard>
the breakdown of the line item totals
Defined in
packages/medusa/src/services/totals.ts:778
getPaidTotal
▸ getPaidTotal(order
Copy to Clipboard): number
Copy to Clipboard
Gets the total payments made on an order
Parameters
Name | Type | Description |
---|---|---|
order Copy to Clipboard | Order Copy to Clipboard | the order to calculate paid amount for |
Returns
number
Copy to Clipboard
the total paid amount
Defined in
packages/medusa/src/services/totals.ts:160
getRefundTotal
▸ getRefundTotal(order
Copy to Clipboard, lineItems
Copy to Clipboard): Promise
Copy to Clipboard<number
Copy to Clipboard>
Calculates refund total of line items. If any of the items to return have been discounted, we need to apply the discount again before refunding them.
Parameters
Name | Type | Description |
---|---|---|
order Copy to Clipboard | Order Copy to Clipboard | cart or order to calculate subtotal for |
lineItems Copy to Clipboard | LineItem Copy to Clipboard[] | the line items to calculate refund total for |
Returns
Promise
Copy to Clipboard<number
Copy to Clipboard>
the calculated subtotal
Defined in
packages/medusa/src/services/totals.ts:586
getRefundedTotal
▸ getRefundedTotal(order
Copy to Clipboard): number
Copy to Clipboard
Gets the total refund amount for an order.
Parameters
Name | Type | Description |
---|---|---|
order Copy to Clipboard | Order Copy to Clipboard | the order to get total refund amount for. |
Returns
number
Copy to Clipboard
the total refunded amount for an order.
Defined in
packages/medusa/src/services/totals.ts:492
getShippingMethodTotals
▸ getShippingMethodTotals(shippingMethod
Copy to Clipboard, cartOrOrder
Copy to Clipboard, opts?
Copy to Clipboard): Promise
Copy to Clipboard<ShippingMethodTotals
Copy to Clipboard>
Gets the totals breakdown for a shipping method. Fetches tax lines if not already provided.
Parameters
Name | Type | Description |
---|---|---|
shippingMethod Copy to Clipboard | ShippingMethod Copy to Clipboard | the shipping method to get totals breakdown for. |
cartOrOrder Copy to Clipboard | Cart Copy to Clipboard | Order Copy to Clipboard | the cart or order to use as context for the breakdown |
opts Copy to Clipboard | GetShippingMethodTotalsOptions Copy to Clipboard | options for what should be included |
Returns
Promise
Copy to Clipboard<ShippingMethodTotals
Copy to Clipboard>
An object that breaks down the totals for the shipping method
Defined in
packages/medusa/src/services/totals.ts:194
getShippingTotal
▸ getShippingTotal(cartOrOrder
Copy to Clipboard): Promise
Copy to Clipboard<number
Copy to Clipboard>
Calculates shipping total
Parameters
Name | Type | Description |
---|---|---|
cartOrOrder Copy to Clipboard | Cart Copy to Clipboard | Order Copy to Clipboard | cart or order to calculate subtotal for |
Returns
Promise
Copy to Clipboard<number
Copy to Clipboard>
shipping total
Defined in
packages/medusa/src/services/totals.ts:322
getSubtotal
▸ getSubtotal(cartOrOrder
Copy to Clipboard, opts?
Copy to Clipboard): Promise
Copy to Clipboard<number
Copy to Clipboard>
Calculates subtotal of a given cart or order.
Parameters
Name | Type | Description |
---|---|---|
cartOrOrder Copy to Clipboard | Cart Copy to Clipboard | Order Copy to Clipboard | cart or order to calculate subtotal for |
opts Copy to Clipboard | SubtotalOptions Copy to Clipboard | options |
Returns
Promise
Copy to Clipboard<number
Copy to Clipboard>
the calculated subtotal
Defined in
packages/medusa/src/services/totals.ts:286
getSwapTotal
▸ getSwapTotal(order
Copy to Clipboard): number
Copy to Clipboard
The total paid for swaps. May be negative in case of negative swap difference.
Parameters
Name | Type | Description |
---|---|---|
order Copy to Clipboard | Order Copy to Clipboard | the order to calculate swap total for |
Returns
number
Copy to Clipboard
the swap total
Defined in
packages/medusa/src/services/totals.ts:175
getTaxTotal
▸ getTaxTotal(cartOrOrder
Copy to Clipboard, forceTaxes?
Copy to Clipboard): Promise
Copy to Clipboard<null
Copy to Clipboard | number
Copy to Clipboard>
Calculates tax total Currently based on the Danish tax system
Parameters
Name | Type | Default value | Description |
---|---|---|---|
cartOrOrder Copy to Clipboard | Cart Copy to Clipboard | Order Copy to Clipboard | undefined Copy to Clipboard | cart or order to calculate tax total for |
forceTaxes Copy to Clipboard | boolean Copy to Clipboard | false Copy to Clipboard | whether taxes should be calculated regardless of region settings |
Returns
Promise
Copy to Clipboard<null
Copy to Clipboard | number
Copy to Clipboard>
tax total
Defined in
packages/medusa/src/services/totals.ts:349
getTotal
▸ getTotal(cartOrOrder
Copy to Clipboard, options?
Copy to Clipboard): Promise
Copy to Clipboard<number
Copy to Clipboard>
Calculates total of a given cart or order.
Parameters
Name | Type | Description |
---|---|---|
cartOrOrder Copy to Clipboard | Cart Copy to Clipboard | Order Copy to Clipboard | object to calculate total for |
options Copy to Clipboard | GetTotalsOptions Copy to Clipboard | options to calculate by |
Returns
Promise
Copy to Clipboard<number
Copy to Clipboard>
the calculated subtotal
Defined in
packages/medusa/src/services/totals.ts:137
rounded
▸ rounded(value
Copy to Clipboard): number
Copy to Clipboard
Rounds a number using Math.round.
Parameters
Name | Type | Description |
---|---|---|
value Copy to Clipboard | number Copy to Clipboard | the value to round |
Returns
number
Copy to Clipboard
the rounded value
Defined in
packages/medusa/src/services/totals.ts:1055
shouldRetryTransaction_
▸ Protected
Copy to Clipboard shouldRetryTransaction_(err
Copy to Clipboard): boolean
Copy to Clipboard
Parameters
Name | Type |
---|---|
err Copy to Clipboard | Record Copy to Clipboard<string Copy to Clipboard, unknown Copy to Clipboard> | { code Copy to Clipboard: string Copy to Clipboard } |
Returns
boolean
Copy to Clipboard
Inherited from
TransactionBaseService.shouldRetryTransaction_
Defined in
packages/medusa/src/interfaces/transaction-base-service.ts:31
withTransaction
▸ withTransaction(transactionManager?
Copy to Clipboard): TotalsService
Copy to Clipboard
Parameters
Name | Type |
---|---|
transactionManager? Copy to Clipboard | EntityManager Copy to Clipboard |
Returns
TotalsService
Copy to Clipboard
Inherited from
TransactionBaseService.withTransaction
Defined in
packages/medusa/src/interfaces/transaction-base-service.ts:14