Skip to main content

Class: CustomerService

Provides layer to manipulate customers.

Hierarchy​

  • TransactionBaseService

    ↳ CustomerService

Constructors​

constructor​

• new CustomerService(__namedParameters)

Parameters​

NameType
__namedParametersInjectedDependencies

Overrides​

TransactionBaseService.constructor

Defined in​

medusa/src/services/customer.ts:46

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/customer.ts:37


customerRepository_​

• Protected Readonly customerRepository_: Repository<Customer> & { listAndCount: (query: Omit<FindOneOptions<Customer>, "where" | "select" | "relations"> & { order?: FindOptionsOrder<Customer> ; relations?: FindOptionsRelations<Customer> ; select?: FindOptionsSelect<Customer> ; skip?: number ; take?: number ; where: FindOptionsWhere<Customer> | FindOptionsWhere<Customer>[] } & { where: FindOptionsWhere<Customer & { groups?: FindOperator<string[]> }> } & Omit<FindManyOptions<Customer>, "where" | "select" | "relations"> & { order?: FindOptionsOrder<Customer> ; relations?: FindOptionsRelations<Customer> ; select?: FindOptionsSelect<Customer> ; skip?: number ; take?: number ; where: FindOptionsWhere<Customer> | FindOptionsWhere<Customer>[] } & { where: FindOptionsWhere<Customer & { groups?: FindOperator<string[]> }> }, q: undefined | string) => Promise<[Customer[], number]> }

Defined in​

medusa/src/services/customer.ts:36


eventBusService_​

• Protected Readonly eventBusService_: EventBusService

Defined in​

medusa/src/services/customer.ts:38


manager_​

• Protected manager_: EntityManager

Inherited from​

TransactionBaseService.manager_

Defined in​

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


transactionManager_​

• Protected transactionManager_: undefined | EntityManager

Inherited from​

TransactionBaseService.transactionManager_

Defined in​

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


Events​

▪ Static Events: Object

Type declaration​

NameType
CREATEDstring
PASSWORD_RESETstring
UPDATEDstring

Defined in​

medusa/src/services/customer.ts:40

Accessors​

activeManager_​

• Protected get activeManager_(): EntityManager

Returns​

EntityManager

Inherited from​

TransactionBaseService.activeManager_

Defined in​

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

Methods​

addAddress​

▸ addAddress(customerId, address): Promise<Customer | Address>

Parameters​

NameType
customerIdstring
addressAddressCreatePayload

Returns​

Promise<Customer | Address>

Defined in​

medusa/src/services/customer.ts:519


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


count​

▸ count(): Promise<number>

Return the total number of documents in database

Returns​

Promise<number>

the result of the count operation

Defined in​

medusa/src/services/customer.ts:178


create​

▸ create(customer): Promise<Customer>

Creates a customer from an email - customers can have accounts associated, e.g. to login and view order history, etc. If a password is provided the customer will automatically get an account, otherwise the customer is just used to hold details of customers.

Parameters​

NameTypeDescription
customerCreateCustomerInputthe customer to create

Returns​

Promise<Customer>

the result of create

Defined in​

medusa/src/services/customer.ts:306


delete​

▸ delete(customerId): Promise<void | Customer>

Deletes a customer from a given customer id.

Parameters​

NameTypeDescription
customerIdstringthe id of the customer to delete. Must be castable as an ObjectId

Returns​

Promise<void | Customer>

the result of the delete operation.

Defined in​

medusa/src/services/customer.ts:565


generateResetPasswordToken​

▸ generateResetPasswordToken(customerId): Promise<string>

Generate a JSON Web token, that will be sent to a customer, that wishes to reset password. The token will be signed with the customer's current password hash as a secret a long side a payload with userId and the expiry time for the token, which is always 15 minutes.

Parameters​

NameTypeDescription
customerIdstringthe customer to reset the password for

Returns​

Promise<string>

the generated JSON web token

Defined in​

medusa/src/services/customer.ts:68


hashPassword_​

▸ hashPassword_(password): Promise<string>

Hashes a password

Parameters​

NameTypeDescription
passwordstringthe value to hash

Returns​

Promise<string>

hashed password

Defined in​

medusa/src/services/customer.ts:293


list​

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

Parameters​

NameTypeDescription
selectorSelector<Customer> & { groups?: string[] ; q?: string }the query object for find
configFindConfig<Customer>the config object containing query settings

Returns​

Promise<Customer[]>

the result of the find operation

Defined in​

medusa/src/services/customer.ts:111


listAndCount​

▸ listAndCount(selector, config?): Promise<[Customer[], number]>

Parameters​

NameTypeDescription
selectorSelector<Customer> & { groups?: string[] ; q?: string }the query object for find
configFindConfig<Customer>the config object containing query settings

Returns​

Promise<[Customer[], number]>

the result of the find operation

Defined in​

medusa/src/services/customer.ts:143


listByEmail​

▸ listByEmail(email, config?): Promise<Customer[]>

Parameters​

NameType
emailstring
configFindConfig<Customer>

Returns​

Promise<Customer[]>

Defined in​

medusa/src/services/customer.ts:249


removeAddress​

▸ removeAddress(customerId, addressId): Promise<void>

Parameters​

NameType
customerIdstring
addressIdstring

Returns​

Promise<void>

Defined in​

medusa/src/services/customer.ts:502


retrieve​

▸ retrieve(customerId, config?): Promise<Customer>

Gets a customer by id.

Parameters​

NameTypeDescription
customerIdstringthe id of the customer to get.
configFindConfig<Customer>the config object containing query settings

Returns​

Promise<Customer>

the customer document.

Defined in​

medusa/src/services/customer.ts:274


retrieveByEmail​

▸ retrieveByEmail(email, config?): Promise<Customer>

Gets a registered customer by email.

Deprecated

Parameters​

NameTypeDescription
emailstringthe email of the customer to get.
configFindConfig<Customer>the config object containing query settings

Returns​

Promise<Customer>

the customer document.

Defined in​

medusa/src/services/customer.ts:216


retrieveByPhone​

▸ retrieveByPhone(phone, config?): Promise<Customer>

Gets a customer by phone.

Parameters​

NameTypeDescription
phonestringthe phone of the customer to get.
configFindConfig<Customer>the config object containing query settings

Returns​

Promise<Customer>

the customer document.

Defined in​

medusa/src/services/customer.ts:261


retrieveRegisteredByEmail​

▸ retrieveRegisteredByEmail(email, config?): Promise<Customer>

Parameters​

NameType
emailstring
configFindConfig<Customer>

Returns​

Promise<Customer>

Defined in​

medusa/src/services/customer.ts:239


retrieveUnregisteredByEmail​

▸ retrieveUnregisteredByEmail(email, config?): Promise<Customer>

Parameters​

NameType
emailstring
configFindConfig<Customer>

Returns​

Promise<Customer>

Defined in​

medusa/src/services/customer.ts:230


retrieve_​

▸ Private retrieve_(selector, config?): Promise<Customer>

Parameters​

NameType
selectorSelector<Customer>
configFindConfig<Customer>

Returns​

Promise<Customer>

Defined in​

medusa/src/services/customer.ts:185


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


update​

▸ update(customerId, update): Promise<Customer>

Updates a customer.

Parameters​

NameTypeDescription
customerIdstringthe id of the variant. Must be a string that can be casted to an ObjectId
updateUpdateCustomerInputan object with the update values.

Returns​

Promise<Customer>

resolves to the update result.

Defined in​

medusa/src/services/customer.ts:362


updateAddress​

▸ updateAddress(customerId, addressId, address): Promise<Address>

Parameters​

NameType
customerIdstring
addressIdstring
addressStorePostCustomersCustomerAddressesAddressReq

Returns​

Promise<Address>

Defined in​

medusa/src/services/customer.ts:474


updateBillingAddress_​

▸ updateBillingAddress_(customer, addressOrId): Promise<void>

Updates the customers' billing address.

Parameters​

NameTypeDescription
customerCustomerthe Customer to update
addressOrIdundefined | string | DeepPartial<Address>the value to set the billing address to

Returns​

Promise<void>

the result of the update operation

Defined in​

medusa/src/services/customer.ts:422


withTransaction​

▸ withTransaction(transactionManager?): CustomerService

Parameters​

NameType
transactionManager?EntityManager

Returns​

CustomerService

Inherited from​

TransactionBaseService.withTransaction

Defined in​

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

Was this section helpful?