Files
medusa-store/docs/api/store/endpoints/customers.yaml
2021-02-12 08:44:43 +01:00

227 lines
6.7 KiB
YAML

title: Customers
domain: store
routes:
- method: POST
path: /customers
- method: GET
path: /customers/:id
- method: POST
path: /customers/:id
- method: POST
path: /customers/:id/addresses
- method: POST
path: /customers/:id/:address_id
- method: POST
path: /customers/:id/payment-methods
- method: POST
path: /customers/:id/reset-password
- method: POST
path: /customers/:id/reset-password-token
route: /customers
description: >
Customers can create a login to view order history and manage details.
Customers must have unique emails.
endpoints:
- path: /
method: POST
title: Create customer
body:
- name: email
type: String
required: true
description: The Customer's email; must be unique.
- name: first_name
type: String
required: true
description: The Customer's first name.
- name: last_name
type: String
required: true
description: The Customer's last name.
- name: password
type: String
required: true
description: The Customer's desired password.
- name: phone
type: String
description: The customer's phone number.
description: >
Creates a customer profile with the given details. If the email has been
used on previous orders the newly created Customer profile will be able to
view the order history associated with this email.
- path: /:id
method: GET
title: Retrieve customer
params:
- name: id
type: String
description: The id of the Customer to retrieve.
description: >
Retrieves the customer's details. The Customer identified by `id` must be
authenticated.
- path: /:id
method: POST
title: Update customer
params:
- name: id
type: String
description: The id of the customer.
body:
- name: first_name
type: String
description: The Customer's first name.
- name: last_name
type: String
description: The Customer's last name.
- name: password
type: String
description: >
The Customer's password. Will create a hashed value for the database.
- name: phone
type: String
description: The Customer's phone number.
description: >
Updates the customer's details. The customer identified by `id` must be
authenticated in order to call this endpoint.
- path: /:id/addresses
method: POST
title: Create customer shipping address
params:
- name: id
type: String
description: The id of the Customer.
body:
- name: address
type: Address
description: The address to add.
description: >
Adds an address to the customer's saved addresses. The customer must be
authenticated prior to making this call.
- path: /:id/addresses/:address_id
method: POST
title: Update customer shipping address
params:
- name: id
type: String
description: The id of the Customer.
- name: address_id
type: String
description: The id of the saved address to update.
body:
- name: address
type: Address
description: The address to update.
description: >
Updates a saved customer address. The customer must be authenticated prior
to making this call.
- path: /:id/payment-methods
method: GET
title: Retrieve saved payment methods
params:
- name: id
type: String
description: The id of the customer.
description: >
Asks each payment provider for saved payment methods if any exist. This
will only return in methods in the case where the payment provider allows
payment methods to be saved. The customer must be authenticated in order
to call this endpoint.
- path: /password-reset
method: POST
title: Reset password
body:
- name: email
type: String
required: true
description: The email of the Customer.
- name: token
type: String
required: true
description: >
The token that will be used to reset the password. Should be generated
with a prior call to `/password-token`.
- name: password
type: String
required: true
description: >
The new password to authenticate the user with.
description: >
Resets a customer's password. The reset call requires a valid token
- path: /password-token
method: POST
title: Generate password reset token
body:
- name: email
type: String
required: true
description: The email of the Customer profile to reset password for.
description: >
Generates a reset password token. The token should be sent to the customer
via an email provider. Note that this doesn't send any emails it only
generates the token and informs listeners to
`customer.password_token_generated` that the token was created.
response: |
{
"customer": {
"id": "cus_4eThzYSuGv",
"email": "iron@man.com",
"first_name": "Tony",
"last_name": "Stark",
"billing_address": {
"id": "addr_WgNn0BSfIu",
"customer_id": "cus_4eThzYSuGv",
"company": "Stark Industries",
"first_name": "Tony",
"last_name": "Stark",
"address_1": "Hollywood Boulevard 1",
"address_2": null,
"city": "Los Angeles",
"country_code": "US",
"province": "CA",
"postal_code": "90046",
"phone": null,
"created_at": "2020-12-11T17:03:54.458Z",
"updated_at": "2020-12-11T17:03:54.458Z",
"deleted_at": null,
"metadata": null
},
"shipping_addresses": [{
"id": "addr_WgNn0BSfIu",
"customer_id": "cus_4eThzYSuGv",
"company": "Stark Industries",
"first_name": "Tony",
"last_name": "Stark",
"address_1": "Hollywood Boulevard 1",
"address_2": null,
"city": "Los Angeles",
"country_code": "US",
"province": "CA",
"postal_code": "90046",
"phone": null,
"created_at": "2020-12-11T17:03:54.458Z",
"updated_at": "2020-12-11T17:03:54.458Z",
"deleted_at": null,
"metadata": null
}],
"phone": "4242424242",
"has_account": false,
"orders": [{
"id": "order_fi13oadpo2r3vc2g4592",
"status": "pending",
"fulfillment_status": "shipped",
"payment_status": "captured",
"display_id": 50433,
"total": 4004000,
"metadata": null
}],
"created_at": "2020-12-11T17:03:54.458Z",
"updated_at": "2020-12-11T17:03:54.458Z",
"metadata": {}
}
}