Skip to content

WebsiteUser

Overview of the main user classes

classDiagram
  direction RL
  class Segmentation {
    Id
    Name
    ContentSegmentation
    PimSegmentation
    PrimaryHost
    PrimaryPath
    Hostnames
  }
  class Language {
    Id
    CultureCode
  }
  class Business {
    Id
    Name
  }
  class BusinessUnit {
    Id
    Name
    IsDefault
    VatEnabled
    VatPercentage
  }
  class Account {
    Id
    Name
  }
  class Address {
    Name
    AddressOne
    AddressTwo
    City
    ZipCode
    Country
  }
  class WebsiteUser {
    Id
    Name
    Email
    UserName
    PhoneNumber
    LoginStatus
    EmailConfirmed
  }
  class Basket {
    Id
  }
  Segmentation --> Language
  Segmentation --o Business
  Business --o "1..n" BusinessUnit
  Account "0..n" --> BusinessUnit
  WebsiteUser "1..n" --> Account
  Address <-- Account
  Basket --> "0..1" WebsiteUser

The WebsiteUser represents a specific person that can log in to the webshop.

As you can see the WebsiteUser is associated with an Account which in turn is related to a specific BusinessUnit, Business and Segmentation.

Note, it is possible to change the model, so that a WebsiteUser is associated with multiple accounts. But that is not what you get as default.

Create user flow from the webshop

By default the webshop has a "register user"-page where an anonymous user can create a new user on the webshop.

The flow for creating a new user is as follows:

sequenceDiagram
  actor User
  participant Webshop
  participant Bizzkit Mail
  User ->> Webshop : Register with username & password
  activate Webshop
  Webshop ->> Bizzkit Mail : Send "Email Confirmation"-mail
  activate Bizzkit Mail
  Bizzkit Mail --) User: Email
  deactivate Bizzkit Mail
  Webshop ->> User : Check your email
  deactivate Webshop
  User ->> Webshop : Confirm Email
  activate Webshop
  Webshop ->> User : Email confirmed
  deactivate Webshop

Create user flow from the administration site or an integration

You can create/edit/delete users under Website > Logins in the administration site. Similar to this you can create a user from a backend integration using the IWebsiteUserService.

The main difference compared to the webshop flow is you do not specify the user's password when you create the user. For that reason, the user has to set a password at the same time they confirm their email.

The flow can be drawn like this:

sequenceDiagram
  actor User
  actor Admin
  participant Admin Site
  participant Webshop
  participant Bizzkit Mail
  Admin ->> Admin Site : Create user with username
  activate Admin Site
  Admin Site ->> Bizzkit Mail : Send "Email Confirmation"-mail
  activate Bizzkit Mail
  Bizzkit Mail --) User: Email
  deactivate Bizzkit Mail
  Admin Site ->> Admin : User created
  deactivate Admin Site
  User ->> Webshop : Confirm Email and set password
  activate Webshop
  Webshop ->> User : Email confirmed and password set
  deactivate Webshop

It is also possible the user needs to fill out extra information on the first login. This is a typical B2B-requirement, but is not part of the default flow implemented in Bizzkit Blueprint.

Profile

A user that is logged in to the website has the possibility to update their own profile. This is basically editing the information their filled out when they got registered.

Forgot password

A user that is not logged in to the website, but has a login where they forgot the password, can use the "forgot password"-feature. They have to provide the email address for the login and then they get an email with a link to reset the password.

Change password

If you are logged in to the website you can go to "Settings" under your profile and change your password.

Basket

The user can have a basket associated. Read about how that works here