Class Customer

java.lang.Object
com.broadleafcommerce.customer.domain.Customer
All Implemented Interfaces:
com.broadleafcommerce.data.tracking.core.ContextStateAware, com.broadleafcommerce.data.tracking.core.policy.Owned, Serializable

public class Customer extends Object implements com.broadleafcommerce.data.tracking.core.ContextStateAware, com.broadleafcommerce.data.tracking.core.policy.Owned, Serializable
See Also:
  • Constructor Details

    • Customer

      public Customer()
  • Method Details

    • getName

      public String getName()
      Get the name of the customer. This will provide either the full name, or the combined first, middle, and last names. fullName takes priority. Whether a single name or multiple name fields are used is a client implementation detail.
      Returns:
      The name of the customer.
    • addAttribute

      public Customer addAttribute(String key, Object value)
      Convenience method to add an ann attribute.

      If the attribute already exists, the existing attribute is overwritten.

      Parameters:
      key - The key used to store/retrieve the attribute.
      value - The value to store.
      Returns:
      The customer instance
      See Also:
    • getAttribute

      public <T> T getAttribute(String key)
    • getOwnerIdentifier

      public String getOwnerIdentifier()
      Specified by:
      getOwnerIdentifier in interface com.broadleafcommerce.data.tracking.core.policy.Owned
    • getId

      public String getId()
      The context ID of the customer.
      Returns:
      the context ID of the customer
    • getFirstName

      public String getFirstName()
      The first name of the customer, if the fullName is not being used for the customer.
      Returns:
      the first name of the customer
    • getMiddleName

      public String getMiddleName()
      The middle name of the customer, if the fullName is not being used for the customer.
      Returns:
      the middle name of the customer
    • getLastName

      public String getLastName()
      The last name of the customer, if the fullName is not being used for the customer.
      Returns:
      the last name of the customer
    • getFullName

      public String getFullName()
      The full name of the customer, if the component parts firstName, middleName, and lastName are not being used to comprise the full name.
      Returns:
      the full name of the customer
    • getUsername

      public String getUsername()
      The username of the customer, used to log in.
      Returns:
      the username of the customer
    • getEmail

      public String getEmail()
      The email address of the customer.
      Returns:
      the email address of the customer
    • getExternalId

      public String getExternalId()
      The id that associates this user with an external system.
      Returns:
      The customer's external ID
    • getPhone

      public Phone getPhone()
      The main phone number of the customer.
      Returns:
      the main phone number of the customer
    • getAdditionalPhones

      public List<AdditionalPhone> getAdditionalPhones()
      Additional phone numbers associated with the customer.
      Returns:
      additional phone numbers associated with the customer
    • getDefaultCommunicationPreference

      public String getDefaultCommunicationPreference()
      The default communication preference of the customer.
      Returns:
      the default communication preference of the customer
    • getDefaultPaymentAccountId

      @Deprecated public String getDefaultPaymentAccountId()
      Deprecated.
      since 1.7.2, in favor of using SavedPaymentMethod in PaymentTransactionServices to manage saved payment methods.
      The id of the default payment account.
      Returns:
      defaultAccountId the default payment account of the customer
    • getAttributes

      public Map<String,Object> getAttributes()
      Dynamic attributes that are a part of the customer. This is an admin-entered field.
      Returns:
      dynamic attributes that are a part of the customer
    • getSpecialType

      public String getSpecialType()
      The type of the customer, if it's in a special circumstance.
      Returns:
      The type of the customer, if it's in a special circumstance.
      See Also:
    • isActive

      public boolean isActive()
      Is this customer active? Inactive customers can be thought of as "disabled" and will not be able to login. A customer set to inactive must be manually re-activated.

      Note: If manually setting this to false (e.g. via a direct database update), the auth user record (JpaUser#active in the auth database) must also be set to false.

      See also locked

      Returns:
      Is this customer active?
    • getTaxId

      public String getTaxId()
      The tax id for this customer
    • getVatRegistrationId

      public String getVatRegistrationId()
      Optional VAT registration ID.
      See Also:
    • getContextState

      public com.broadleafcommerce.data.tracking.core.filtering.business.domain.ContextState getContextState()
      A subset of Tracking information to expose the context state for this object.
      Specified by:
      getContextState in interface com.broadleafcommerce.data.tracking.core.ContextStateAware
      Returns:
      a subset of Tracking information to expose the context state for this object.
    • isLocked

      public boolean isLocked()
      Is this user locked? A user may be locked due to too many failed login attempts. Note that, depending on user lock configuration, this may have no effect. If permanently disabling a customer is desired, the active flag should be used instead.
      Returns:
      is this customer locked?
    • getDefaultAccountId

      public String getDefaultAccountId()
      The default account for the customer. If set, the customer will automatically have this account selected on login.
      Returns:
      The default account id.
    • setId

      public void setId(String id)
      The context ID of the customer.
      Parameters:
      id - the context ID of the customer
    • setFirstName

      public void setFirstName(String firstName)
      The first name of the customer, if the fullName is not being used for the customer.
      Parameters:
      firstName - the first name of the customer
    • setMiddleName

      public void setMiddleName(String middleName)
      The middle name of the customer, if the fullName is not being used for the customer.
      Parameters:
      middleName - the middle name of the customer
    • setLastName

      public void setLastName(String lastName)
      The last name of the customer, if the fullName is not being used for the customer.
      Parameters:
      lastName - the last name of the customer
    • setFullName

      public void setFullName(String fullName)
      The full name of the customer, if the component parts firstName, middleName, and lastName are not being used to comprise the full name.
      Parameters:
      fullName - the full name of the customer
    • setUsername

      public void setUsername(String username)
      The username of the customer, used to log in.
      Parameters:
      username - the username of the customer
    • setEmail

      public void setEmail(String email)
      The email address of the customer.
      Parameters:
      email - the email address of the customer
    • setExternalId

      public void setExternalId(String externalId)
      The id that associates this user with an external system.
      Parameters:
      externalId - The customer's external ID
    • setPhone

      public void setPhone(Phone phone)
      The main phone number of the customer.
      Parameters:
      phone - the main phone number of the customer
    • setAdditionalPhones

      public void setAdditionalPhones(List<AdditionalPhone> additionalPhones)
      Additional phone numbers associated with the customer.
      Parameters:
      additionalPhones - additional phone numbers associated with the customer
    • setDefaultCommunicationPreference

      public void setDefaultCommunicationPreference(String defaultCommunicationPreference)
      The default communication preference of the customer.
      Parameters:
      communicationPreference - the default communication preference of the customer
    • setDefaultPaymentAccountId

      @Deprecated public void setDefaultPaymentAccountId(String defaultPaymentAccountId)
      Deprecated.
      since 1.7.2, in favor of using SavedPaymentMethod in PaymentTransactionServices to manage saved payment methods.
      The id of the default payment account.
      Parameters:
      defaultAccountId - the default payment account of the customer
    • setAttributes

      public void setAttributes(Map<String,Object> attributes)
      Dynamic attributes that are a part of the customer. This is an admin-entered field.
      Parameters:
      attributes - dynamic attributes that are a part of the customer
    • setSpecialType

      public void setSpecialType(String specialType)
      The type of the customer, if it's in a special circumstance.
      Parameters:
      type - The type of the customer, if it's in a special circumstance.
      See Also:
    • setActive

      public void setActive(boolean active)
      Is this customer active? Inactive customers can be thought of as "disabled" and will not be able to login. A customer set to inactive must be manually re-activated.

      Note: If manually setting this to false (e.g. via a direct database update), the auth user record (JpaUser#active in the auth database) must also be set to false.

      See also locked

      Parameters:
      active - Is this customer active?
    • setTaxId

      public void setTaxId(String taxId)
      The tax id for this customer
    • setVatRegistrationId

      public void setVatRegistrationId(String vatRegistrationId)
      Optional VAT registration ID.
      See Also:
    • setContextState

      public void setContextState(com.broadleafcommerce.data.tracking.core.filtering.business.domain.ContextState contextState)
      A subset of Tracking information to expose the context state for this object.
      Specified by:
      setContextState in interface com.broadleafcommerce.data.tracking.core.ContextStateAware
      Parameters:
      contextState - a subset of Tracking information to expose the context state for this object
    • setLocked

      public void setLocked(boolean locked)
      Is this user locked? A user may be locked due to too many failed login attempts. Note that, depending on user lock configuration, this may have no effect. If permanently disabling a customer is desired, the active flag should be used instead.
      Parameters:
      locked - is this customer locked?
    • setDefaultAccountId

      public void setDefaultAccountId(String defaultAccountId)
      The default account for the customer. If set, the customer will automatically have this account selected on login.
      Parameters:
      defaultAccountId - The default account id.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • canEqual

      protected boolean canEqual(Object other)
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object