Customer
Requires access scope.
Represents information about a customer of the shop, such as the customer's contact details, their order history, and whether they've agreed to receive marketing material by email.
Caution: Only use this data if it's required for your app's functionality. Shopify will restrict access to scopes for apps that don't have a legitimate use for the associated data.
Anchor to Fields and connectionsFields and connections
- Anchor to addressesaddresses•[Mailing
Address!]!non-null A list of addresses associated with the customer.
- Anchor to addressesV2addresses•Mailing
V2 Address Connection!non-null The addresses associated with the customer.
- Anchor to amountSpentamount•Money
Spent V2!non-null The total amount that the customer has spent on orders in their lifetime.
- Anchor to canDeletecan•Boolean!non-null
Delete Whether the merchant can delete the customer from their store.
A customer can be deleted from a store only if they haven't yet made an order. After a customer makes an order, they can't be deleted from a store.
- Anchor to companyContactProfilescompany•[Company
Contact Profiles Contact!]!non-null A list of the customer's company contact profiles.
- Anchor to createdAtcreated•Date
At Time!non-null The date and time when the customer was added to the store.
- Anchor to dataSaleOptOutdata•Boolean!non-null
Sale Opt Out Whether the customer has opted out of having their data sold.
- Anchor to defaultAddressdefault•Mailing
Address Address The default address associated with the customer.
- Anchor to defaultEmailAddressdefault•Customer
Email Address Email Address The customer's default email address.
- Anchor to defaultPhoneNumberdefault•Customer
Phone Number Phone Number The customer's default phone number.
- Anchor to displayNamedisplay•String!non-null
Name The full name of the customer, based on the values for first_name and last_name. If the first_name and last_name are not available, then this falls back to the customer's email address, and if that is not available, the customer's phone number.
- Anchor to eventsevents•Event
Connection!non-null A list of events associated with the customer.
- Anchor to firstNamefirst•String
Name The customer's first name.
- •ID!non-null
A globally-unique ID.
- Anchor to imageimage•Image!non-null
The image associated with the customer.
- Anchor to lastNamelast•String
Name The customer's last name.
- Anchor to lastOrderlast•Order
Order The customer's last order.
- Anchor to legacyResourceIdlegacy•Unsigned
Resource Id Int64!non-null The ID of the corresponding resource in the REST Admin API.
- Anchor to lifetimeDurationlifetime•String!non-null
Duration The amount of time since the customer was first added to the store.
Example: 'about 12 years'.
- Anchor to localelocale•String!non-null
The customer's locale.
- Anchor to mergeablemergeable•Customer
Mergeable!non-null Whether the customer can be merged with another customer.
- Anchor to metafieldmetafield•Metafield
A custom field, including its
namespace
andkey
, that's associated with a Shopify resource for the purposes of adding and storing additional information.- Anchor to metafieldsmetafields•Metafield
Connection!non-null A list of custom fields that a merchant associates with a Shopify resource.
- Anchor to multipassIdentifiermultipass•String
Identifier A unique identifier for the customer that's used with Multipass login.
- Anchor to notenote•String
A note about the customer.
- Anchor to numberOfOrdersnumber•Unsigned
Of Orders Int64!non-null The number of orders that the customer has made at the store in their lifetime.
- Anchor to ordersorders•Order
Connection!non-null A list of the customer's orders.
- Anchor to paymentMethodspayment•Customer
Methods Payment Method Connection!non-null A list of the customer's payment methods.
- Anchor to productSubscriberStatusproduct•Customer
Subscriber Status Product Subscriber Status!non-null Possible subscriber states of a customer defined by their subscription contracts.
- Anchor to statestate•Customer
State!non-null The state of the customer's account with the shop.
Please note that this only meaningful when Classic Customer Accounts is active.
- Anchor to statisticsstatistics•Customer
Statistics!non-null The statistics for a given customer.
- Anchor to storeCreditAccountsstore•Store
Credit Accounts Credit Account Connection!non-null Returns a list of store credit accounts that belong to the owner resource. A store credit account owner can hold multiple accounts each with a different currency.
- Anchor to subscriptionContractssubscription•Subscription
Contracts Contract Connection!non-null A list of the customer's subscription contracts.
- •[String!]!non-null
A comma separated list of tags that have been added to the customer.
- Anchor to taxExempttax•Boolean!non-null
Exempt Whether the customer is exempt from being charged taxes on their orders.
- Anchor to taxExemptionstax•[Tax
Exemptions Exemption!]!non-null The list of tax exemptions applied to the customer.
- Anchor to updatedAtupdated•Date
At Time!non-null The date and time when the customer was last updated.
- Anchor to verifiedEmailverified•Boolean!non-null
Email Whether the customer has verified their email address. Defaults to
true
if the customer is created through the Shopify admin or API.
Deprecated fields and connections
- Anchor to emailemail•StringDeprecated
- Anchor to emailMarketingConsentemail•Customer
Marketing Consent Email Marketing Consent StateDeprecated - Anchor to hasTimelineCommenthas•Boolean!non-nullDeprecated
Timeline Comment - Anchor to marketmarket•MarketDeprecated
- Anchor to metafieldDefinitionsmetafield•Metafield
Definitions Definition Connection!non-nullDeprecated - Anchor to phonephone•StringDeprecated
- Anchor to smsMarketingConsentsms•Customer
Marketing Consent Sms Marketing Consent StateDeprecated - Anchor to unsubscribeUrlunsubscribe•URL!non-nullDeprecated
Url - Anchor to validEmailAddressvalid•Boolean!non-nullDeprecated
Email Address
Anchor to QueriesQueries
- •query
Returns a Customer resource by ID.
- •query
Return a customer by an identifier.
- •query
Returns a list of customers in your Shopify store, including key information such as name, email, location, and purchase history. Use this query to segment your audience, personalize marketing campaigns, or analyze customer behavior by applying filters based on location, order history, marketing preferences and tags. The
customers
query supports pagination and sorting.
Anchor to MutationsMutations
- •mutation
Add tax exemptions for the customer.
- Anchor to customerIdcustomer•ID!required
Id The ID of the customer to update.
- Anchor to taxExemptionstax•[Tax
Exemptions Exemption!]!required The list of tax exemptions to add for the customer, in the format of an array or a comma-separated list. Example values:
,
.
Arguments
- Anchor to customercustomer•Customer
The updated customer.
- Anchor to userErrorsuser•[User
Errors Error!]!non-null The list of errors that occurred from executing the mutation.
Fields
- •mutation
Create a new customer. As of API version 2022-10, apps using protected customer data must meet the protected customer data requirements.
- Anchor to inputinput•Customer
Input!required The input fields to create a customer.
Arguments
- Anchor to customercustomer•Customer
The created customer.
- Anchor to userErrorsuser•[User
Errors Error!]!non-null The list of errors that occurred from executing the mutation.
Fields
- •mutation
Update a customer's email marketing information information.
- Anchor to inputinput•Customer
Email Marketing Consent Update Input!required Specifies the input fields to update a customer's email marketing consent information.
Arguments
- Anchor to customercustomer•Customer
The updated customer.
- Anchor to userErrorsuser•[Customer
Errors Email Marketing Consent Update User Error!]!non-null The list of errors that occurred from executing the mutation.
Fields
- •mutation
Sends a link to the customer so they can update a specific payment method.
- Anchor to customerPaymentMethodIdcustomer•ID!required
Payment Method Id The payment method to be updated.
- Anchor to emailemail•Email
Input Specifies the payment method update email fields. Only the 'from' and 'bcc' fields are accepted for input.
Arguments
- Anchor to customercustomer•Customer
The customer to whom an update payment method email was sent.
- Anchor to userErrorsuser•[User
Errors Error!]!non-null The list of errors that occurred from executing the mutation.
Fields
- •mutation
Remove tax exemptions from a customer.
- Anchor to customerIdcustomer•ID!required
Id The ID of the customer to update.
- Anchor to taxExemptionstax•[Tax
Exemptions Exemption!]!required The list of tax exemptions to remove for the customer, in the format of an array or a comma-separated list. Example values:
,
.
Arguments
- Anchor to customercustomer•Customer
The updated customer.
- Anchor to userErrorsuser•[User
Errors Error!]!non-null The list of errors that occurred from executing the mutation.
Fields
- •mutation
Replace tax exemptions for a customer.
- Anchor to customerIdcustomer•ID!required
Id The ID of the customer to update.
- Anchor to taxExemptionstax•[Tax
Exemptions Exemption!]!required The list of tax exemptions that will replace the current exemptions for a customer. Can be an array or a comma-separated list. Example values:
,
.
Arguments
- Anchor to customercustomer•Customer
The updated customer.
- Anchor to userErrorsuser•[User
Errors Error!]!non-null The list of errors that occurred from executing the mutation.
Fields
- •mutation
Sends the customer an account invite email.
- Anchor to customerIdcustomer•ID!required
Id The ID of the customer to whom an account invite email is to be sent.
- Anchor to emailemail•Email
Input Specifies the account invite email fields.
Arguments
- Anchor to customercustomer•Customer
The customer to whom an account invite email was sent.
- Anchor to userErrorsuser•[Customer
Errors Send Account Invite Email User Error!]!non-null The list of errors that occurred from executing the mutation.
Fields
- •mutation
Creates or updates a customer in a single mutation.
Use this mutation when syncing information from an external data source into Shopify.
This mutation can be used to create a new customer, update an existing customer by id, or upsert a customer by a unique key (email or phone).
To create a new customer omit the
identifier
argument. To update an existing customer, include theidentifier
with the id of the customer to update.To perform an 'upsert' by unique key (email or phone) use the
identifier
argument to upsert a customer by a unique key (email or phone). If a customer with the specified unique key exists, it will be updated. If not, a new customer will be created with that unique key.As of API version 2022-10, apps using protected customer data must meet the protected customer data requirements
Any list field (e.g. addresses, will be updated so that all included entries are either created or updated, and all existing entries not included will be deleted.
All other fields will be updated to the value passed. Omitted fields will not be updated.
- Anchor to identifieridentifier•Customer
Set Identifiers Specifies the identifier that will be used to lookup the resource.
- Anchor to inputinput•Customer
Set Input!required The properties of the customer.
Arguments
- Anchor to customercustomer•Customer
The created or updated customer.
- Anchor to userErrorsuser•[Customer
Errors Set User Error!]!non-null The list of errors that occurred from executing the mutation.
Fields
- •mutation
Update a customer's SMS marketing consent information.
- Anchor to inputinput•Customer
Sms Marketing Consent Update Input!required Specifies the input fields to update a customer's SMS marketing consent information.
Arguments
- Anchor to customercustomer•Customer
The updated customer.
- Anchor to userErrorsuser•[Customer
Errors Sms Marketing Consent Error!]!non-null The list of errors that occurred from executing the mutation.
Fields
- •mutation
Update a customer's attributes. As of API version 2022-10, apps using protected customer data must meet the protected customer data requirements.
- Anchor to inputinput•Customer
Input!required Provides updated fields for the customer. To set marketing consent, use the
or
mutations instead.
Arguments
- Anchor to customercustomer•Customer
The updated customer.
- Anchor to userErrorsuser•[User
Errors Error!]!non-null The list of errors that occurred from executing the mutation.
Fields
- •mutation
Updates a customer's default address.
- Anchor to addressIdaddress•ID!required
Id The ID of the customer's new default address.
- Anchor to customerIdcustomer•ID!required
Id The ID of the customer whose default address is being updated.
Arguments
- Anchor to customercustomer•Customer
The customer whose address was updated.
- Anchor to userErrorsuser•[User
Errors Error!]!non-null The list of errors that occurred from executing the mutation.
Fields
Anchor to InterfacesInterfaces
- •interface
- •interface
- •interface
- •interface