Concept
The relationship between users and sellers is many-to-many. A seller account can have several members (e.g. an owner, a warehouse manager, and a support agent), and a single user can be a member of multiple seller accounts (e.g. a consultant managing stores for different brands). Each membership is a distinct association between a user and a seller account.Member Data
Each member record holds the following information:| Field | Description |
|---|---|
email | The member’s email address, used for login and notifications |
locale | Preferred language/locale for the vendor portal UI |
status | Whether the member is active or deactivated |
Member-Seller Association
When a member is added to a seller account, the association includes:- A reference to the seller account
- A reference to the member
Store Switcher
For users who belong to multiple seller accounts, the vendor portal provides a store switcher. Each store context is fully isolated — when a member switches stores, they see only the data (products, orders, payouts) belonging to that seller account. This isolation ensures that access to one store never leaks information from another, even when the same person manages both.Adding Members
Members can be added to a seller account by:- Operators — via the admin dashboard, an operator can add members to any seller account
- Seller admins — members with admin access can invite new members to their own seller account
Removing Members
Removing a member deletes the association between the user and the seller account. The user’s account continues to exist — they simply lose access to that particular store. Both operators and seller admins can remove members, subject to the constraint that a seller account must always retain at least one admin member.Business Rules
- A seller account must have at least one member with admin access at all times
- Email addresses must be unique within a single seller account
- Members are managed through the seller account lifecycle — if a seller is terminated, all member associations are effectively void