Magento 2 Extension Sales Staff / Sales Representative

Magento 2 sales representative extension with dedicated staff logins, customer assignment, order on behalf, sales attribution, commission, and optional quotes, visits, APIs, SAML, and Hyvä support.

SoftwareSilo Sales Staff gives sales representatives their own Magento 2 storefront workspace. Staff members sign in separately from customers and administrators. They can work with assigned accounts, help customers buy, and keep their identity attached to the resulting order.

Built for account ownership: Assign customers to an individual representative or a staff group. A customer can have one primary contact and, when enabled, several supporting representatives. Staff may be limited to assigned customers or receive access to all customers within the permitted website.

A sales portal instead of broad admin access: Representatives use a dedicated frontend login and dashboard. Customer lists, search, orders, reports, account actions, and allowed sales tasks remain separate from everyday Magento administration. Session, password reset, login token, and blocked-page settings are configurable.

Work in the customer's real buying context: An authorized representative can open an assigned customer account, use that customer's catalog and checkout context, prepare the cart, and place an order on behalf of the customer. A controlled return action takes the user back to the staff workspace afterward.

Create new customers during a conversation: Staff can register a customer from the frontend when both the store configuration and individual permission allow it. The merchant decides whether the form includes customer group, address, VAT details, and staff-managed password setup.

Price changes remain explicit: Selected representatives can edit cart item prices. The permission is stored per staff account, and the store separately decides whether a zero price is allowed. This supports negotiated phone orders without giving every staff user the same pricing power.

Eligible orders can be corrected by their owner: A permitted representative can reopen one of their assigned orders in configured order states, adjust it through the cart and checkout, and keep the original order identity. This workflow should be tested with payment, inventory, tax, and ERP integrations before release.

Order attribution is part of the data: Magento quotes and orders retain the staff ID, staff group, and calculated commission amount. The admin order grid can display these fields, and authorized administrators can reassign orders when responsibilities change.

Percentage commission is included: Each staff account can have its own percentage. The calculation basis can use net subtotal excluding tax, net subtotal including tax, or a product-discount mode. Cancelled orders reset the stored commission. Confirm the chosen basis with finance before using it for payouts.

Order and product reports are included: Staff and administrators can review attributed order and product activity. Filters, configurable visible columns, and CSV exports help with operational review. These reports are not a payroll or commission-payment ledger.

Customer notes and communication stay close to the account: The customer assignment can carry a working note. Email rules decide whether order messages go to the customer, representative, or both, with optional CC and BCC recipients. The customer dashboard can show the assigned contact when desired.

Quote Management is optional: The separate Quote add-on gives staff and customers a quotation workspace with products, prices, statuses, history, attachments, PDF output, customer feedback, acceptance or rejection, and quote-to-order conversion.

Customer History and Customer Visits are optional: Customer History records structured interactions with topics, descriptions, dates, email delivery, and attachments. Customer Visits adds appointments, customer confirmation or cancellation, visit types and outcomes, ICS files, reminders, and optional Google or Microsoft calendar synchronization.

Integration and login options are separate: CSV Import/Export supports bulk staff maintenance. SOAP/REST and GraphQL provide separate integration paths for staff, groups, assigned customers, authentication, and customer-context tokens. SAML connects the staff login to an identity provider. Two-factor authentication and Hyvä compatibility are also sold separately.

Choose the product by workflow, not by the phrase sales rep: Some Magento extensions mainly assign a backend user to customers or calculate commission. SoftwareSilo is intended for teams that need a customer-facing sales workspace and order-on-behalf process inside the storefront. Compare the actual daily journey before comparing prices.

Start with one team and realistic orders: Define customer ownership, permissions, pricing authority, email recipients, commission basis, and handover rules. Pilot the process with phone orders, normal customer orders, reassignment, cancellation, and any purchased add-ons before rolling it out to the full sales organization.

Dedicated Sales Staff Accounts

Separate accounts clearly separate sales work from customer and admin access.

Frontend Staff Overview

Sales representatives manage daily tasks centrally in their own overview.

Website-Specific Staff Accounts

Sales staff can be managed separately per website.

Sales Staff Groups

Organize teams by region, brand, or responsibility area.

Flexible Customer Assignment

Assign customers to the right sales representatives and keep ownership clear.

Multi-Staff Customer Assignment

Allow multiple sales representatives to support the same customer when required.

Primary Sales Contact per Customer

A primary contact per customer reduces coordination effort.

Mass Assignment in Admin

Set primary responsibilities for many customers in one step.

Customer Relationship Notes

Keep support and sales notes directly on the customer relationship.

Advanced Customer Search

Find relevant customers quickly with search and filter criteria.

Work in Customer Account Context

Sales staff support customers directly in cart and checkout.

Secure Return to Staff Account

After customer actions, staff can return safely to their own account context.

Customer Creation by Sales Staff

Create new customers directly in the sales process and activate accounts faster.

Configurable Customer Registration Fields

Configure which customer registration fields and options are available to sales staff, including customer group, address, VAT, and password setup.

Cart Price Editing

Allow controlled price adjustments by sales staff in cart flows.

Zero-Price Rule Control

Define whether exceptional zero prices are allowed.

Commission per Staff Member

Maintain individual commission values per sales representative.

Flexible Commission Modes

Adapt commission calculation to your compensation model.

Sales Attribution on Orders

Staff member, staff group, and commission stay traceable on each order.

Staff Fields in Order Grid

Display sales-related fields in order overviews for faster control.

Order Reassignment

Reassign orders to another sales representative in bulk actions.

Sales Reports for Orders and Products

Analyze performance per staff member and revenue development with transparency.

CSV Export for Analysis

Export report data quickly for controlling and management workflows.

Order Email Recipient Routing

Define recipient logic for customers and sales staff per process.

Access Rules for Staff Accounts

Allow or restrict sections and actions for staff accounts with precision.

Session and Token Security Settings

Configure session, login token, and password reset lifetimes to fit your policy.

Quote Management (Add-On)

Create, send, and convert quotes into orders.

Order Management (Add-On)

Use advanced workflows for existing order processing.

Customer History (Add-On)

Document customer contacts and account history in a structured way.

Customer Visits (Add-On)

Plan and track field visit activities for sales teams.

SAML Single Sign-on (Add-On)

Integrate staff login into existing identity processes.

  • Current Version1.6.2
  • Compatible with Magento 2.4.6 - 2.4.9
  • Compatible with PHP 8.1 - 8.5

If your environment differs from the listed requirements, we can check compatibility in advance. Please contact us via our contact form.

staff

Version 1.6.2 - 2026-06-12

Added
  • Added explicit ACL resources for staff admin login, reassignment and mass-delete mutation actions
  • Added explicit ACL resources for staff mass activation and deactivation actions
  • Added database indexes for staff assignment columns on order and order-grid tables
  • Added staff password required-character-classes configuration for staff password validation
  • Added support for assigning staff accounts to `All Websites` with `website_id = 0` while keeping website-specific staff sessions and customer access scoped to their storefront website
Changed
  • Reinitialized refreshed customer-list content through Magento's `contentUpdated` event after AJAX updates
  • Staff account password emails no longer include plain-text passwords by default; a new email configuration option can explicitly re-enable the old behavior
  • Staff order listings now hide the commission column when commission display is enabled but the current staff orders have no commission values
  • Signed customer set-password links so passwords cannot be reset from an email-only payload
Fixed
  • Fixed staff customer assignment and unassignment table resolution to respect Magento database table prefixes
  • Fixed staff cart price configuration AJAX to use the controller's GET route and pass the configured zero-price flag to JavaScript
  • Restricted staff customer search endpoints to active staff sessions and prevented empty anonymous customer searches
  • Restricted staff customer search results to customers assigned to the current staff account unless the staff account can access all customers
  • Restricted staff product search to authenticated staff requests and enabled storefront-visible products
  • Fixed admin staff saves so clearing all customer assignments, numeric/JSON customer selections and duplicate customer IDs are handled correctly
  • Fixed admin staff profile images being removed when saving unchanged staff records
  • Fixed frontend staff profile image updates preserving the existing image when no image field is submitted
  • Fixed staff customer impersonation logout so returning from a customer account keeps the staff session active while clearing customer auth state, checkout quote state and stale private-content data
  • Fixed staff order comments to always add new history entries without overwriting existing order history records
  • Fixed admin staff form data persistence after validation errors
  • Fixed customer set-password forms missing Magento form keys during password save
  • Fixed staff password validation to use staff password policy settings consistently across staff registration, reset and customer set-password flows
  • Fixed staff customer registration password fields to use Magento customer password policy validation when staff users create customer accounts
  • Prevented staff order comments from updating history records that belong to a different order
  • Fixed staff setup so fresh Magento installations are not blocked by setting the application area code before Magento's installer user-configuration step
  • Fixed staff edited-order confirmation emails to use the configured edited-order template through the active sales email sender path
  • Removed the stale staff order-sender plugin target that referenced a non-existing internal class
  • Dispatched a staff customer logout event after customer impersonation is cleared
  • Fixed staff edit-order quote cloning across store scopes and cleared edit mode when quote loading fails

Version 1.6.1 - 2026-06-09

Fixed
  • Fixed staff backorder overrides to plug into Magento's stock-state provider API so quote quantity checks receive `StockItemInterface` data instead of product IDs

Version 1.6.0 - 2026-04-23

Added
  • Added staff order-management features directly to the main `staff` module, including order editing, order comments and related staff order workflows, enable by setting can_edit_orders to yes for a sales staff
Changed
  • Refactored internal staff services and removed `MageB2B\Staff\Helper\Data`. Custom integrations that depended on this helper or other internal implementation details should be updated to use the new dedicated services or inject the required Magento services directly
  • Simplified frontend staff assets and customer-list refresh handling
  • Consolidated frontend CSS into `css/source/_module.less` and removed the separate `staff_assets.xml` layout
  • Split frontend JavaScript into dedicated `staff-account.js` and `staff-register.js` modules
  • Hardened order-management actions and comments with stricter request and ownership validation
Fixed
  • Fixed customer account navigation sort order for the staff menu links
  • Fixed admin staff and staff group listing fulltext search

Version 1.5.9 - 2026-03-05

Fixed
  • Fixed an issue where the staff navigation could remain visible after logout because the staff session cookie was not reliably deleted with matching cookie metadata

Version 1.5.8 - 2026-02-27

Changed
  • Increased staff first name and last name storage length
Fixed
  • Prevented registration failures when `region_id` is missing in staff customer address payloads
  • Kept shipping address fields hidden after failed customer registration when `Same As Billing Address` is enabled
  • Hardened staff signup validation for trimmed email input, password confirmation, and configured minimum password length
  • Prevented customer creation with disallowed customer groups in staff customer registration

Version 1.5.7 - 2026-02-25

Changed
  • Require Magento 2.4.4+ support baseline
Fixed
  • Fixed staff registration form confirm password field

Version 1.5.6 - 2026-02-19

Fixed
  • Fixed Magento compatibility issue causing a customer grid error in some environments

Version 1.5.5 - 2026-02-18

Added
  • Added feature for order reports (frontend/admin) for Sales Staff
Changed
  • Staff login redirects now validate destinations to keep sign-in flows on your store
  • Staff one-time login links now use a configurable expiration time (minutes) with a safe default
  • Staff comment updates and customer assignment actions now require stricter ownership checks
Fixed
  • Staff and customer-facing templates now escape dynamic data more consistently

Version 1.5.4 - 2026-01-30

Changed
  • Require Magento 2.4.6+ (framework 103.0.0+) & PHP 8.1+
  • Use version-aware attachment handling (Laminas for 2.4.6/2.4.7, Symfony for 2.4.8+)

Version 1.5.3 - 2026-01-26

Changed
  • Improved staff authentication and impersonation flow

Version 1.5.2 - 2026-01-05

Added
  • Added spanish translation (es_ES)
Changed
  • Changed UI design of My Sales Staff page

Version 1.5.1 - 2025-12-12

Added
  • Added Reset Password button on admin staff edit page to send password reset email to staff member
Fixed
  • Fixed issue accessing My Customers menu in admin when no staff is created in the system
  • Ensured staff and customer login-as sessions from admin are mutually exclusive to prevent mixed storefront identities and duplicate welcome messages

Version 1.5.0 - 2025-12-07

Changed
  • Changed Frontend UI of My Customers to use modern UI (2-column per row)
  • Moved FrontControllerPlugin from global scope to frontend-only for better performance (avoids unnecessary execution in admin area)
  • Unified staff impersonation header menu: consistent menu structure on cached and non-cached pages with labels "My Staff Account", "Customer's Account", "Logout from current customer", "Logout from Staff Account"

Version 1.4.7 - 2025-10-29

Added
  • Added admin customer grid mass action: Assign Primary Sales Staff
Changed
  • Adjusted format for displaying the percentage commission value in frontend under My Account
  • Changed unassign behavior: only customers of the real relation (Staff -> Customers) can be unassigned
Fixed
  • NOT LOGGED IN Customer Group is no longer shown for customer group restriction config, customer filter or customer create customer group selection

Version 1.4.6 - 2025-10-16

Added
  • Added functionality to sort the additional filter groups in frontend for the my customers section through the existing configuration field
Changed
  • Improved frontend customer grid filters for safer input handling, clearer labelling, and better keyboard/mobile behaviour
Fixed
  • Aligned staff impersonation and customer-unassignment flows with platform defaults, propagating impersonation state into cache context so the customer header logout menu persists and enforcing consistent POST validation
  • Refined custom price adjustments to honour configuration and data validation rules
  • Adjusted staff session refresh logic to keep users signed in when cookies rotate as expected
  • Corrected repository list adapters so contract consumers receive populated search results
  • Fixed staff image upload in admin area
  • Prevented Admin 2FA redirect when resending invoice emails by loading staff via repository in SenderBuilder instead of mutating session storage

Version 1.4.5 - 2025-09-28

Fixed
  • Fixed issue with constructor argument of SenderBuilder class for Magento 2.4.6
  • Fixed issue with getStaffNameEmailDetail function, make sure to use {{var order_staff_name_email_detail}} inside the sales order email template

Version 1.4.4 - 2025-08-28

Fixed
  • Fixed issue on issue on isArrayEmpty function

Version 1.3.5 - 2025-08-28

Fixed
  • Fixed issue on issue on isArrayEmpty function

Version 1.4.3 - 2025-08-19

Added
  • Added feature to use default billing / default shipping address filter only (configurable in admin, by default disabled)

Version 1.3.4 - 2025-08-19

Added
  • Added feature to use default billing / default shipping address filter only (configurable in admin, by default disabled)

Version 1.4.2 - 2025-08-18

Fixed
  • Fixed critical issue on individual customer login for staff

Version 1.4.1 - 2025-08-08

Fixed
  • Fixed small issue with PHP 8.4 compatibility

Version 1.4.0 - 2025-07-27

Added
  • Added Login Button on admin edit staff form
  • Added PHP 8.4 compatibility
Changed
  • Refactored Admin to use UI forms
  • Refactored Password Logic
  • Changed Frontend Icons to modern icons (Login/Logout/Delete)
  • Changed Plugin and Observer folder path
  • Removed Sendemail Logic and replaced it with a config for all email templates
  • Removed Select2 Plugin (in favor of custom AJAX instead)
  • Removed config password_already_encrypted
  • Removed deprecated method getFullName()
  • Removed Class Helper/Config.php (in favor of ScopeConfigInterface usage)
  • Removed additional Block "Create Customer" inside My Customers Section (already provided by Staff Menu Link)
  • Refactored Customer to StaffCustomer Model/Repository
  • Added suggest entry to composer.json referencing the Staff Sample Data package for easier onboarding
Fixed
  • Fixed db_schema.xml (wrong nullable attributes)
  • Fixed validation of Staff Register Form
  • Fixed session lifetime for staff sessions now being considered correctly
  • Fixed config staff_can_password_customer
  • Fixed getList() function
  • Fixed created_at, updated_at columns using dateTime Class of Magento 2

Version 1.3.3 - 2025-03-10

Changed
  • Decouple customer view controller and login as customer controller
Fixed
  • Fixed issue that mini cart was not immediately updated upon login as customer

Version 1.3.2 - 2025-02-12

Fixed
  • Fixed an issue with duplicate di.xml definition of HeaderLinksPlugin

Version 1.3.1 - 2025-01-13

Added
  • Added system configuration not_allowed_handles to enable full control about pages which the staff account should be allowed to access
Fixed
  • Fixed issue with admin order when no staff or commission was set

Version 1.3.0 - 2024-10-30

Added
  • Added new feature to define commission for Sales Staff - which will be work for Frontend & Backend Orders
  • Added ACL MageB2B_Staff::login, to allow staff to login as a customer from admin area
  • Added "Delete" and "Login as Staff" Buttons on admin detail page of staff edit
  • Added Class MageB2B\Staff\Block\Account\Staff
Changed
  • Creating a customer from Staff account: When the config is enabled that a password can be specificed, there won't be another email send out to the customer to set his password
  • Creating a customer from Staff account: ow considers correctly the configured minimum password length
  • Changed frontend URL from salesstaff to staff - a legacy router is in place to redirect
  • Changed Plugin of Magento\Customer\Model\Metadata\Form (in favor of: Magento\Sales\Block\Adminhtml\Order\Create\Data)
  • Removed Class MageB2B\Staff\Model\MimePart (in favor of Laminas\Mime\Part)
  • Removed Class MageB2B\Staff\Helper\Logger (in favor of Psr\Log\LoggerInterface)
  • Removed Class MageB2B\Staff\Helper\Address (in favor of Magento\Customer\ViewModel\Address)
  • Removed Class MageB2B\Staff\Helper\Customer (moved function to MageB2B\Staff\Helper\Address)
  • Removed Class MageB2B\Staff\Model\CustomerExtend (no replacement)
  • Refactored Class MageB2B\Staff\Controller\Index\Search (e.g. use Magento 2 Email Validator Class)
  • Refactored Class MageB2B\Staff\Controller\Account\AbstractAccount, now requires StaffSession as Constructor Argument
  • Refactored Sales Order Admin View Sales Staff Block
  • Refactored Staff Account Menu
  • Changed getFullName() to getName() (Staff Model)
Fixed
  • Fixed an issue on customer create from Staff account that the customer's address wasn't saved

Version 1.2.4 - 2024-10-07

Changed
  • Changed Version Class

Version 1.2.3 - 2024-08-13

Changed
  • Changed the way the header of Sales Staff is implemented in Magento 2
  • Changed the Customer ID field to use any external customer ID field defined by an attribute (configuration)
  • Updated the Update Comment Action - improved UI
  • Added mailto tag to customer email address in customer grid in frontend
  • Refactored the cart price edit method (incl. Compatibility to MageB2B_PricesystemCore > 2.0.0)
  • Refactored template files (outsourced JS logic)
Fixed
  • Fixed an issue with saving primary staff in admin area
  • Fixed config setting for pricesystem (will hide when MageB2B_PricesystemCore is not installed)

Version 1.2.2 - 2024-03-06

Changed
  • PHP docs

Version 1.2.1 - 2024-02-19

Fixed
  • Fixed filtering customer group column inside the customers tab of staff members (admin area)
  • Fixed old db_schema_whitelist.json file

Version 1.2.0 - 2024-01-10

Added
  • Added customer group column inside the customers tab of staff members (admin area)
Changed
  • Changed the behavior of the setting restricted customer groups, it will now also affect

Version 1.1.28 - 2023-12-18

Changed
  • Changed require JS instruction for the staff links to wait until full DOM is loaded

Version 1.1.27 - 2023-12-17

Fixed
  • Removed whitespaces on the comment field

Version 1.1.26 - 2023-08-20

Changed
  • Changed the staff information inside the admin order view to a separate box
  • Removed old setup classes (deprecated)
Fixed
  • Fixed JS error when logged in as staff and not selected a customer yet (this error had no implications)

Version 1.1.25 - 2023-07-15

Fixed
  • Magento 2.4.6 compatibility (replacement of Zend_Validator class) and PHPdocs

Version 1.1.24 - 2023-05-28

Fixed
  • Fixed UI component listing

Version 1.1.23 - 2023-05-26

Fixed
  • PHP 8.2 compatibility issues fixed

Version 1.1.22 - 2023-05-24

Added
  • Added sales_staff_id on salesOrder API object (extension attribute)

Version 1.1.21 - 2023-05-23

Added
  • Added new functions inside Staff Repository for the API add-on

Version 1.1.20 - 2023-03-24

Added
  • Added whitelist of URLs for website restriction (Commerce Edition)

Version 1.1.19 - 2023-03-21

Fixed
  • Fixed null exception on empty json check at my orders / my products section (staff-report Add-On)

Version 1.1.18 - 2023-02-22

Fixed
  • Added migration for default staff image, removed from composer map

Version 1.1.17 - 2023-02-03

Fixed
  • Fixed specific filters on my customers page from staff

Version 1.1.16 - 2023-01-24

Changed
  • replaced setFrom() method with setFromByScope()

Version 1.1.15 - 2022-10-14

Added
  • Added uninstall route, see README.md

Version 1.1.14 - 2022-10-12

Fixed
  • Fixed issue when config is set so no password needs to be given for the customer account created by staff

Version 1.1.13 - 2022-09-21

Fixed
  • Fixed logical issue on primary staff assignment at admin area, that old entries were not updated

Version 1.0.13 - 2022-09-21

Fixed
  • Fixed logical issue on primary staff assignment at admin area, that old entries were not updated

Version 1.1.12 - 2022-08-15

Changed
  • Make dynamic staff details config field for the staff detail info on email

Version 1.1.11 - 2022-08-03

Fixed
  • Revert select2 usage path

Version 1.1.10 - 2022-07-24

Fixed
  • Fixed issue PHP Fatal error: During inheritance of JsonSerializable: Uncaught...

Version 1.1.9 - 2022-06-15

Changed
  • Support for additional header links on staff top links
  • Improved the logic of a function: hasAccessToCustomer by adding a check whether customer with the specified customerId exist or not in DB

Version 1.1.8 - 2022-05-17

Fixed
  • Changed priority of arguments of save() function to avoid deprecated issue on PHP8
  • Fixed issue that on fixed store view, the email wasnt in the language - therefore, parameter area needs to be set to the email
  • Fixed that the fixed store view setting should only be applicable in case it's a staff order
Changed
  • Removed staff_order_template & OrderSender class
staff-hyva

Version 1.0.10 - 2026-06-16

Added
  • Added Hyva Tailwind 4 module CSS source registration while keeping Tailwind 3 source compatibility
Changed
  • Aligned the Hyva `My Sales Staff` page with the current Luma card and primary staff carousel experience
Fixed
  • Fixed Tailwind source CSS rules that used opacity shorthand utilities unsupported by Tailwind 3 `@apply`
  • Fixed the Hyva `My Sales Staff` page when no primary staff value has been initialized in the template
  • Fixed the Hyva `My Sales Staff` update form to submit with a valid Magento form key
  • Fixed broken staff image URLs on the Hyva `My Sales Staff` page to fall back to the default staff image
  • Added a clear empty state for the Hyva `My Sales Staff` page when no sales staff is available

Version 1.0.9 - 2026-06-12

Changed
  • Added compatibility with `mageb2b/staff` 1.6.2
  • Added Hyvä support for staff order editing, including the cart edit-mode notice and secure edit-order form submission
  • Added Hyvä order and product report pages with filters, sorting, export, grid columns and Ajax reload support
Fixed
  • Fixed Staff customer grid and dashboard cards to use Hyvä-compatible styling on desktop and mobile
  • Fixed Staff registration styling so CSS is loaded from the module stylesheet instead of inline template CSS
  • Fixed the Hyvä staff customer email search flow to handle the current JSON response and assign customers with a valid form key
  • Fixed staff order comments on Hyvä order pages to use a Hyvä-compatible template
  • Fixed Hyvä staff password forms to use the matching staff or Magento customer password policy for each password context
  • Scoped all Hyvä compatibility layout handles with the `hyva_` prefix so the module no longer overrides Luma staff storefront pages when installed in mixed-theme shops
  • Fixed Hyvä staff styles so Tailwind source CSS is not loaded directly as browser CSS

Version 1.0.8 - 2026-04-15

Fixed
  • Fixed customer account navigation sort order for the `My Sales Staff` link
  • Preserved `Same As Billing Address` state after failed customer registration so shipping fields stay hidden on reload

Version 1.0.7 - 2026-02-27

Added
  • Added a dedicated website text field on the staff signup form
  • Added compatibility requirement for `mageb2b/staff > 1.5.8`
Fixed
  • Fixed staff customer create form submission by including a valid form key and improving country/region field handling for billing validation
  • Fixed same-as-billing handling so hidden shipping fields are disabled during validation and no longer interfere with submit flow
  • Fixed Hyvä staff account signup password validation to use Staff configuration

Version 1.0.6 - 2026-02-25

Fixed
  • Fixed staff registration form confirm password field

Version 1.0.5 - 2025-12-07

Added
  • Added mageb2b/staff 1.5.0 compatibility: unified impersonation header menu with consistent labels
Changed
  • Changed My Customers to a more modern layout
  • Changed My Orders layout to match hyva theme
Fixed
  • Fixed issue on Sort By on My Customers section

Version 1.0.4 - 2025-10-29

Added
  • Added mageb2b/staff 1.4.7 compatibility: Unassign only directly connected customers, don't show the button when Access all customers is set

Version 1.0.3 - 2025-10-17

Added
  • Added mageb2b/staff 1.4.6 compatibility: added impersonation-aware header menu in Hyvä, fixed login as and delete actions
  • When a staff member is logged in as a customer (Login as Customer), the header now shows: My Account (customer account), My Staff Account, Logout from current customer

Version 1.0.2 - 2025-08-19

Added
  • Added Compatibility to mageb2b/staff > 1.4.0

Version 1.0.1 - 2024-10-31

Fixed
  • Fixed few JS error
  • Removed unused JS scripts
Changed
  • Compatibility to mageb2b/staff 1.3.3

Version 1.0.0 - 2024-10-31

Added
  • Initial version
staff-graph-ql

Version 1.0.0 - 2025-02-09

Added
  • Initial version
staff-api

Version 1.0.2 - 2024-07-25

Changed
  • php Docs

Version 1.0.1 - 2023-05-22

Added
  • Added new api handle: /V1/unassign-staffcustomers to allow un-assignment of customers from the staff using an api.

Version 1.0.0 - 2022-05-11

Added
  • Added initial version

Version 1.1.0 - 2022-05-11

Added
  • Added initial version
staff-tfa

Version 1.0.1 - 2026-05-21

Changed
  • Updated `mageb2b/staff` dependency to require `>=1.6.0`

Version 1.0.0 - 2025-11-03

Added
  • Added initial version
staff-saml

Version 1.0.10 - 2026-09-01

Fixed
  • Fixed SAML logout error handling to return a redirect response when logout processing fails
  • Prevented SAML authentication from logging in locally disabled staff accounts

Version 1.0.9 - 2026-06-12

Fixed
  • Fixed SAML account-page access checks so only SAML-managed staff accounts are redirected away from the staff account page when SAML is enabled

Version 1.0.8 - 2026-05-18

Changed
  • Updated `mageb2b/staff` dependency to require `>=1.6.0`
  • Removed obsolete Staff block menu plugin compatibility code
  • Changed SAML logout flag lookup to use the Staff repository instead of direct model loading

Version 1.0.7 - 2025-08-08

Added
  • Added PHP 8.4 compatibility

Version 1.0.6 - 2025-07-02

Fixed
  • Fixed issues with RelayState and Redirect using SAML

Version 1.0.5 - 2025-07-02

Changed
  • Changed staffSession->setData('redirect_after_login') and use RelayState instead for SAML, also renamed parameter to staff_saml_redirect_url_after_login

Version 1.0.4 - 2025-06-22

Added
  • Added possibility to set a custom SAML direct URL after login via $this->staffSession->setData('redirect_after_login', $url);)

Version 1.0.3 - 2025-03-18

Added
  • Added Compatibility to mageb2b/staff 1.3.0
Fixed
  • Fixed wrong redirect on login when SAML setup is not complete or incorrect

Version 1.0.2 - 2024-10-27

Fixed
  • Fixed PHP 8.3 issues, PHP docs and code style

Version 1.0.1 - 2023-03-20

Fixed
  • Fixed syntax error on PHP 7.4 in Class LoginStaffDto

Version 1.0.0 - 2023-03-07

Added
  • Initial version
staff-importexport

Version 1.1.1 - 2026-06-12

Changed
  • Requires `mageb2b/staff: >1.6.2`

Version 1.1.0 - 2026-04-23

Changed
  • Requires `mageb2b/staff: >1.6.0`

Version 1.0.11 - 2026-03-11

Fixed
  • Fixed customer ID resolution to support both numeric IDs and email addresses (case-insensitive)
  • Fixed case-insensitive duplicate email validation during import
  • Fixed replace import behavior to clear stale staff mapping after deletion
  • Fixed customer IDs assignment when saving staff during import

Version 1.0.10 - 2026-02-17

Fixed
  • Fixed Magento compatibility issue in staff import email validation.
  • Improved random token and password length generation to satisfy current coding standard rules.

Version 1.0.9 - 2026-01-05

Fixed
  • Fixed undefined property maxPasswortLength
  • Return a proper download response for the sample file so the browser saves the file instead of rendering it inline

Version 1.0.8 - 2025-07-27

Added
  • Added CHANGELOG.md
  • Added compatibility for mageb2b/staff 1.4.0

Version 1.0.7 - 2025-02-20

Fixed
  • Fixed issue with staff grid UI form

Version 1.0.6 - 2024-10-27

Fixed
  • Fixed issue with Controller Class

Version 1.0.5 - 2024-10-27

Changed
  • Changed Logger to PSR instead of MageB2B\Staff\Helper\Logger

Version 1.0.4 - 2022-12-28

Fixed
  • Fixed undefined constant issue on sample file download

Version 1.0.3 - 2022-08-03

Changed
  • Refactoring for commonHelper

Version 1.0.2 - 2022-07-25

Added
  • Added changes to import staff image with import process. And also added a change so staff image can be deleted when staff is deleted using import-export process. Also, updated the sample file
Changed
  • Improved staff import command class, output errors
  • MageBTB_StaffImportExport -> MageB2B_StaffImportExport
  • phpDocs
Fixed
  • Fixed composer.json
  • Fixed error on StaffImport.php
staff-customervisit

Version 1.2.0 - 2026-04-23

Changed
  • Requires `mageb2b/staff: <1.6.0`
Fixed
  • Fixed admin staff visit listing fulltext search

Version 1.1.4 - 2026-04-15

Fixed
  • Fixed staff account navigation sort order for the customer visit menu links

Version 1.1.3 - 2026-03-07

Fixed
  • Fix staff visit admin URLs for secret key validation

Version 1.1.2 - 2026-01-30

Added
  • Added calendar setting to optionally show/hide weekend days using locale weekend configuration
  • Added logging for cancellation email failures
Changed
  • Calendar view now respects locale "First Day of Week" and weekend settings
  • Normalized calendar data endpoint response shape for consistent consumers
  • Refactored datetime handling to use Magento DateTimeFactory helpers
  • Require Magento 2.4.6+ (framework 103.0.0+)
  • Require MageB2B_Staff 1.5.4+
Fixed
  • Customer action tokens are invalidated after confirm/cancel actions
  • Fixed timed visit creation with 12-hour time inputs (no malformed time strings)
  • Fixed email template directive warnings by removing nested `depend` blocks in visit created/updated emails
  • Fixed ICS controller no-route handling to return a forward result instead of a 500 error
  • Fixed staff visit edit access check
  • Ensured calendar data only returns visits for the currently logged in staff to prevent inaccessible events

Version 1.1.1 - 2026-01-08

Added
  • Added translation es_ES.csv
Changed
  • Updated translations for en_US.csv and de_DE.csv

Version 1.1.0 - 2025-12-16

Added
  • Added configuration to show Recent Visits / Upcoming Visits in Customer's Dashboard
  • External calendar synchronization (Google Calendar + Microsoft/Graph) incl. OAuth connect flow
  • Customer email actions for visits (confirm/cancel links) and ICS download support
  • Visit reminder notifications (cron)
Changed
  • Refactored module for compatibility with newer `MageB2B_Staff` versions and improved visit UI components
Fixed
  • Fixed admin visits listings data source configuration (separate providers for grid vs. staff edit tab)
  • Various stability fixes and translation updates

Version 1.0.4 - 2022-12-02

Fixed
  • Fixed wrong ACL permissions

Version 1.0.3 - 2022-08-03

Changed
  • Removed common helper references
Fixed
  • Fixes when calendar settings are absent

Version 1.0.2 - 2022-05-26

Fixed
  • Fixed map style issue

Version 1.0.1 - 2020-10-03

Added
  • Send inform email to customer when visit created
  • Add customer address selection
  • Add whole day checkbox
  • Create visit + initial visits listing
Fixed
  • Fix route URL parameter
staff-customerhistory

Version 1.2.1 - 2026-05-19

Fixed
  • Fixed customer history revenue display to use Magento currency formatting

Version 1.2.0 - 2026-04-23

Changed
  • Requires `mageb2b/staff: >=1.6.0`

Version 1.1.5 - 2026-02-01

Fixed
  • Support table name prefixes

Version 1.1.4 - 2026-01-08

Added
  • Added translation es_ES.csv
  • Customer preselection via `customer_id` GET parameter for direct customer access
  • Staff access validation with 403 redirect for unauthorized customer access
  • XSS prevention helpers in JavaScript
Changed
  • Changed Dynamic Rating Rules system config to UI (previously, configuration was JSON only)
  • Changed database table from customer_salesstaff_customer_history_files to customer_salesstaff_customer_history_file (automatic patch will be applied)
  • Modal customer search limited to 5 results for better UX
  • Improved styles in modal
  • Updated translations for en_US.csv and de_DE.csv
Fixed
  • Fixed timestamp calculation showing negative days for recently created entries
  • Improved input sanitization

Version 1.1.3 - 2025-12-12

Added
  • Added manage_customer_history attribute to enable/disable My Customer History in frontend per staff
  • Added tab "Customer History" inside staff edit form to view and add customer history in admin
  • Added observer to pass visit data from mageb2b/staff-customervisit

Version 1.1.2 - 2025-12-10

Fixed
  • Fixed getList() function of HistoryFileRepository

Version 1.0.6 - 2025-10-30

Added
  • Added compatibility for mageb2b/staff 1.3.0

Version 1.1.1 - 2025-08-18

Added
  • Added PHP 8.4 compatibility

Version 1.1.0 - 2025-07-23

Added
  • Added new modern, ajax-based UI / design
  • Added display of recent customers (which have been recently updated)
  • Added display of No. of Entries, Revenue, Number of Orders & Rating of the customer
  • Added Rating config (based on number of orders and order amount)
  • Sent to Customer Flag now indicates if a history entry was sent to a customer
  • Added compatibility for mageb2b/staff 1.4.0
  • Added suggest entry to composer.json referencing the Staff Customer History Sample Data package for easier onboarding
Changed
  • Removed enable_send_email_to_customer config because now on each entry its possible to inform the customer of the sales staff account
  • Removed custom topic as it's fully configurable via system configuration which topics should exist
  • allow_delete_own_history config is now set to 1 by default
  • created_at & updated_at are now datetime fields

Version 1.0.5 - 2024-10-27

Added
  • Fixed LoggerInterface issues

Version 1.0.4 - 2024-10-27

Fixed
  • Updated PHP Docs

Version 1.0.3 - 2022-08-03

Changed
  • Removed Common Helper (from mageb2b/staff) references

Version 1.0.2 - 2022-05-26

Fixed
  • Fixed composer version, updated version to 1.0.2

Version 1.0.1 - 2022-05-14

Added
  • Added initial version
staff-quote

Version 1.3.2 - 2026-09-02

Added
  • Added product search to include configurable products
  • Added configurable token-only customer quote actions for view, PDF, accept, reject, feedback, attachment download, add-to-cart, and create-order flows
  • Added a separate customer add-to-cart configuration for accepted quotes
  • Added configurable product option support (selection for customer and staff quote forms)
Changed
  • Required quote valid-until dates are customer-visible quote validity dates
  • Prevented changing the assigned customer after a quote has been sent
  • Changed SKU-like frontend product searches timing out on larger catalogs
  • Changed quote expiry and expiry reminders to apply only to approved customer-visible quotes
Fixed
  • Fixed staff quote item conversion to preserve Magento product buy requests for configurable, bundle, downloadable, and required custom-option products
  • Fixed customer quote request uploads to reject submitted files when customer attachments are disabled
  • Fixed the customer quote create-order modal so it initializes within the frontend quote view
  • Fixed customer-submitted configurable quote items to persist the resolved child SKU and child price instead of the parent product values
  • Fixed duplicate quote item collection state after resource-level item duplication
  • Fixed quote total recalculation by limiting quote model observers to staff quote specific events

Version 1.3.1 - 2026-05-19

Fixed
  • Fixed quote increment flag table resolution to respect Magento database table prefixes
  • Enforced the staff `manage_quotes` permission on direct staff quote controller actions
  • Fixed customer quote PDF downloads to respect the configured customer token policy
  • Fixed disabled direct customer order creation so accepted quotes are not marked as `order_created`
  • Preserved decimal quote item quantities when converting staff quotes to customer carts and orders
  • Fixed admin order creation from discounted staff quotes to use the discounted row-total unit price

Version 1.3.0 - 2026-04-23

Changed
  • Requires `mageb2b/staff: <1.6.0`
  • Rework frontend design
Fixed
  • Fixed admin staff quote listing fulltext search

Version 1.2.5 - 2026-04-15

Changed
  • Reworked the frontend quote layouts
Fixed
  • Fixed customer account navigation ordering for the `My Quotes` and `Request Quote` links

Version 1.2.4 - 2026-02-26

Fixed
  • Secured admin customer-data lookup by requiring quote context and rejecting customer/quote mismatches to prevent cross-customer data exposure
  • Fixed admin quote view invalid-ID handling to redirect with message instead of throwing a controller return type error
  • Improved admin create-order stability with safer product-add handling and more reliable purchase-order payment handling
  • Improved quote update safety by requiring status permission for real status transitions and validating billing/shipping address ownership

Version 1.2.3 - 2026-02-17

Added
  • Added grid collection classes for `StaffQuoteItem` and `StaffQuoteHistory`
Changed
  • Updated compatibility for date formatting in quote list/detail blocks for explicit timezone support

Version 1.2.2 - 2026-01-30

Changed
  • Aligned staff order creation flow with admin guard: requires approved internal status and customer accepted status
  • Route staff order status updates through QuoteStatusManager to preserve timestamps/events
  • Standardized send-to-customer availability rules across list/detail views
  • Use allowed customer status transitions in the staff quote modal
  • Expire quotes at end-of-day when valid_until is date-only to match cron behavior
Fixed
  • Resend flow no longer attempts invalid customer status transitions; refreshes status timestamp on resend
  • Added audit history entries for customer accept/reject actions
  • Status update email now uses provided customer name and new status variables

Version 1.2.1 - 2025-12-04

Changed
  • Replaced custom `TaxDisplay` helper with Magento's native `\Magento\Tax\Model\Config` for tax display configuration (follows Magento best practices)
Fixed
  • Fixed undefined `$_logger` property in customer controllers (AcceptQuote, RejectQuote, FeedbackQuote, ProductSearch) by properly injecting `LoggerInterface`
  • Fixed potential undefined `$staff` variable in catch blocks when email notification fails
  • Fixed FK constraint violation risk in `logHistory()` when no valid staff_id is available - method now safely returns early instead of attempting invalid insert
  • Fixed StaffNavigationLink to include a Staff Session check

Version 1.2.0 - 2025-11-02

Added
  • Added customer search with AJAX autocomplete in admin quote view
  • Added GetCustomerData controller endpoint for loading customer addresses, payment methods, and shipping methods
  • Added automatic population of address and payment/shipping dropdowns when customer is selected
  • Added store view dropdown selector in admin quote view
  • Added automatic date/time management for quote creation and updates via ResourceModel
Changed
  • Changed store view display from static text to dropdown selector in admin quote view
Fixed
  • Fixed customer search dropdown visibility issue with CSS positioning
  • Fixed invalid date display for quotes with zero timestamp in created_at field

Version 1.1.0 - 2025-11-01

Added
  • Added complete admin UI for Staff Quote
  • Added attach quote pdf to emails
  • Added attachment feature incl. configuration options
  • Added display history modal inside staff quote list
  • Added chooser for payment method when creating an order from accepted quote
Changed
  • On customer request quote page, the primary billing and primary shipping address are pre-selected

Version 1.0.0 - 2025-09-17

Added
  • Added initial version
Module-Specific Questions
What is a Magento 2 sales representative extension?

It connects sales representatives with Magento customers and orders. SoftwareSilo also gives each representative a dedicated frontend workspace for customer service and assisted ordering without a general Magento admin account.

Who is SoftwareSilo Sales Staff best for?

It fits B2B merchants with account managers, inside sales, telephone ordering, field sales, dealer support, or customer service teams that need named customer ownership and traceable assisted orders.

What is included in the base module?

The base includes staff accounts and groups, customer assignment, frontend customer work, customer creation, cart price permission, eligible order editing, order attribution, percentage commission, order and product reports, CSV report export, and email routing.

Do sales representatives need Magento admin accounts?

No. They use separate staff credentials and a frontend workspace. Magento administrators still manage configuration and can control which staff functions are available.

Does Sales Staff work with Magento Open Source?

Yes. It is designed for Magento Open Source and can also be used in Adobe Commerce projects. Check the current compatibility information against the exact Magento, PHP, and storefront versions.

Can staff register themselves?

Frontend registration can be enabled or disabled. New accounts remain subject to the configured activation process, so exposing a signup link does not have to grant immediate access.

What are staff groups used for?

Groups organize representatives by team, region, brand, or another responsibility. Each staff member belongs to one group, and the group ID can be retained with order attribution.

Can one customer have several sales representatives?

Yes, when multiple assignment is enabled. One representative can remain the primary contact while other assigned staff members support the same customer.

Can a representative access all customers?

Yes, if that account receives the access-all-customers permission. Otherwise the user is limited to assigned customers and the applicable Magento website scope.

Can customers see their assigned sales representative?

Yes, if the store enables the display in the customer dashboard. The merchant can show only the primary representative or all relevant contacts.

How are customers assigned or reassigned?

Administrators can manage assignments from staff and customer records and use mass assignment. Depending on configuration, staff can add or remove relationships and customers can select another representative.

Can a relationship include a customer note?

Yes. The base assignment record contains a comment for practical relationship context. The optional Customer History add-on provides a separate structured interaction log with files and email handling.

Can sales staff create new Magento customers?

Yes, when store configuration and the individual staff permission both allow it. The form can include customer group, address, VAT data, and optional password setup.

Can a representative place an order on behalf of a customer?

Yes. An authorized representative can enter an assigned customer context, use the customer's storefront session, prepare the cart, complete checkout, and return to the staff workspace afterward.

Can sales staff change cart item prices?

Yes, for staff accounts with that permission. The merchant also controls whether zero prices are allowed. Pricing authority should be limited to the users who negotiate orders.

Can a representative edit an existing order?

Yes, when the staff account has permission, the order belongs to that representative, and its state is allowed. The module rebuilds the order through cart and checkout while preserving its order identity.

What sales data is stored on an order?

Orders can retain the sales staff ID, staff group ID, and calculated commission amount. The quote also carries the staff ID before the order is submitted.

Can administrators reassign orders?

Yes. Sales staff fields can appear in the admin order grid and an optional grid action can reassign selected orders when account ownership or vacation coverage changes.

How is commission calculated?

Each staff member has a percentage. Configuration chooses net subtotal excluding tax, net subtotal including tax, or a product-discount mode as the calculation basis.

Does the module manage commission payouts?

No. It calculates and stores attributed commission and provides reports. It does not maintain paid, unpaid, or payroll settlement states, so payout processing belongs in the merchant's finance workflow.

Which reports are included?

The core module includes order and product reports for staff and administrators. Users can filter data, choose visible columns, and export report results as CSV.

Can order emails go to both customer and representative?

Yes. Email rules can send selected order messages to the customer, staff member, or both, with additional CC and BCC recipients where configured.

Does the extension support several websites?

Yes. Staff accounts carry a Magento website scope, and customer access respects it. A scope value of zero can be used for broader access where the configuration allows it.

What does the Quote Management add-on provide?

It adds quotation creation and editing, items and prices, statuses, history, attachments, PDF output, sending, customer feedback, acceptance or rejection, and conversion from quote to order.

What does the Customer Visits add-on provide?

It adds appointment planning, visit types and statuses, customer confirmation or cancellation, outcomes, follow-up dates, ICS links, reminders, route views, and optional Google or Microsoft calendar synchronization.

What does the Customer History add-on provide?

It adds a structured interaction log per customer with topic, title, description, date, optional email delivery, and file attachments.

Are SAML and two-factor authentication available?

Yes, as separate commercial options. SAML connects the staff login to an identity provider and can disable password login. Two-factor authentication adds another login check. Confirm the required identity setup before purchase.

Which data integration options are available?

Separate options provide Magento CSV import and export for staff records, SOAP/REST operations, and GraphQL queries and mutations for staff, groups, assigned customers, authentication, password reset, and customer-context tokens.

Does Sales Staff support Hyvä?

Hyvä compatibility is sold separately. Review the complete add-on combination, custom theme, checkout, and customer-context workflow before implementation.

What should be tested before launch?

Test staff activation and reset, website scope, every customer assignment model, customer creation, customer impersonation, pricing, checkout, editing, attribution, cancellation, commission, reports, emails, permissions, and every purchased add-on.

General Questions
How many Magento installations is the license valid for?

The license is valid for one Magento installation, including multi-website operation. In addition, the module may be installed on any number of development or staging servers. You can find further details in our license terms.

Is installation included in the price?

Installation and configuration are not included in the price. On request, we can support you with a smooth integration into your system.

How do I install a module?

Composer is PHP's package manager, and Magento 2 uses it to install modules and their dependencies. After purchase, the commands for your module are available under Licenses in your customer account. First add the private SoftwareSilo repository and your license token. Then install the listed package with composer require and run php bin/magento setup:upgrade and php bin/magento cache:clean.

What payment methods are available?

You can pay by credit card (Stripe) or bank transfer (prepayment). For credit card payments, the order is processed immediately and the access credentials are provided directly in a separate follow-up email.

What does the order process look like?

After credit card payment, you immediately receive access credentials to obtain the module via Composer. For bank transfer, access is granted once the invoice is paid.

I need a custom modification of the module. Is that possible?

Custom requests are no problem. We tailor our Magento 2 modules to your project and maintain a dedicated internal version so we always know exactly what runs on your system for support.

Can I install a demo version locally?

On each module detail page, you can request your own demo instance and test the module intensively for 7 days. However, we do not provide a local demo version.

Is the source code encrypted?

No, the source code of our modules is not encrypted. If you need a customization, feel free to send us a request. We will get back to you promptly with a non-binding quote.

What is the update policy and support?

You can add a support package to your order. It includes assistance as well as updates and upgrades related to the module. No continuous subscription is required.

I already have a license. How can I perform an update?

You can complete the license update here. If you have an active support package, you receive updates automatically via Composer. If your support package has expired, you can renew your license here or in your account.

I have another question — how can I contact you?

You can reach us anytime via eMail.

Sales Staff / Sales Representative

×

Ideal for these industries & use cases

Field Sales Teams

Equip field sales representatives with mobile access to their customer portfolio. Sales reps can place orders on-site, check customer history, create new accounts, and earn commissions. Perfect for manufacturers and distributors with outside sales teams visiting customer locations.

Inside Sales Operations

Enable phone and email sales teams to efficiently process customer orders. Staff can quickly search customers, access their accounts, apply custom pricing, and complete orders. Ideal for B2B wholesalers and distributors with dedicated inside sales departments handling inbound orders.

Territory Management

Organize sales staff by geographic territories or regions using staff groups. Assign customers to territory-specific representatives, track performance by region, and manage commission structures per territory. Perfect for companies with regional sales organizations and territory-based compensation plans.

Customer Service

Empower customer service teams to assist customers with order placement, price adjustments, and account management. Service reps can access customer accounts, place replacement orders, apply discounts, and resolve issues quickly. Improves customer satisfaction and reduces support ticket resolution time.

Franchise/Dealer Network

Enable franchise owners or dealers to manage their customer base and earn commissions on sales. Each franchisee gets their own staff account with access to their customers only. Track performance per location, manage territory-based pricing, and automate commission payouts to franchise partners.

Multi-Brand Management

Manage separate sales teams for different brands or websites within your Magento installation. Staff accounts are website-specific, allowing brand-specific customer assignments, pricing strategies, and commission structures. Perfect for companies operating multiple brands with dedicated sales teams per brand.

Try before you buy

Request a personal demo and test the module with realistic sample data in Magento Admin and the storefront. Take your time to see whether it fits your requirements and workflows.

Technical documentation

Practical Magento 2 guides, developer documentation, and API references for installation, configuration, and troubleshooting.

Go to Knowledge Base

Do you need a custom solution?

Do your requirements go beyond the capabilities of our Magento 2 modules? We develop suitable Magento 2 modules and integrations for your business processes.

Request now