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