Skip to main content

Class: CustomerService

Provides layer to manipulate customers.

implements {BaseService}

Hierarchy

  • "medusa-interfaces"

    CustomerService

Constructors

constructor

new CustomerService(__namedParameters)

Parameters

NameType
__namedParametersObject

Overrides

BaseService.constructor

Defined in

services/customer.js:20

Properties

Events

Static Events: Object

Type declaration

NameType
CREATEDstring
PASSWORD_RESETstring
UPDATEDstring

Defined in

services/customer.js:14

Methods

addAddress

addAddress(customerId, address): Promise<any>

Parameters

NameType
customerIdany
addressany

Returns

Promise<any>

Defined in

services/customer.js:479


count

count(): Promise<any>

Return the total number of documents in database

Returns

Promise<any>

the result of the count operation

Defined in

services/customer.js:192


create

create(customer): Promise<any>

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
customeranythe customer to create

Returns

Promise<any>

the result of create

Defined in

services/customer.js:290


decorate

decorate(customer, fields?, expandFields?): Customer

Decorates a customer.

Parameters

NameTypeDefault valueDescription
customerCustomerundefinedthe cart to decorate.
fieldsstring[][]the fields to include.
expandFieldsstring[][]fields to expand.

Returns

Customer

return the decorated customer.

Defined in

services/customer.js:547


delete

delete(customerId): Promise<any>

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<any>

the result of the delete operation.

Defined in

services/customer.js:523


generateResetPasswordToken

generateResetPasswordToken(customerId): 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

string

the generated JSON web token

Defined in

services/customer.js:67


hashPassword_

hashPassword_(password): Promise<string>

Hashes a password

Parameters

NameTypeDescription
passwordstringthe value to hash

Returns

Promise<string>

hashed password

Defined in

services/customer.js:277


list

list(selector?, config?): Promise<any>

Parameters

NameTypeDescription
selectoranythe query object for find
configanythe config object containing query settings

Returns

Promise<any>

the result of the find operation

Defined in

services/customer.js:106


listAndCount

listAndCount(selector, config?): Promise<any>

Parameters

NameTypeDescription
selectoranythe query object for find
configFindConfig<Customer>the config object containing query settings

Returns

Promise<any>

the result of the find operation

Defined in

services/customer.js:147


removeAddress

removeAddress(customerId, addressId): Promise<any>

Parameters

NameType
customerIdany
addressIdany

Returns

Promise<any>

Defined in

services/customer.js:460


retrieve

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

Gets a customer by id.

Parameters

NameTypeDescription
customerIdstringthe id of the customer to get.
configanythe config object containing query settings

Returns

Promise<Customer>

the customer document.

Defined in

services/customer.js:205


retrieveByEmail

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

Gets a customer by email.

Parameters

NameTypeDescription
emailstringthe email of the customer to get.
configanythe config object containing query settings

Returns

Promise<Customer>

the customer document.

Defined in

services/customer.js:230


retrieveByPhone

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

Gets a customer by phone.

Parameters

NameTypeDescription
phonestringthe phone of the customer to get.
configanythe config object containing query settings

Returns

Promise<Customer>

the customer document.

Defined in

services/customer.js:254


update

update(customerId, update): Promise<any>

Updates a customer.

Parameters

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

Returns

Promise<any>

resolves to the update result.

Defined in

services/customer.js:346


updateAddress

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

Parameters

NameType
customerIdany
addressIdany
addressany

Returns

Promise<any>

Defined in

services/customer.js:441


updateBillingAddress_

updateBillingAddress_(customer, addressOrId, addrRepo): Promise<any>

Updates the customers' billing address.

Parameters

NameTypeDescription
customerCustomerthe Customer to update
addressOrIdanythe value to set the billing address to
addrRepoanyaddress repository

Returns

Promise<any>

the result of the update operation

Defined in

services/customer.js:408


withTransaction

withTransaction(transactionManager): CustomerService

Parameters

NameType
transactionManagerany

Returns

CustomerService

Defined in

services/customer.js:41