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

packages/medusa/src/services/customer.ts:39

Properties

__configModule__

Protected Optional Readonly __configModule__: Record<string, unknown>

Inherited from

TransactionBaseService.__configModule__

Defined in

packages/medusa/src/interfaces/transaction-base-service.ts:10


__container__

Protected Readonly __container__: any

Inherited from

TransactionBaseService.__container__

Defined in

packages/medusa/src/interfaces/transaction-base-service.ts:9


__moduleDeclaration__

Protected Optional Readonly __moduleDeclaration__: Record<string, unknown>

Inherited from

TransactionBaseService.__moduleDeclaration__

Defined in

packages/medusa/src/interfaces/transaction-base-service.ts:11


addressRepository_

Protected Readonly addressRepository_: typeof AddressRepository

Defined in

packages/medusa/src/services/customer.ts:27


customerRepository_

Protected Readonly customerRepository_: typeof CustomerRepository

Defined in

packages/medusa/src/services/customer.ts:26


eventBusService_

Protected Readonly eventBusService_: EventBusService

Defined in

packages/medusa/src/services/customer.ts:28


manager_

Protected Readonly manager_: EntityManager

Overrides

TransactionBaseService.manager_

Defined in

packages/medusa/src/services/customer.ts:30


transactionManager_

Protected Readonly transactionManager_: undefined | EntityManager

Overrides

TransactionBaseService.transactionManager_

Defined in

packages/medusa/src/services/customer.ts:31


Events

Static Events: Object

Type declaration

NameType
CREATEDstring
PASSWORD_RESETstring
UPDATEDstring

Defined in

packages/medusa/src/services/customer.ts:33

Methods

addAddress

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

Parameters

NameType
customerIdstring
addressAddressCreatePayload

Returns

Promise<Customer | Address>

Defined in

packages/medusa/src/services/customer.ts:498


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

packages/medusa/src/interfaces/transaction-base-service.ts:50


count

count(): Promise<number>

Return the total number of documents in database

Returns

Promise<number>

the result of the count operation

Defined in

packages/medusa/src/services/customer.ts:158


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

packages/medusa/src/services/customer.ts:285


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

packages/medusa/src/services/customer.ts:546


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

packages/medusa/src/services/customer.ts:64


hashPassword_

hashPassword_(password): Promise<string>

Hashes a password

Parameters

NameTypeDescription
passwordstringthe value to hash

Returns

Promise<string>

hashed password

Defined in

packages/medusa/src/services/customer.ts:272


list

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

Parameters

NameTypeDescription
selectorSelector<Customer> & { 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

packages/medusa/src/services/customer.ts:107


listAndCount

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

Parameters

NameTypeDescription
selectorSelector<Customer> & { 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

packages/medusa/src/services/customer.ts:131


listByEmail

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

Parameters

NameType
emailstring
configFindConfig<Customer>

Returns

Promise<Customer[]>

Defined in

packages/medusa/src/services/customer.ts:228


removeAddress

removeAddress(customerId, addressId): Promise<void>

Parameters

NameType
customerIdstring
addressIdstring

Returns

Promise<void>

Defined in

packages/medusa/src/services/customer.ts:481


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

packages/medusa/src/services/customer.ts:253


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

packages/medusa/src/services/customer.ts:195


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

packages/medusa/src/services/customer.ts:240


retrieveRegisteredByEmail

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

Parameters

NameType
emailstring
configFindConfig<Customer>

Returns

Promise<Customer>

Defined in

packages/medusa/src/services/customer.ts:218


retrieveUnregisteredByEmail

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

Parameters

NameType
emailstring
configFindConfig<Customer>

Returns

Promise<Customer>

Defined in

packages/medusa/src/services/customer.ts:209


retrieve_

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

Parameters

NameType
selectorSelector<Customer>
configFindConfig<Customer>

Returns

Promise<Customer>

Defined in

packages/medusa/src/services/customer.ts:164


shouldRetryTransaction_

Protected shouldRetryTransaction_(err): boolean

Parameters

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

Returns

boolean

Inherited from

TransactionBaseService.shouldRetryTransaction_

Defined in

packages/medusa/src/interfaces/transaction-base-service.ts:31


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

packages/medusa/src/services/customer.ts:341


updateAddress

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

Parameters

NameType
customerIdstring
addressIdstring
addressStorePostCustomersCustomerAddressesAddressReq

Returns

Promise<Address>

Defined in

packages/medusa/src/services/customer.ts:453


updateBillingAddress_

updateBillingAddress_(customer, addressOrId): Promise<void>

Updates the customers' billing address.

Parameters

NameTypeDescription
customerCustomerthe Customer to update
addressOrIdundefined | string | { address_1?: null | string ; address_2?: null | string ; city?: null | string ; company?: null | string ; country?: null | { id?: number | undefined; iso_2?: string | undefined; iso_3?: string | undefined; num_code?: number | undefined; name?: string | undefined; display_name?: string | undefined; region_id?: string | ... 1 more ... | undefined; region?: { ...; } | undefined; } ; country_code?: null | string ; created_at?: { toString?: {} | undefined; toDateString?: {} | undefined; toTimeString?: {} | undefined; toLocaleString?: {} | undefined; toLocaleDateString?: {} | undefined; toLocaleTimeString?: {} | undefined; ... 37 more ...; [Symbol.toPrimitive]?: {} | undefined; } ; customer?: null | { email?: string | undefined; first_name?: string | undefined; last_name?: string | undefined; billing_address_id?: string | null | undefined; billing_address?: { customer_id?: string | null | undefined; ... 16 more ...; updated_at?: { ...; } | undefined; } | undefined; ... 10 more ...; updated_at?: { ...; } | undef... ; customer_id?: null | string ; deleted_at?: null | { toString?: {} | undefined; toDateString?: {} | undefined; toTimeString?: {} | undefined; toLocaleString?: {} | undefined; toLocaleDateString?: {} | undefined; toLocaleTimeString?: {} | undefined; ... 37 more ...; [Symbol.toPrimitive]?: {} | undefined; } ; first_name?: null | string ; id?: string ; last_name?: null | string ; metadata?: { [x: string]: unknown; } ; phone?: null | string ; postal_code?: null | string ; province?: null | string ; updated_at?: { toString?: {} | undefined; toDateString?: {} | undefined; toTimeString?: {} | undefined; toLocaleString?: {} | undefined; toLocaleDateString?: {} | undefined; toLocaleTimeString?: {} | undefined; ... 37 more ...; [Symbol.toPrimitive]?: {} | undefined; } }the value to set the billing address to

Returns

Promise<void>

the result of the update operation

Defined in

packages/medusa/src/services/customer.ts:401


withTransaction

withTransaction(transactionManager?): CustomerService

Parameters

NameType
transactionManager?EntityManager

Returns

CustomerService

Inherited from

TransactionBaseService.withTransaction

Defined in

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