import type { CustomerPaymentMethodReference } from './CustomerPaymentMethodReference'; import type { CustomerPaymentInstrument } from './CustomerPaymentInstrument'; import type { CustomerAddress } from './CustomerAddress'; /** * @type Customer: Person or entity who shops on Commerce Cloud storefronts by creating a shopper account in Commerce Cloud. * * @property addresses: The customer\'s addresses. * * @property authType: The customer\'s authorization type (indicates whether the customer is a guest or a registered customer). * * @property birthday: The customer\'s birthday. * * @property companyName: The customer\'s company name. * - **Max Length:** 256 * * @property crmContactId: The customer\'s core contact ID. * - **Max Length:** 18 * * @property creationDate: Returns the value of attribute \'creationDate\'. * * @property currentPassword: The shopper\'s current password. This is only used when attempting to update a shopper\'s `loginId` in a PATCH call. This value is never returned in any response for security reasons, but is validated and must match shopper\'s existing password in order to update `loginId`. Otherwise, an HTTP 400 statusCode is returned and the `loginId` is not updated. This field and functionality is available with B2C Commerce version 24.7. * * @property customerId: The customer\'s number (ID). Both registered and guest customers have an customer ID. * - **Max Length:** 28 * * @property customerNo: The customer\'s number (ID). Only a registered customer has a customer number. * - **Max Length:** 100 * * @property email: The customer\'s email address. * - **Max Length:** 256 * * @property emailVerified: Indicates whether the customer\'s email address has been verified. Only included for customers who registered after the \"Enable Email Verification\" site preference under \"Storefront Login Preferences\" was enabled. This is a read-only field. If included in a PATCH or Register customer request, it\'s ignored. This field is available with B2C Commerce version 26.6. * * @property enabled: A flag indicating whether this customer is enabled and can log in. * * @property fax: The customer\'s fax number. The length is restricted to 32 characters. * - **Max Length:** 32 * * @property firstName: The customer\'s first name. * - **Max Length:** 256 * * @property gender: The customer\'s gender. * * @property hasPassword: Indicates whether the customer has a password set. A value of `false` means the customer was created via another method (for example, social login or passwordless flow). This is a read-only field. If included in a PATCH or Register customer request, it\'s ignored. This field is available with B2C Commerce version 26.6. * * @property hashedLogin: Represents the read-only hashed value for the `loginId` used for Einstein events. This field is available with B2C Commerce version 24.9. * * @property jobTitle: The customer\'s job title. * - **Max Length:** 256 * * @property lastLoginTime: The time when the customer last logged in. * * @property lastModified: Returns the value of attribute \'lastModified\'. * * @property lastName: The customer\'s last name. * - **Max Length:** 256 * * @property lastVisitTime: The time when the customer last visited. * * @property login: The customer\'s login. In a PATCH call, this field can only be updated by providing a valid `currentPassword` for the shopper. The `loginId` update feature is available with B2C Commerce version 24.7, but is disabled by default. Contact Customer Support to enable this feature. * - **Max Length:** 256 * * @property note: The customer\'s note. * * @property paymentInstruments: The customer\'s payment instruments. * * @property paymentMethodReferences: Payment method reference information for Salesforce Payments. * * @property phoneBusiness: The customer\'s business phone number. * - **Max Length:** 32 * * @property phoneHome: The customer\'s home phone number. * - **Max Length:** 32 * * @property phoneMobile: The customer\'s mobile phone number. * - **Max Length:** 32 * * @property preferredLocale: The customer\'s preferred locale. * * @property previousLoginTime: The time when the customer previously logged in. * * @property previousVisitTime: The time when the customer last visited the store. * * @property salutation: The salutation to use for the customer. * - **Max Length:** 256 * * @property secondName: The customer\'s second name. * - **Max Length:** 256 * * @property suffix: The customer\'s suffix (for example, \"Jr.\" or \"Sr.\"). * - **Max Length:** 256 * * @property title: The customer\'s title (for example, \"Mrs\" or \"Mr\"). * - **Max Length:** 256 * */ export type Customer = { addresses?: Array; authType?: CustomerAuthTypeEnum; birthday?: string; companyName?: string; crmContactId?: string; creationDate?: string; currentPassword?: string; customerId?: string; customerNo?: string; email?: string; emailVerified?: boolean; enabled?: boolean; fax?: string; firstName?: string; gender?: number; hasPassword?: boolean; hashedLogin?: string; jobTitle?: string; lastLoginTime?: string; lastModified?: string; lastName?: string; lastVisitTime?: string; login?: string; note?: string; paymentInstruments?: Array; paymentMethodReferences?: Array; phoneBusiness?: string; phoneHome?: string; phoneMobile?: string; preferredLocale?: string; previousLoginTime?: string; previousVisitTime?: string; salutation?: string; secondName?: string; suffix?: string; title?: string; } & { [key: string]: any; }; export type CustomerAuthTypeEnum = 'guest' | 'registered';