# Customer Represents a customer, providing access to their personal, account, and order information. ## Type Definition ```graphql type Customer { id: Int customerNumber: String name: String address: Address tags: [String] hasAccess: Boolean username: String firstName: String lastName: String language: Locale currency: Currency acceptsMarketing: Boolean orderCount: Int orderTotal: Float refundCount: Int refundTotal: Float firstOrderDate: String lastOrderDate: String audiences: [String] loyaltyDiscountProgress: LoyaltyDiscountProgress } ``` ## Fields | Field | Type | Description | |-------|------|-------------| | id | Int | Unique identifier for the customer. | | customerNumber | String | The customer number assigned to this customer. | | name | String | The full name of the customer. | | address | Address | The customer's address information. | | tags | [String] | The tags associated with the customer. | | hasAccess | Boolean | Indicates if the customer has access rights to the store. | | username | String | The username of the customer. | | firstName | String | The first name of the customer. | | lastName | String | The last name of the customer. | | language | Locale | The customer's language/locale information. | | currency | Currency | The customer's preferred currency. | | acceptsMarketing | Boolean | Indicates if the customer has accepted marketing communications. | | orderCount | Int | The total number of orders placed by the customer. | | orderTotal | Float | The total amount spent by the customer on orders. | | refundCount | Int | The total number of refunds issued to the customer. | | refundTotal | Float | The total amount refunded to the customer. | | firstOrderDate | String | The date and time of the customer's first order, in RFC 2822 format. | | lastOrderDate | String | The date and time of the customer's most recent order, in RFC 2822 format. | | audiences | [String] | The names of the audiences or segments the customer belongs to. | | loyaltyDiscountProgress | LoyaltyDiscountProgress | Returns the progress of the customer towards the next loyalty discount in a GraphQL compatible format. | ## Relationships The Customer type represents an individual customer within the system. It contains comprehensive profile information including personal details, contact preferences, and historical transaction data. Customers can be associated with multiple orders through the Cart and Review types, and their information is referenced in customer-related mutations through the CustomerCreatePayload type. Customer data also appears in comments through the Comment type. ## Example ```graphql query { customer { id customerNumber name firstName lastName username address { street city } tags hasAccess acceptsMarketing orderCount orderTotal refundCount refundTotal firstOrderDate lastOrderDate language currency audiences loyaltyDiscountProgress { currentProgress nextTierThreshold } } } ``` ## Implements This type does not implement any interfaces. ## Related Types - [Address](/reference/storefront/v1/objects/address) - [Locale](/reference/storefront/v1/objects/locale) - [Currency](/reference/storefront/v1/objects/currency) - [LoyaltyDiscountProgress](/reference/storefront/v1/objects/loyalty-discount-progress)