Customer profile management is a set of business user activities that refers to configuring, viewing and updating customer related data in Admin app (by business users/managers) and on storefront (by customers via "My Account").
Customer data is composed of basic information without with customer account record cannot exist, additional information managed via custom attributes and shop configurations, wish list, address book and order history.
Due to customer data protection not all data can be changed by business users. Business users can configure and manage additional information and only view the rest (note that order management is handled separately).
Because the platform can host multitude of shops the configurations for viewing and updating customer data is managed at two levels: system level - by defining custom attributes and shop level - by configuring the registration and profile forms, as well as address formatting (see forms and passwords cookbooks for more details on the topic).
Besides look and feel shop owners can also influence the experience of the customer depending on their profile settings. For example customer type property is one of the fundamental tools to create different experience for B2C vs B2B vs B2E vs Guest (B2G). There are many options available for shop to tweak configurations, most of which are clearly visible from the shop overview tab. Another example would be pricing policy and tags which allows to identify customers eligible for special pricing and promotions.
In this section we will primarily discuss the customer account management features both from the admin app and storefront.
Customer data management
Searching and managing customer account
Customer management section offers searching capabilities that allow to look up customer data. Take special note of the filter options that allow to narrow the search by querying specific properties. Once customer is selected the data is loaded into customer data editor that contains multiple tabs for easier data management.
Basic information is listed on the main tab and refers to core properties of a customer profile object (these are always available and do not need to be configured).
SaaS B2B tab provides a quick overview of the core B2B properties of the account.
Shop tab lists all shops that this account is registered. Normally (B2C/B2G) each customer account would be assigned to a single shop i.e. customer with given profile can use it for specific shop where they registered. However the platform allows to share the customer account across several shops - all that is necessary is to add all shops that customer should be allowed to log in to with given account. This feature should be used with care since on one hand it offers a flexible mechanism of sharing customer data between participating shops (e.g. belonging to one company, different branding shops etc) but it also could create controversy in the sense that customer can become puzzled when they see that they are registered in a shop where they have not registered before. See "Customer shops" section below for more details.
Attributes/Images lists all customer attributes values for given profile (these are configured in the attribute management). Note that this view shows all attributes configured on the system i.e. if multiple shops require different attributes all definitions would be visible in the customer management. Visibility of these attributes to the customer (i.e. customer facing data in their "my account" section on the website) is fully controlled via registration and profile forms management, so only data that is configured to be displayed to the customer at shop level will be visible to them. See this cookbook for more details. See "Attributes" section below for more details on default attributes that ship with default platform installation.
Address book tab list all addresses available to this customer. Because address forms and address rendering is configured at shop level, how the address is displayed will depend on selection of a shop in this drop down. Also because shops have notion of "allowed locations" not all addresses will be visible to the customer on the website. See "Address book" section below for more details.
Shops tab shows all shops assigned to this account, which effectively means shops where this account is registered. Customer can use their credentials to login to any of the assigned shops. The options of the available shops depends on the currently logged in business user access, so only relevant shops are visible.
Shop assignments have two states: assigned - this is the state where they appear under the assigned section, which denotes that this is an active customer account; and disabled - this is the state after the red button is click on the assigned shop, which moves it to unassigned but it will also show green activate button. This provides an management mechanism for blocking the accounts. Every time the account is disable in a shop using this method an email notification is sent to the customer. Similarly when shop is assigned back activation email is sent to the customer. This feature is foundation for the "Require Approval" flow during customer registration.
Registration requires approval
Under normal conditions when customer registers on frontend the current shop is automatically assigned to their newly created account. If "Require Approval" feature is configured in shop for specific customer type (say business user want to approve all B2B customer registrations), then the shop assigned is created and set to disabled mode straight away, which also trigger notification to shop administrator that an account needs activation. Shop administrator can then review the customer account and click the green enable button to activate the account.
B2B Master/Sub considerations SaaS
In "B2B Master/Sub shop" configuration customer profile can only be assign to a single shop/sub shop. Multiple sub shop assignments is an invalid use case this configuration and will lead to "random" selection of the sub shop at the point of login.
This configuration is used for B2B setups when main shop (master) contains a collection of sub shops, where customers register. Thus by logging in on master shop they are login through to customer shop (i.e. sub shop), which allows them to have customised experience in terms of catalog, products, fulfilment centres, shipping options and pricing. This is very effective in B2B configuration when a large provider of goods offers e-commerce site to its distributors.
Address book allows to view all addresses associated with given customer account for all web sites that they are registered with (i.e. multiple shop assignments). Not all addresses listed will be available on all web sites as each shop can have shipping and billing address location restrictions. Therefore when address book is displayed on a shop's web site some of these addresses may be filtered out.
Each address pod uses address format configuration as per shop drop drown selection. This drop down is list of all shops that are assigned to this account (i.e. shops customer is registered in). When new address is being added the address form also uses the shop specific address form configurations. More on topic of address formatting and address forms can be found in this cookbook.
In address book section (depicted above) in admin app business user has full control over the addresses that can be added to the customer address book, in contrast to the frontend where customer can only add addresses that satisfy given shop's restrictions. For example shop's shipping and billing location would limit the options of selectable countries on the website.
In addition to this there are multiple modes for address book that can be set at the shop (or sub shop SaaS ) level.
|B2B address book mode|
|Master/Sub Shop configuration with shared address book||The address books are shared at the sub shop level. A "fake" customer account is associated with each shop to allow shop to have shared address book capability. If B2B address book is enabled then customer can only access address book in read only mode and this is the shared sub shop's address book. The purpose for this configuration is to setup verified details at sub shop level, so that customer accounts registered under given sub shop can only choose the address but not modify them.|
|Customer: types that cannot modify address book|
|Per customer type configuration at shop level||In this configuration all customers have their own address book but they cannot modify the details. Only business user can modify addresses. This configuration is used to prevent address book modifications. Typical use case is B2B customers (companies) that need a verified shipping/billing information, which can only be updated by contacting call centre.|
|Customer: types that cannot modify billing address|
|Per customer type configuration at shop level||In this configuration all customers have their own address book but they can only modify shipping addresses, billing addresses are read only. This is a less strict version of the read only customer address book, to ensure that only verified billing addresses are use in orders.|
|Default||Default behaviour is all customer have own address book and can modify shipping and billing addresses.|
In terms of admin app order history can be viewed via order management section where business user can filter orders by customer. It is not typical use case to view all customer order history from the admin app, a more usual use case is searching for specific orders by order number. If however there is a need to perform full order history audits business user does have an option to search by email address to view all orders that were place for given email. If regular audits are required, then another option would be creating a custom order export, or creating a specialised order report.
As for storefront the customer has option to view their order history by period, either last week, last month, last year or all, with default set to last month's orders.
In general CUSTOMER level attributes are customisations specific to shop. However there are some typical attributes that are added out of the box to facilitate registration/profile form configuration, B2B order checkout additional details form, and control B2B checkout flows.
|salutation||3.0.0+||"Proxy" for the salutation core property. Allows to set per language mapping for salutation and used in registration and profile forms|
|firstname||3.0.0+||"Proxy" for the first name core property.|
|middlename||3.0.0+||"Proxy" for the middle name core property.|
|lastname||3.0.0+||"Proxy" for the last name core property.|
|customertype||3.3.0+||"Proxy" for the customer type core property. This is set when customer fills out registration form and account is created. It is possible to change this value from the Admin app later on|
|pricingpolicy||3.3.0+||"Proxy" for the pricing policy core property. This setting for customer allows to access customer specific price lists|
|Custom attribute that stores B2B sub shop property in case of Maste/Sub shop configurations. This allows to register account in sub shops as opposed to master level, which may lead to a personalised experience in terms of product offerings, shipping methods and pricing|
|password||3.5.0+||"Proxy" for the password core property. If this attribute is present in registration form for given customer type enables customers to choose their passwords (if not present then passwords are auto generated). Regex option to force strong passwords is also available|
|confirmPassword||3.5.0+||Corresponding match validation for password in registration forms. Must be added to registration form if password attribute is used.|
|3.5.0+||"Proxy" for the email core property. Allows to set custom email regex.|
|companyname1||3.5.0+||"Proxy" for the company name 1 property. Use in B2B accounts|
|companyname2||3.5.0+||"Proxy" for the company name 2 property. Use in B2B accounts|
|companydepartment||3.5.0+||"Proxy" for the company department property. Use in B2B accounts|
|regAddressForm||3.5.0+||Marker attribute to allow insertion of address forms into registration forms. This marker allows to fill the default customer shipping address when they fill out registration form|
|CUSTOMER_PHONE||3.0.0+||Custom attribute to store default customer contact phone|
|MARKETING_OPT_IN||3.0.0+||Custom attribute to store customer marketing contact preference used in default theme. More attributes can be added for a more diverse preference scheme|
|B2B reference is used to pre fill B2B form during checkout|
|B2B employee ID is used to pre fill B2B form during checkout|
|B2B charge ID is used to pre fill B2B form during checkout|
|Flag set at account level to indicate that orders from this customer must be approved. During checkout the order is placed on hold and shop admin is notified. After order is approved it enters the normal order lifecycle|
|Amount set at account level to indicate that orders from this customer must be approved over the given amount. During checkout the order is placed on hold and shop admin is notified. After order is approved it enters the normal order lifecycle|
|Flag set at account level to block checkout for given customer (i.e. prevent them from placing orders)|
|Amount set at account level to block checkout for given customer if order is over specified amount (i.e. prevent them from placing orders)|