createCustomer mutation
We recommend using the createCustomerV2 mutation to create a customer.
The createCustomer
mutation creates a new customer.
To return or modify information about a customer, we recommend you use customer tokens in the header of your GraphQL calls. However, you also can use session authentication.
Syntax
mutation: {createCustomer(input: CustomerInput!) {CustomerOutput}}
Example usage
The following call creates a new customer.
Request:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mutation {
createCustomer(
input: {
firstname: "Bob"
lastname: "Loblaw"
email: "bobloblaw@example.com"
password: "b0bl0bl@w"
is_subscribed: true
}
) {
customer {
firstname
lastname
email
is_subscribed
}
}
}
Response:
1
2
3
4
5
6
7
8
9
10
11
12
{
"data": {
"createCustomer": {
"customer": {
"firstname": "Bob",
"lastname": "Loblaw",
"email": "bobloblaw@example.com",
"is_subscribed": true
}
}
}
}
Input attributes
The following table lists the attributes you can use as input for the createCustomer
mutation. The Customer attributes table lists the attributes Magento returns.
Attribute | Data Type | Description |
---|---|---|
date_of_birth |
String | The customer’s date of birth. In keeping with current security and privacy best practices, be sure you are aware of any potential legal and security risks associated with the storage of customers’ full date of birth (month, day, year) along with other personal identifiers, such as full name, before collecting or processing such data. |
dob |
String | Deprecated. Use date_of_birth instead. The customer’s date of birth |
email |
String | The customer’s email address. Required to create a customer |
firstname |
String | The customer’s first name. Required to create a customer |
gender |
Int | The customer’s gender (Male - 1, Female - 2) |
is_subscribed |
Boolean | The customer’s new password |
lastname |
String | The customer’s last name. Required to create a customer |
middlename |
String | The customer’s middle name |
password |
String | The customer’s password. Required to create a customer |
prefix |
String | An honorific, such as Dr., Mr., or Mrs. |
suffix |
String | A value such as Sr., Jr., or III |
taxvat |
String | The customer’s Tax/VAT number (for corporate customers) |
Output attributes
The createCustomer
mutation returns the CustomerOutput
object.
The following table lists the top-level attributes of the customer
object. See the customer
query for complete details about this object.
Attribute | Data Type | Description |
---|---|---|
addresses |
CustomerAddress | An array containing the customer’s shipping and billing addresses |
allow_remote_shopping_assistance |
Boolean! | Indicates whether the customer has enabled remote shopping assistance |
compare_list |
CompareList | The contents of the customer’s comparison list |
created_at |
String | Timestamp indicating when the account was created |
date_of_birth |
String | The customer’s date of birth. In keeping with current security and privacy best practices, be sure you are aware of any potential legal and security risks associated with the storage of customers’ full date of birth (month, day, year) along with other personal identifiers, such as full name, before collecting or processing such data. |
default_billing |
String | The ID assigned to the billing address |
default_shipping |
String | The ID assigned to the shipping address |
dob |
String | Deprecated. Use date_of_birth instead. The customer’s date of birth |
email |
String | The customer’s email address |
firstname |
String | The customer’s first name |
gender |
Int | The customer’s gender (Male - 1, Female - 2) |
group_id |
Int | Deprecated. This attribute is not applicable for GraphQL. The group assigned to the user. Default values are 0 (Not logged in), 1 (General), 2 (Wholesale), and 3 (Retailer) |
id |
Int | Deprecated. This attribute is not applicable for GraphQL. The ID assigned to the customer |
is_subscribed |
Boolean | Indicates whether the customer is subscribed to the company’s newsletter |
lastname |
String | The customer’s family name |
middlename |
String | The customer’s middle name |
orders(filter CustomerOrdersFilterInput, currentPage = 1 Int, pageSize = 20 Int) |
[CustomerOrders] | A list of the customer’s placed orders |
prefix |
String | An honorific, such as Dr., Mr., or Mrs. |
return(uid: ID!) |
Return | Gets details about the specified return request |
returns(pageSize: Int = 20 currentPage: Int = 1) |
Returns | Information about the customer’s return requests |
reviews(pageSize: Int = 20 currentPage: Int = 1) |
ProductReviews! | The list of reviews of the product |
reward_points |
[RewardPoints] | Details about the customer’s reward points |
suffix |
String | A value such as Sr., Jr., or III |
taxvat |
String | The customer’s Tax/VAT number (for corporate customers) |
wishlist |
Wishlist! | Deprecated. Use wishlist_v2 instead. Contains the contents of the customer’s wish lists |
wishlist_v2(id ID!) |
[Wishlist]! | Retrieve the specified wish list identified by the unique ID for a Wishlist object |
For B2B, company administrators and users can have the following attributes.
Attribute | Data Type | Description |
---|---|---|
job_title |
String | The job title for a B2B company user |
requisition_lists (pageSize = 20 Int, currentPage = 1 Int, filter RequisitionListFilterInput) |
RequisitionLists | Contains the customer’s requisition lists |
role |
CompanyRole | The role name and permissions assigned to the company user |
status |
CompanyUserStatusEnum | Indicates whether the company user is ACTIVE or INACTIVE |
team |
CompanyTeam | The team the company user is assigned to |
telephone |
String | The phone number of the company user |
Errors
Error | Description |
---|---|
A customer with the same email address already exists in an associated website. |
The email provided in the input .email argument belongs to an existing customer. |
"Email" is not a valid email address. |
The value provided in the input .email argument has an invalid format. |
Field CustomerInput.email of required type String! was not provided |
The input .email argument was omitted. |
Field "xxx" is not defined by type CustomerInput. |
The input .xxx argument is undefined. |
Required parameters are missing: First Name |
The input .firstname argument was omitted or contains an empty value. |