Multiple customer profiles

2 weeks ago
Hi

We have a few customers that are companies which might be composed of 3 daughter companies. Each daughter company is its own entity, i.e. they all have seperate billing information and discounts at our store, but they share a purchasing department which orders all equipment on their behalf. The employees at the purchasing department typically only have one work email address and therefore aren't able to create multiple users without using fake email addresses.

We want these customers to be able to have a single email+password combination (or SSO login) for each employee at the purchasing department where they can select a profile after login. Each profile corresponds to a department that employee can order for.

Another use case is we sometimes offer employees of a company discounts at our store for personal use. To get the discount you have to use the company email address, but the employee might already be using that email address to order equipment for the company.

Ideally:
Each department has their own basket and order history
Each department has their own metadata required by our ERP system, i.e. customer number
A user can switch between profiles anytime, not just by selecting a profile at login
A user can view the product catalog as any profile and see their discounts, not just during checkout

Is there a plugin out there that does something of this sort?
Or has anyone done something similar and is willing to share?
2 weeks ago
I did implement this in a different eCommerce system which we are replacing now with nopCommerce. I created the profiles as actual users in the system where the email address was the same except with a +department marker (i.e. [email protected]). I then store the ids of those users in a tag on the main user ([email protected]) and wrote custom logic to allow this group of users to switch between accounts.
Not exactly perfect but it works pretty well.

What I've been looking at for nopCommerce is to define the departments using custom fields on a customer and then using custom lists in order to switch between baskets. The order history would be filtered by a custom field as well in order to show only orders from the current department
2 weeks ago
It's going to require customization.  A developer may be able to tap into the existing "Impersonation" feature to select other "profile" (customer account), but it will need some work to use it as a non-administrator.
1 week ago
I implement some of these requirements in this plugin see https://selectsystems.com.au/company-management-system