Class: CartService
Hierarchy
TransactionBaseService
↳
CartService
Constructors
constructor
• new CartService(__namedParameters
)
Parameters
Name | Type |
---|---|
__namedParameters | InjectedDependencies |
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
Name | Type |
---|---|
CREATED | string |
CUSTOMER_UPDATED | string |
UPDATED | string |
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
Name | Type | Default value | Description |
---|---|---|---|
cartId | string | undefined | the id of the cart that we will add to |
lineItem | LineItem | undefined | the line item to add. |
config | Object | undefined | validateSalesChannels - should check if product belongs to the same sales chanel as cart (if cart has associated sales channel) |
config.validateSalesChannels | boolean | true | - |
Returns
Promise
<void
>
the result of the update operation
Defined in
medusa/src/services/cart.ts:617
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
Name | Type | Default value | Description |
---|---|---|---|
cartId | string | undefined | the id of the cart that we will add to |
lineItems | LineItem | LineItem [] | undefined | the line items to add. |
config | Object | undefined | validateSalesChannels - should check if product belongs to the same sales chanel as cart (if cart has associated sales channel) |
config.validateSalesChannels | boolean | true | - |
Returns
Promise
<void
>
the result of the update operation
Defined in
medusa/src/services/cart.ts:750
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
Name | Type | Description |
---|---|---|
cartOrId | string | Cart | the id of the cart to add shipping method to |
optionId | string | id of shipping option to add as valid method |
data | Record <string , unknown > | the fulmillment data for the method |
Returns
Promise
<Cart
>
the result of the update operation
Defined in
medusa/src/services/cart.ts:2097
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
Name | Type | Description |
---|---|---|
cart | Cart | the cart to adjust free shipping for |
shouldAdd | boolean | flag to indicate, if we should add or remove |
Returns
Promise
<void
>
void
Defined in
medusa/src/services/cart.ts:1011
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
Name | Type | Description |
---|---|---|
cart | Cart | the cart to update |
discountCode | string | the discount code |
Returns
Promise
<void
>
Defined in
medusa/src/services/cart.ts:1431
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
Name | Type | Description |
---|---|---|
cart | Cart | the cart to update |
discountCodes | string [] | the discount code(s) to apply |
Returns
Promise
<void
>
Defined in
medusa/src/services/cart.ts:1443
applyGiftCard_
▸ Protected
applyGiftCard_(cart
, code
): Promise
<void
>
Parameters
Name | Type |
---|---|
cart | Cart |
code | string |
Returns
Promise
<void
>
Defined in
medusa/src/services/cart.ts:1396
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
Name | Type | Description |
---|---|---|
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
Name | Type | Description |
---|---|---|
cartId | string | the id of the cart to authorize payment for |
context | Record <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:1612
create
▸ create(data
): Promise
<Cart
>
Creates a cart.
Parameters
Name | Type | Description |
---|---|---|
data | CartCreateProps | the 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
Name | Type | Description |
---|---|---|
email | string | the email to use |
Returns
Promise
<Customer
>
the resultign customer object
Defined in
medusa/src/services/cart.ts:1282
createTaxLines
▸ createTaxLines(cartOrId
): Promise
<void
>
Parameters
Name | Type |
---|---|
cartOrId | string | Cart |
Returns
Promise
<void
>
Defined in
medusa/src/services/cart.ts:2529
decorateTotals
▸ decorateTotals(cart
, totalsConfig?
): Promise
<WithRequiredProperty
<Cart
, "total"
>>
Parameters
Name | Type |
---|---|
cart | Cart |
totalsConfig | TotalsConfig |
Returns
Promise
<WithRequiredProperty
<Cart
, "total"
>>
Defined in
medusa/src/services/cart.ts:2583
decorateTotals_
▸ Protected
decorateTotals_(cart
, totalsToSelect
, options?
): Promise
<Cart
>
Deprecated
Use decorateTotals instead
Parameters
Name | Type |
---|---|
cart | Cart |
totalsToSelect | TotalField [] |
options | TotalsConfig |
Returns
Promise
<Cart
>
Defined in
medusa/src/services/cart.ts:2758
delete
▸ delete(cartId
): Promise
<Cart
>
Deletes a cart from the database. Completed carts cannot be deleted.
Parameters
Name | Type | Description |
---|---|---|
cartId | string | the 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:2446
deletePaymentSession
▸ deletePaymentSession(cartId
, providerId
): Promise
<void
>
Removes a payment session from the cart.
Parameters
Name | Type | Description |
---|---|---|
cartId | string | the id of the cart to remove from |
providerId | string | the id of the provider whoose payment session should be removed. |
Returns
Promise
<void
>
the resulting cart.
Defined in
medusa/src/services/cart.ts:1990
deleteTaxLines
▸ deleteTaxLines(id
): Promise
<void
>
Parameters
Name | Type |
---|---|
id | string |
Returns
Promise
<void
>
Defined in
medusa/src/services/cart.ts:2563
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
Name | Type | Description |
---|---|---|
cartCustomShippingOptions | CustomShippingOption [] | the cart's custom shipping options |
optionId | string | id 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:2209
getTotalsRelations
▸ Private
getTotalsRelations(config
): string
[]
Parameters
Name | Type |
---|---|
config | FindConfig <Cart > |
Returns
string
[]
Defined in
medusa/src/services/cart.ts:2809
getValidatedSalesChannel
▸ Protected
getValidatedSalesChannel(salesChannelId?
): Promise
<SalesChannel
>
Parameters
Name | Type |
---|---|
salesChannelId? | string |
Returns
Promise
<SalesChannel
>
Defined in
medusa/src/services/cart.ts:447
list
▸ list(selector
, config?
): Promise
<Cart
[]>
Parameters
Name | Type | Description |
---|---|---|
selector | FilterableCartProps | the query object for find |
config | FindConfig <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
Name | Type | Description |
---|---|---|
cart | Cart | The cart being updated |
newSalesChannelId | string | The new sales channel being assigned to the cart |
Returns
Promise
<void
>
void
Defined in
medusa/src/services/cart.ts:1228
refreshAdjustments_
▸ Protected
refreshAdjustments_(cart
): Promise
<void
>
Parameters
Name | Type |
---|---|
cart | Cart |
Returns
Promise
<void
>
Defined in
medusa/src/services/cart.ts:2682
refreshPaymentSession
▸ refreshPaymentSession(cartId
, providerId
): Promise
<void
>
Refreshes a payment session on a cart
Parameters
Name | Type | Description |
---|---|---|
cartId | string | the id of the cart to remove from |
providerId | string | the id of the provider whoose payment session should be removed. |
Returns
Promise
<void
>
the resulting cart.
Defined in
medusa/src/services/cart.ts:2042
removeDiscount
▸ removeDiscount(cartId
, discountCode
): Promise
<Cart
>
Removes a discount based on a discount code.
Parameters
Name | Type | Description |
---|---|---|
cartId | string | the id of the cart to remove from |
discountCode | string | the discount code to remove |
Returns
Promise
<Cart
>
the resulting cart
Defined in
medusa/src/services/cart.ts:1521
removeLineItem
▸ removeLineItem(cartId
, lineItemId
): Promise
<Cart
>
Removes a line item from the cart.
Parameters
Name | Type | Description |
---|---|---|
cartId | string | the id of the cart that we will remove from |
lineItemId | string | the 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
Name | Type | Description |
---|---|---|
cartId | string | the id of the cart to get. |
options | FindConfig <Cart > | the options to get a cart |
totalsConfig | TotalsConfig |
Returns
Promise
<Cart
>
the cart document.
Defined in
medusa/src/services/cart.ts:213
retrieveLegacy
▸ Protected
retrieveLegacy(cartId
, options?
, totalsConfig?
): Promise
<Cart
>
Deprecated
Parameters
Name | Type |
---|---|
cartId | string |
options | FindConfig <Cart > |
totalsConfig | TotalsConfig |
Returns
Promise
<Cart
>
Defined in
medusa/src/services/cart.ts:261
retrieveWithTotals
▸ retrieveWithTotals(cartId
, options?
, totalsConfig?
): Promise
<WithRequiredProperty
<Cart
, "total"
>>
Parameters
Name | Type |
---|---|
cartId | string |
options | FindConfig <Cart > |
totalsConfig | TotalsConfig |
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
Name | Type | Description |
---|---|---|
cartId | string | the cart to apply metadata to. |
key | string | key for metadata field |
value | string | number | value for metadata field. |
Returns
Promise
<Cart
>
resolves to the updated result.
Defined in
medusa/src/services/cart.ts:2489
setPaymentSession
▸ setPaymentSession(cartId
, providerId
): Promise
<void
>
Selects a payment session for a cart and creates a payment object in the external provider system
Parameters
Name | Type | Description |
---|---|---|
cartId | string | the id of the cart to add payment method to |
providerId | string | the id of the provider to be set to the cart |
Returns
Promise
<void
>
Defined in
medusa/src/services/cart.ts:1691
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
Name | Type | Description |
---|---|---|
cartOrCartId | string | Cart | the 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:1809
setRegion_
▸ Protected
setRegion_(cart
, regionId
, countryCode
): Promise
<void
>
Set's the region of a cart.
Parameters
Name | Type | Description |
---|---|---|
cart | Cart | the cart to set region on |
regionId | string | the id of the region to set the region to |
countryCode | null | string | the country code to set the country to |
Returns
Promise
<void
>
the result of the update operation
Defined in
medusa/src/services/cart.ts:2307
shouldRetryTransaction_
▸ Protected
shouldRetryTransaction_(err
): boolean
Parameters
Name | Type |
---|---|
err | Record <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
Name | Type |
---|---|
config | FindConfig <Cart > |
Returns
FindConfig
<Cart
> & { totalsToSelect
: TotalField
[] }
Defined in
medusa/src/services/cart.ts:2700
update
▸ update(cartId
, data
): Promise
<Cart
>
Parameters
Name | Type |
---|---|
cartId | string |
data | CartUpdateProps |
Returns
Promise
<Cart
>
Defined in
medusa/src/services/cart.ts:1052
updateBillingAddress_
▸ Protected
updateBillingAddress_(cart
, addressOrId
, addrRepo
): Promise
<void
>
Updates the cart's billing address.
Parameters
Name | Type | Description |
---|---|---|
cart | Cart | the cart to update |
addressOrId | string | AddressPayload | Partial <Address > | the value to set the billing address to |
addrRepo | Repository <Address > | the repository to use for address updates |
Returns
Promise
<void
>
the result of the update operation
Defined in
medusa/src/services/cart.ts:1309
updateCustomerId_
▸ Protected
updateCustomerId_(cart
, customerId
): Promise
<void
>
Sets the customer id of a cart
Parameters
Name | Type | Description |
---|---|---|
cart | Cart | the cart to add email to |
customerId | string | the customer to add to cart |
Returns
Promise
<void
>
the result of the update operation
Defined in
medusa/src/services/cart.ts:1264
updateLineItem
▸ updateLineItem(cartId
, lineItemId
, lineItemUpdate
): Promise
<Cart
>
Updates a cart's existing line item.
Parameters
Name | Type | Description |
---|---|---|
cartId | string | the id of the cart to update |
lineItemId | string | the id of the line item to update. |
lineItemUpdate | LineItemUpdate | the 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:927
updatePaymentSession
▸ updatePaymentSession(cartId
, update
): Promise
<Cart
>
Updates the currently selected payment session.
Parameters
Name | Type | Description |
---|---|---|
cartId | string | the id of the cart to update the payment session for |
update | Record <string , unknown > | the data to update the payment session with |
Returns
Promise
<Cart
>
the resulting cart
Defined in
medusa/src/services/cart.ts:1574
updateShippingAddress_
▸ Protected
updateShippingAddress_(cart
, addressOrId
, addrRepo
): Promise
<void
>
Updates the cart's shipping address.
Parameters
Name | Type | Description |
---|---|---|
cart | Cart | the cart to update |
addressOrId | string | AddressPayload | Partial <Address > | the value to set the shipping address to |
addrRepo | Repository <Address > | the repository to use for address updates |
Returns
Promise
<void
>
the result of the update operation
Defined in
medusa/src/services/cart.ts:1347
updateUnitPrices_
▸ Protected
updateUnitPrices_(cart
, regionId?
, customer_id?
): Promise
<void
>
Parameters
Name | Type |
---|---|
cart | Cart |
regionId? | string |
customer_id? | string |
Returns
Promise
<void
>
Defined in
medusa/src/services/cart.ts:2228
validateLineItem
▸ Protected
validateLineItem(sales_channel_id
, lineItem
): Promise
<boolean
>
Check if line item's variant belongs to the cart's sales channel.
Parameters
Name | Type | Description |
---|---|---|
sales_channel_id | Object | the cart for the line item |
sales_channel_id.sales_channel_id | null | string | - |
lineItem | LineItemValidateData | the line item being added |
Returns
Promise
<boolean
>
a boolean indicating validation result
Defined in
medusa/src/services/cart.ts:583
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
Name | Type | Description |
---|---|---|
shippingMethods | ShippingMethod [] | the set of shipping methods to check from |
lineItem | LineItem | the line item |
Returns
boolean
boolean representing whether shipping method is validated
Defined in
medusa/src/services/cart.ts:552
withTransaction
▸ withTransaction(transactionManager?
): CartService
Parameters
Name | Type |
---|---|
transactionManager? | EntityManager |
Returns
Inherited from
TransactionBaseService.withTransaction