Skip to main content

Class: CartService

Hierarchy​

  • TransactionBaseService

    ↳ CartService

Constructors​

constructor​

• new CartService(__namedParameters)

Parameters​

NameType
__namedParametersInjectedDependencies

Overrides​

TransactionBaseService.constructor

Defined in​

medusa/src/services/cart.ts:134

Properties​

__configModule__​

• Protected Optional Readonly __configModule__: Record<string, unknown>

Inherited from​

TransactionBaseService.__configModule__

Defined in​

medusa/src/interfaces/transaction-base-service.ts:14


__container__​

• Protected Readonly __container__: any

Inherited from​

TransactionBaseService.__container__

Defined in​

medusa/src/interfaces/transaction-base-service.ts:13


__moduleDeclaration__​

• Protected Optional Readonly __moduleDeclaration__: Record<string, unknown>

Inherited from​

TransactionBaseService.__moduleDeclaration__

Defined in​

medusa/src/interfaces/transaction-base-service.ts:15


addressRepository_​

• Protected Readonly addressRepository_: Repository<Address>

Defined in​

medusa/src/services/cart.ts:109


cartRepository_​

• Protected Readonly cartRepository_: Repository<Cart> & { findOneWithRelations: (relations: FindOptionsRelations<Cart>, optionsWithoutRelations: Omit<FindManyOptions<Cart>, "relations">) => Promise<Cart> ; findWithRelations: (relations: FindOptionsRelations<Cart>, optionsWithoutRelations: Omit<FindManyOptions<Cart>, "relations">) => Promise<Cart[]> }

Defined in​

medusa/src/services/cart.ts:108


customShippingOptionService_​

• Protected Readonly customShippingOptionService_: CustomShippingOptionService

Defined in​

medusa/src/services/cart.ts:127


customerService_​

• Protected Readonly customerService_: CustomerService

Defined in​

medusa/src/services/cart.ts:120


discountService_​

• Protected Readonly discountService_: DiscountService

Defined in​

medusa/src/services/cart.ts:122


eventBus_​

• Protected Readonly eventBus_: EventBusService

Defined in​

medusa/src/services/cart.ts:112


featureFlagRouter_​

• Protected Readonly featureFlagRouter_: FlagRouter

Defined in​

medusa/src/services/cart.ts:130


giftCardService_​

• Protected Readonly giftCardService_: GiftCardService

Defined in​

medusa/src/services/cart.ts:123


lineItemAdjustmentService_​

• Protected Readonly lineItemAdjustmentService_: LineItemAdjustmentService

Defined in​

medusa/src/services/cart.ts:129


lineItemRepository_​

• Protected Readonly lineItemRepository_: Repository<LineItem> & { findByReturn: (returnId: string) => Promise<LineItem & { return_item: ReturnItem }[]> }

Defined in​

medusa/src/services/cart.ts:111


lineItemService_​

• Protected Readonly lineItemService_: LineItemService

Defined in​

medusa/src/services/cart.ts:118


manager_​

• Protected manager_: EntityManager

Inherited from​

TransactionBaseService.manager_

Defined in​

medusa/src/interfaces/transaction-base-service.ts:5


newTotalsService_​

• Protected Readonly newTotalsService_: NewTotalsService

Defined in​

medusa/src/services/cart.ts:126


paymentProviderService_​

• Protected Readonly paymentProviderService_: PaymentProviderService

Defined in​

medusa/src/services/cart.ts:119


paymentSessionRepository_​

• Protected Readonly paymentSessionRepository_: Repository<PaymentSession>

Defined in​

medusa/src/services/cart.ts:110


priceSelectionStrategy_​

• Protected Readonly priceSelectionStrategy_: IPriceSelectionStrategy

Defined in​

medusa/src/services/cart.ts:128


productService_​

• Protected Readonly productService_: ProductService

Defined in​

medusa/src/services/cart.ts:114


productVariantInventoryService_​

• Protected Readonly productVariantInventoryService_: ProductVariantInventoryService

Defined in​

medusa/src/services/cart.ts:132


productVariantService_​

• Protected Readonly productVariantService_: ProductVariantService

Defined in​

medusa/src/services/cart.ts:113


regionService_​

• Protected Readonly regionService_: RegionService

Defined in​

medusa/src/services/cart.ts:117


salesChannelService_​

• Protected Readonly salesChannelService_: SalesChannelService

Defined in​

medusa/src/services/cart.ts:116


shippingMethodRepository_​

• Protected Readonly shippingMethodRepository_: Repository<ShippingMethod>

Defined in​

medusa/src/services/cart.ts:107


shippingOptionService_​

• Protected Readonly shippingOptionService_: ShippingOptionService

Defined in​

medusa/src/services/cart.ts:121


storeService_​

• Protected Readonly storeService_: StoreService

Defined in​

medusa/src/services/cart.ts:115


taxProviderService_​

• Protected Readonly taxProviderService_: TaxProviderService

Defined in​

medusa/src/services/cart.ts:124


totalsService_​

• Protected Readonly totalsService_: TotalsService

Defined in​

medusa/src/services/cart.ts:125


transactionManager_​

• Protected transactionManager_: undefined | EntityManager

Inherited from​

TransactionBaseService.transactionManager_

Defined in​

medusa/src/interfaces/transaction-base-service.ts:6


Events​

▪ Static Readonly Events: Object

Type declaration​

NameType
CREATEDstring
CUSTOMER_UPDATEDstring
UPDATEDstring

Defined in​

medusa/src/services/cart.ts:101

Accessors​

activeManager_​

• Protected get activeManager_(): EntityManager

Returns​

EntityManager

Inherited from​

TransactionBaseService.activeManager_

Defined in​

medusa/src/interfaces/transaction-base-service.ts:8

Methods​

addLineItem​

▸ addLineItem(cartId, lineItem, config?): Promise<void>

Adds a line item to the cart.

Deprecated

Use addOrUpdateLineItems instead.

Parameters​

NameTypeDefault valueDescription
cartIdstringundefinedthe id of the cart that we will add to
lineItemLineItemundefinedthe line item to add.
configObjectundefinedvalidateSalesChannels - should check if product belongs to the same sales chanel as cart (if cart has associated sales channel)
config.validateSalesChannelsbooleantrue-

Returns​

Promise<void>

the result of the update operation

Defined in​

medusa/src/services/cart.ts:610


addOrUpdateLineItems​

▸ addOrUpdateLineItems(cartId, lineItems, config?): Promise<void>

Adds or update one or multiple line items to the cart. It also update all existing items in the cart to have has_shipping to false. Finally, the adjustments will be updated.

Parameters​

NameTypeDefault valueDescription
cartIdstringundefinedthe id of the cart that we will add to
lineItemsLineItem | LineItem[]undefinedthe line items to add.
configObjectundefinedvalidateSalesChannels - should check if product belongs to the same sales chanel as cart (if cart has associated sales channel)
config.validateSalesChannelsbooleantrue-

Returns​

Promise<void>

the result of the update operation

Defined in​

medusa/src/services/cart.ts:741


addShippingMethod​

▸ addShippingMethod(cartOrId, optionId, data?): Promise<Cart>

Adds the shipping method to the list of shipping methods associated with the cart. Shipping Methods are the ways that an order is shipped, whereas a Shipping Option is a possible way to ship an order. Shipping Methods may also have additional details in the data field such as an id for a package shop.

Parameters​

NameTypeDescription
cartOrIdstring | Cartthe id of the cart to add shipping method to
optionIdstringid of shipping option to add as valid method
dataRecord<string, unknown>the fulmillment data for the method

Returns​

Promise<Cart>

the result of the update operation

Defined in​

medusa/src/services/cart.ts:2071


adjustFreeShipping_​

▸ Protected adjustFreeShipping_(cart, shouldAdd): Promise<void>

Ensures shipping total on cart is correct in regards to a potential free shipping discount If a free shipping is present, we set shipping methods price to 0 if a free shipping was present, we set shipping methods to original amount

Parameters​

NameTypeDescription
cartCartthe cart to adjust free shipping for
shouldAddbooleanflag to indicate, if we should add or remove

Returns​

Promise<void>

void

Defined in​

medusa/src/services/cart.ts:998


applyDiscount​

▸ applyDiscount(cart, discountCode): Promise<void>

Updates the cart's discounts. If discount besides free shipping is already applied, this will be overwritten Throws if discount regions does not include the cart region

Parameters​

NameTypeDescription
cartCartthe cart to update
discountCodestringthe discount code

Returns​

Promise<void>

Defined in​

medusa/src/services/cart.ts:1416


applyDiscounts​

▸ applyDiscounts(cart, discountCodes): Promise<void>

Updates the cart's discounts. If discount besides free shipping is already applied, this will be overwritten Throws if discount regions does not include the cart region

Parameters​

NameTypeDescription
cartCartthe cart to update
discountCodesstring[]the discount code(s) to apply

Returns​

Promise<void>

Defined in​

medusa/src/services/cart.ts:1428


applyGiftCard_​

▸ Protected applyGiftCard_(cart, code): Promise<void>

Parameters​

NameType
cartCart
codestring

Returns​

Promise<void>

Defined in​

medusa/src/services/cart.ts:1381


atomicPhase_​

▸ Protected atomicPhase_<TResult, TError>(work, isolationOrErrorHandler?, maybeErrorHandlerOrDontFail?): Promise<TResult>

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
TError

Parameters​

NameTypeDescription
work(transactionManager: EntityManager) => Promise<TResult>the transactional work to be done
isolationOrErrorHandler?IsolationLevel | (error: TError) => Promise<void | TResult>the isolation level to be used for the work.
maybeErrorHandlerOrDontFail?(error: TError) => Promise<void | TResult>Potential error handler

Returns​

Promise<TResult>

the result of the transactional work

Inherited from​

TransactionBaseService.atomicPhase_

Defined in​

medusa/src/interfaces/transaction-base-service.ts:56


authorizePayment​

▸ authorizePayment(cartId, context?): Promise<Cart>

Authorizes a payment for a cart. Will authorize with chosen payment provider. This will return a payment object, that we will use to update our cart payment with. Additionally, if the payment does not require more or fails, we will set the payment on the cart.

Parameters​

NameTypeDescription
cartIdstringthe id of the cart to authorize payment for
contextRecord<string, unknown> & { cart_id: string }object containing whatever is relevant for authorizing the payment with the payment provider. As an example, this could be IP address or similar for fraud handling.

Returns​

Promise<Cart>

the resulting cart

Defined in​

medusa/src/services/cart.ts:1595


create​

▸ create(data): Promise<Cart>

Creates a cart.

Parameters​

NameTypeDescription
dataCartCreatePropsthe data to create the cart with

Returns​

Promise<Cart>

the result of the create operation

Defined in​

medusa/src/services/cart.ts:309


createOrFetchGuestCustomerFromEmail_​

▸ Protected createOrFetchGuestCustomerFromEmail_(email): Promise<Customer>

Creates or fetches a user based on an email.

Parameters​

NameTypeDescription
emailstringthe email to use

Returns​

Promise<Customer>

the resultign customer object

Defined in​

medusa/src/services/cart.ts:1267


createTaxLines​

▸ createTaxLines(cartOrId): Promise<void>

Parameters​

NameType
cartOrIdstring | Cart

Returns​

Promise<void>

Defined in​

medusa/src/services/cart.ts:2499


decorateTotals​

▸ decorateTotals(cart, totalsConfig?): Promise<WithRequiredProperty<Cart, "total">>

Parameters​

NameType
cartCart
totalsConfigTotalsConfig

Returns​

Promise<WithRequiredProperty<Cart, "total">>

Defined in​

medusa/src/services/cart.ts:2551


decorateTotals_​

▸ Protected decorateTotals_(cart, totalsToSelect, options?): Promise<Cart>

Deprecated

Use decorateTotals instead

Parameters​

NameType
cartCart
totalsToSelectTotalField[]
optionsTotalsConfig

Returns​

Promise<Cart>

Defined in​

medusa/src/services/cart.ts:2726


delete​

▸ delete(cartId): Promise<Cart>

Deletes a cart from the database. Completed carts cannot be deleted.

Parameters​

NameTypeDescription
cartIdstringthe id of the cart to delete

Returns​

Promise<Cart>

the deleted cart or undefined if the cart was not found.

Defined in​

medusa/src/services/cart.ts:2418


deletePaymentSession​

▸ deletePaymentSession(cartId, providerId): Promise<void>

Removes a payment session from the cart.

Parameters​

NameTypeDescription
cartIdstringthe id of the cart to remove from
providerIdstringthe id of the provider whoose payment session should be removed.

Returns​

Promise<void>

the resulting cart.

Defined in​

medusa/src/services/cart.ts:1964


deleteTaxLines​

▸ deleteTaxLines(id): Promise<void>

Parameters​

NameType
idstring

Returns​

Promise<void>

Defined in​

medusa/src/services/cart.ts:2531


findCustomShippingOption​

▸ findCustomShippingOption(cartCustomShippingOptions, optionId): undefined | CustomShippingOption

Finds the cart's custom shipping options based on the passed option id. throws if custom options is not empty and no shipping option corresponds to optionId

Parameters​

NameTypeDescription
cartCustomShippingOptionsCustomShippingOption[]the cart's custom shipping options
optionIdstringid of the normal or custom shipping option to find in the cartCustomShippingOptions

Returns​

undefined | CustomShippingOption

custom shipping option

Defined in​

medusa/src/services/cart.ts:2181


getTotalsRelations​

▸ Private getTotalsRelations(config): string[]

Parameters​

NameType
configFindConfig<Cart>

Returns​

string[]

Defined in​

medusa/src/services/cart.ts:2777


getValidatedSalesChannel​

▸ Protected getValidatedSalesChannel(salesChannelId?): Promise<SalesChannel>

Parameters​

NameType
salesChannelId?string

Returns​

Promise<SalesChannel>

Defined in​

medusa/src/services/cart.ts:447


list​

▸ list(selector, config?): Promise<Cart[]>

Parameters​

NameTypeDescription
selectorFilterableCartPropsthe query object for find
configFindConfig<Cart>config object

Returns​

Promise<Cart[]>

the result of the find operation

Defined in​

medusa/src/services/cart.ts:196


onSalesChannelChange​

▸ Protected onSalesChannelChange(cart, newSalesChannelId): Promise<void>

Remove the cart line item that does not belongs to the newly assigned sales channel

Parameters​

NameTypeDescription
cartCartThe cart being updated
newSalesChannelIdstringThe new sales channel being assigned to the cart

Returns​

Promise<void>

void

Defined in​

medusa/src/services/cart.ts:1213


refreshAdjustments_​

▸ Protected refreshAdjustments_(cart): Promise<void>

Parameters​

NameType
cartCart

Returns​

Promise<void>

Defined in​

medusa/src/services/cart.ts:2650


refreshPaymentSession​

▸ refreshPaymentSession(cartId, providerId): Promise<void>

Refreshes a payment session on a cart

Parameters​

NameTypeDescription
cartIdstringthe id of the cart to remove from
providerIdstringthe id of the provider whoose payment session should be removed.

Returns​

Promise<void>

the resulting cart.

Defined in​

medusa/src/services/cart.ts:2016


removeDiscount​

▸ removeDiscount(cartId, discountCode): Promise<Cart>

Removes a discount based on a discount code.

Parameters​

NameTypeDescription
cartIdstringthe id of the cart to remove from
discountCodestringthe discount code to remove

Returns​

Promise<Cart>

the resulting cart

Defined in​

medusa/src/services/cart.ts:1506


removeLineItem​

▸ removeLineItem(cartId, lineItemId): Promise<Cart>

Removes a line item from the cart.

Parameters​

NameTypeDescription
cartIdstringthe id of the cart that we will remove from
lineItemIdstringthe line item to remove.

Returns​

Promise<Cart>

the result of the update operation

Defined in​

medusa/src/services/cart.ts:479


retrieve​

▸ retrieve(cartId, options?, totalsConfig?): Promise<Cart>

Gets a cart by id.

Parameters​

NameTypeDescription
cartIdstringthe id of the cart to get.
optionsFindConfig<Cart>the options to get a cart
totalsConfigTotalsConfig

Returns​

Promise<Cart>

the cart document.

Defined in​

medusa/src/services/cart.ts:213


retrieveLegacy​

▸ Protected retrieveLegacy(cartId, options?, totalsConfig?): Promise<Cart>

Deprecated

Parameters​

NameType
cartIdstring
optionsFindConfig<Cart>
totalsConfigTotalsConfig

Returns​

Promise<Cart>

Defined in​

medusa/src/services/cart.ts:261


retrieveWithTotals​

▸ retrieveWithTotals(cartId, options?, totalsConfig?): Promise<WithRequiredProperty<Cart, "total">>

Parameters​

NameType
cartIdstring
optionsFindConfig<Cart>
totalsConfigTotalsConfig

Returns​

Promise<WithRequiredProperty<Cart, "total">>

Defined in​

medusa/src/services/cart.ts:289


setMetadata​

▸ setMetadata(cartId, key, value): Promise<Cart>

Dedicated method to set metadata for a cart. To ensure that plugins does not overwrite each others metadata fields, setMetadata is provided.

Parameters​

NameTypeDescription
cartIdstringthe cart to apply metadata to.
keystringkey for metadata field
valuestring | numbervalue for metadata field.

Returns​

Promise<Cart>

resolves to the updated result.

Defined in​

medusa/src/services/cart.ts:2459


setPaymentSession​

▸ setPaymentSession(cartId, providerId): Promise<void>

Selects a payment session for a cart and creates a payment object in the external provider system

Parameters​

NameTypeDescription
cartIdstringthe id of the cart to add payment method to
providerIdstringthe id of the provider to be set to the cart

Returns​

Promise<void>

Defined in​

medusa/src/services/cart.ts:1669


setPaymentSessions​

▸ setPaymentSessions(cartOrCartId): Promise<void>

Creates, updates and sets payment sessions associated with the cart. The first time the method is called payment sessions will be created for each provider. Additional calls will ensure that payment sessions have correct amounts, currencies, etc. as well as make sure to filter payment sessions that are not available for the cart's region.

Parameters​

NameTypeDescription
cartOrCartIdstring | Cartthe id of the cart to set payment session for

Returns​

Promise<void>

the result of the update operation.

Defined in​

medusa/src/services/cart.ts:1785


setRegion_​

▸ Protected setRegion_(cart, regionId, countryCode): Promise<void>

Set's the region of a cart.

Parameters​

NameTypeDescription
cartCartthe cart to set region on
regionIdstringthe id of the region to set the region to
countryCodenull | stringthe country code to set the country to

Returns​

Promise<void>

the result of the update operation

Defined in​

medusa/src/services/cart.ts:2279


shouldRetryTransaction_​

▸ Protected shouldRetryTransaction_(err): boolean

Parameters​

NameType
errRecord<string, unknown> | { code: string }

Returns​

boolean

Inherited from​

TransactionBaseService.shouldRetryTransaction_

Defined in​

medusa/src/interfaces/transaction-base-service.ts:37


transformQueryForTotals_​

▸ Protected transformQueryForTotals_(config): FindConfig<Cart> & { totalsToSelect: TotalField[] }

Parameters​

NameType
configFindConfig<Cart>

Returns​

FindConfig<Cart> & { totalsToSelect: TotalField[] }

Defined in​

medusa/src/services/cart.ts:2668


update​

▸ update(cartId, data): Promise<Cart>

Parameters​

NameType
cartIdstring
dataCartUpdateProps

Returns​

Promise<Cart>

Defined in​

medusa/src/services/cart.ts:1039


updateBillingAddress_​

▸ Protected updateBillingAddress_(cart, addressOrId, addrRepo): Promise<void>

Updates the cart's billing address.

Parameters​

NameTypeDescription
cartCartthe cart to update
addressOrIdstring | AddressPayload | Partial<Address>the value to set the billing address to
addrRepoRepository<Address>the repository to use for address updates

Returns​

Promise<void>

the result of the update operation

Defined in​

medusa/src/services/cart.ts:1294


updateCustomerId_​

▸ Protected updateCustomerId_(cart, customerId): Promise<void>

Sets the customer id of a cart

Parameters​

NameTypeDescription
cartCartthe cart to add email to
customerIdstringthe customer to add to cart

Returns​

Promise<void>

the result of the update operation

Defined in​

medusa/src/services/cart.ts:1249


updateLineItem​

▸ updateLineItem(cartId, lineItemId, lineItemUpdate): Promise<Cart>

Updates a cart's existing line item.

Parameters​

NameTypeDescription
cartIdstringthe id of the cart to update
lineItemIdstringthe id of the line item to update.
lineItemUpdateLineItemUpdatethe line item to update. Must include an id field.

Returns​

Promise<Cart>

the result of the update operation

Defined in​

medusa/src/services/cart.ts:916


updatePaymentSession​

▸ updatePaymentSession(cartId, update): Promise<Cart>

Updates the currently selected payment session.

Parameters​

NameTypeDescription
cartIdstringthe id of the cart to update the payment session for
updateRecord<string, unknown>the data to update the payment session with

Returns​

Promise<Cart>

the resulting cart

Defined in​

medusa/src/services/cart.ts:1557


updateShippingAddress_​

▸ Protected updateShippingAddress_(cart, addressOrId, addrRepo): Promise<void>

Updates the cart's shipping address.

Parameters​

NameTypeDescription
cartCartthe cart to update
addressOrIdstring | AddressPayload | Partial<Address>the value to set the shipping address to
addrRepoRepository<Address>the repository to use for address updates

Returns​

Promise<void>

the result of the update operation

Defined in​

medusa/src/services/cart.ts:1332


updateUnitPrices_​

▸ Protected updateUnitPrices_(cart, regionId?, customer_id?): Promise<void>

Parameters​

NameType
cartCart
regionId?string
customer_id?string

Returns​

Promise<void>

Defined in​

medusa/src/services/cart.ts:2200


validateLineItem​

▸ Protected validateLineItem(sales_channel_id, lineItem): Promise<boolean>

Check if line item's variant belongs to the cart's sales channel.

Parameters​

NameTypeDescription
sales_channel_idObjectthe cart for the line item
sales_channel_id.sales_channel_idnull | string-
lineItemLineItemValidateDatathe line item being added

Returns​

Promise<boolean>

a boolean indicating validation result

Defined in​

medusa/src/services/cart.ts:576


validateLineItemShipping_​

▸ Protected validateLineItemShipping_(shippingMethods, lineItem): boolean

Checks if a given line item has a shipping method that can fulfill it. Returns true if all products in the cart can be fulfilled with the current shipping methods.

Parameters​

NameTypeDescription
shippingMethodsShippingMethod[]the set of shipping methods to check from
lineItemLineItemthe line item

Returns​

boolean

boolean representing whether shipping method is validated

Defined in​

medusa/src/services/cart.ts:545


withTransaction​

▸ withTransaction(transactionManager?): CartService

Parameters​

NameType
transactionManager?EntityManager

Returns​

CartService

Inherited from​

TransactionBaseService.withTransaction

Defined in​

medusa/src/interfaces/transaction-base-service.ts:20

Was this section helpful?