Skip to content

Magento_Company

Magento Modules:

  • Magento_Company
  • Magento_CompanyGraphQl
  • Magento_CompanyPayment
  • Magento_CompanyShipping

Adobe Commerce Packages

  • magento/module-company
  • magento/module-company-graph-ql
  • magento/module-company-payment
  • magento/module-company-shipping

Repository

Note: this repo is only accessible with a Hyvä Enterprise license or as a contributor.

For more details, see: https://www.hyva.io/hyva-enterprise.html.

https://gitlab.hyva.io/hyva-enterprise/b2b/magento2-ee-magento-company

Features

All points are rated according to priority as P1 (critical), P2 (important), P3 (minor).

  • basic - does not break layout/design

Note: All below features assume output only if company accounts are enabled in Stores > Configuration: btob/website_configuration/company_active.

Global

Customer Account Header Navigation Menu

Feature complete (click to expand items checklist)
  • [P1] Add 'Create New Company Account' when logged out
  • [P3] Add 'Company Structure' when logged in
    • [P3] Visible with relevant permissions only (view or manage users/teams)

Company Blocked Header Notice

  • [P2] Global header blocked notice
Visual QA
  • [P3] Blocked notice needs styling (center text and add red background to match Luma)

Account Login (/customer/account/login/)

  • [P1] Add create company section alongside create account option

Company Create (/company/account/create)

Feature complete (click to expand items checklist)
  • [P1] Show form fields and inputs
  • [P2] Validation works
  • [P2] Show region dropdown for supported countries
  • [P1] Successful Company Creation from frontend
  • [P3] Support for customer custom attributes - #24
  • [P3] Client-side validation for existing customer/company accounts (email check)

Luma bug: file/image customer custom attributes are not saved

Future enhancement: Postcode is always required regardless of country (doesn't respect 'postcode is optional' admin setting). This is a bug in Luma/default Magento.

Customer Account Area (all pages)

Feature complete (click to expand items checklist)
  • [P1] Add menu items
    • Company profile, company users, company structure, roles & permissions
  • [P2] Each item visible with relevant permissions only
Visual QA
  • [P3] Menu items ordering - Should match Luma

Customer Account Dashboard (/customer/account/)

  • [P3] Output role

Customer Account Edit (/customer/account/edit/)

Feature complete (click to expand items checklist)
  • [P3] Output role and title

Company Profile Detail Page (/company/profile/)

Feature complete (click to expand items checklist)
  • [P2] Accessible with relevant permissions only (view/edit profile)
  • [P2] Edit profile link
    • [P2] Only output if user has relevant permissions
  • [P2] View account information
    • [P3] Only output if user has relevant permissions [x] [P2] View legal address
    • [P3] Only output if user has relevant permissions
  • [P2] View available payment methods
    • [P3] Only output if user has relevant permissions
  • [P2] View available shipping methods
    • [P3] Only output if user has relevant permissions

    Does not work in Luma - core bug - should be fixed at block level like payments (e.g. suppress toHtml())

Company Profile Edit Page (/company/profile/edit/)

Feature complete (click to expand items checklist)
  • [P2] Accessible with relevant permissions only (edit profile)
  • [P2] Form fields output
    • Company information, legal address
  • [P2] Form fields populated with saved data
  • [P2] Form fields validation
  • [P2] Submit form (update profile)

Future refactoring: review/combine region field implementation with create company page

Company Roles and Permissions Listing (/company/role/)

Feature complete (click to expand items checklist)
  • [P1] Accessible with relevant permissions only (view/manage roles)
  • [P1] Roles listing table
    • ID, Role, Users (count) and Actions columns
  • [P1] Edit role action
    • [P2] Visible with relevant permissions only (manage roles)
  • [P1] Delete role action (see modal features below)
    • [P2] Visible with relevant permissions only (manage roles)
  • [P2] Duplicate role action
    • [P2] Visible with relevant permissions only (manage roles)
  • [P2] Pagination works
  • [P2] Limiter works
  • [P1] Add new role button
    • [P2] Visible with relevant permissions only (manage roles)

Delete Role Modal

  • [P1] Modal with 'are you sure' message and ok/cancel buttons
  • [P1] Delete role
  • [P1] Error message if role cannot be deleted (i.e. has users associated to it)

    Implemented on page reload as global message, not in modal like Luma

Company Roles and Permissions Add New (/company/role/edit/)

Feature complete (click to expand items checklist)
  • [P1] Accessible with relevant permissions only (manage roles)
  • [P2] Add role name
    • [P2] Role name required field validation
  • [P1] Role permissions tree output
  • [P1] Select/deselect permissions
  • [P2] Expand/collapse permissions - via each section in tree
  • [P2] Expand/collapse permissions - globally (links above)
  • [P1] Submit / create role
Visual QA
  • [P2] Title should be 'Add New Role' on main page
  • [P2] Lowest tree level nodes need indenting further (currently align with parent)
  • [P3] Tree chevrons/arrows are the wrong way round (should be ˄ when expanded and ˅ when collapsed)

Company Roles and Permissions Edit (/company/role/edit/id/{id}/)

Feature complete (click to expand items checklist)
  • [P1] Accessible with relevant permissions only (manage roles)
  • [P2] Update role name
    • [P2] Role name required field validation
  • [P1] Role permissions tree output
  • [P1] Select/deselect permissions
  • [P2] Expand/collapse permissions - via each section in tree
  • [P2] Expand/collapse permissions - globally (links above)
  • [P1] Submit / update role
Visual QA
  • [P2] Lowest tree level nodes need indenting further (currently align with parent)
  • [P3] Tree chevrons/arrows are the wrong way round (should be ˄ when expanded and ˅ when collapsed)

Company Users (/company/users/)

Feature complete (click to expand items checklist)
  • [P1] Accessible with relevant permissions only (view/manage users)
  • [P1] Users listing table
    • ID, Name, Email, Role, Team, Status and Actions columns
  • [P1] Edit user action (see modal features below)
    • [P2] Visible with relevant permissions only (manage users)
  • [P1] Delete user action (see modal features below)
    • [P2] Visible with relevant permissions only (manage users)
  • [P2] Switch between all/active/inactive users
  • [P3] Show active users by default
  • [P2] Pagination works
  • [P2] Limiter works
  • [P3] No results message (when filtering inactive with no results)
  • [P1] Add new user button (see modal features below)
    • [P2] Visible with relevant permissions only (manage users)

Add User Modal

  • [P1] Modal with form fields
    • Title, Role Selection, First/Last Name, Email, Phone, Status
  • [P2] Modal form field validation
    • [P3] Don't allow a duplicate email address to be set (see company structure below for detail)
  • [P1] Submit form / add user
  • [P2] Don't show / allow selection of 'Company Administrator' in 'User Role' select field for all other users
    • Should only display for 'Company Administrator' user (but be disabled)
  • [P3] Support for customer custom attributes - #24

Luma bug: file/image customer custom attributes are not saved

Edit User Modal

  • [P1] Modal with form fields pre-populated from existing data
    • Title, Role Selection, First/Last Name, Email, Phone, Status
  • [P2] Modal form field validation
  • [P1] Submit form / update user
  • [P2] Don't allow updating of 'User Role' or 'Status' of company administrator account (should be disabled)
  • [P2] Don't show / allow selection of 'Company Administrator' in 'User Role' select field for all other users
    • Should only display for 'Company Administrator' user (but be disabled)
  • [P3] Support for customer custom attributes - #24

Luma bug: file/image customer custom attributes are not saved

Delete User Modal

  • [P1] Modal with message and delete/make inactive buttons
  • [P2] Only show inactive button if user is currently active
  • [P1] Update user to inactive status
  • [P1] Delete user

Company Structure (/company/)

Completed features (click to expand items checklist)

Non-Company Account Users

  • [P2] Show 'create company account' message and button (link) for non company users only

View Only

  • [P1] Accessible with relevant permissions only (view users/teams only)
  • [P1] View company structure tree output
  • [P2] Expand/collapse tree sections
  • [P2] Expand/collapse all sections
  • [P2] View team tooltip

View & Manage

  • [P1] Accessible with relevant permissions only (manage users/teams)
  • [P1] Company structure tree output
  • [P2] Expand/collapse tree sections
  • [P2] Expand/collapse all sections
  • [P2] Team tooltip
  • [P1] Add user link (see modal features below)
  • [P1] Add team link (see modal features below)
  • [P1] Edit selected user/team link (see modal features below)
  • [P1] Delete selected user/team link (see modal features below)
  • [P1] Select/move users/teams

Add User Modal

  • [P1] Modal with form fields
    • Title, Role Selection, First/Last Name, Email, Phone, Status
  • [P2] Modal form field validation
    • [P3] Don't allow a duplicate email address to be set
  • [P2] Don't show / allow selection of 'Company Administrator' in 'User Role' select field for all other users
  • [P1] Submit form / add user
  • [P2] Don't show / allow selection of 'Company Administrator' in 'User Role' select field
  • [P3] Support for customer custom attributes - #24

Luma bug: file/image customer custom attributes are not saved

Edit User Modal

  • [P2] Show error message if no user selected
  • [P2] Show error message if no items selected
  • [P1] Modal with form fields pre-populated from existing data
    • Title, Role Selection, First/Last Name, Email, Phone, Status
  • [P2] Modal form field validation
  • [P1] Submit form / update user
  • [P2] Don't allow updating of 'User Role' or 'Status' of company administrator account (should be disabled)
  • [P2] Don't show / allow selection of 'Company Administrator' in 'User Role' select field for all other users
    • Should only display for 'Company Administrator' user (but be disabled)
  • [P3] Support for customer custom attributes - #24

Luma bug: file/image customer custom attributes are not saved

Add Team Modal

  • [P1] Modal with form fields
    • Title, Description
  • [P2] Modal form field validation
  • [P1] Submit form / add team

Edit Team Modal

  • [P2] Show error message if no team selected
  • [P2] Show error message if no items selected
  • [P1] Modal with form fields pre-populated from existing data
    • Title, Description
  • [P2] Modal form field validation
  • [P1] Submit form / update team

Delete User Modal

  • [P2] Show error message if no user selected
  • [P2] Show error message if no items selected
  • [P1] Modal with message and delete button
  • [P1] Delete user

Delete Team Modal

  • [P2] Show error message if no team selected
  • [P2] Show error message if no items selected
  • [P1] Modal with message and delete button
  • [P1] Delete team
Unsupported features (click to expand items checklist)
  • [P3] Drag user/team to a new position in the same level

    Feature will not be added. While this can be done in Luma, on page refresh these positions are not saved (it is always alphabetical)

  • [P3] Multiple select/move users/teams
    • Cmd/ctrl select (or shift for a range), then drag as one

Feature unlikely to be added (at least anytime soon).

Access Denied Page (/company/accessdenied/)

For when current user does not have relevant permissions to view a page (they get redirected to this page)

  • [P2] Access Denied Title and Message

Contributors

@ddelgado

Voting

Use 👍 to cast your vote.

Edited by John Hughes
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information