One store. Two customers. Trade prices stay locked until the paperwork is in.
First visit asks Private or Business. Private shoppers keep Magento’s normal account and catalog. Business shoppers register on the native Create Account form, upload a trade certificate, and only then see Magento tier prices. Invoice email and Recipient of Performance go to accounting — not the login inbox.
The welcome modal remembers the choice in the browser so it does not repeat. Logged-in customers never see it. Fields sit on Magento Create Account and Edit Account — no theme template overrides.
Private
Shop as a consumer
Standard Magento registration and the regular catalog price. No extra fields. No documents.
Mapped to your Private customer group
No wholesale tiers shown
Invoice goes to the login email
Business
Register as trade
Extra fields on the native form. Upload a certificate at signup or later from My Account. Admin can add files too.
Mapped to your Business customer group
Tiers stay hidden until a file exists
Dedicated invoice email + Recipient of Performance
Pricing
The base price always shows. Tiers wait for a file.
The extension does not invent discounts. Magento Tier Prices must already exist on the product for the business group. Verification is “a document is on file” — not a Pending / Approved button.
No documentsTrade tiers hiddenUnverified business accounts see only the regular catalog price. An orange header hint points them to Account Edit.
At least one fileTrade tiers appearQuantity / group tiers show on the product page automatically. Remove every file and they lock again.
AlwaysRegular price stays visibleRetail and unverified trade can still buy at the base price. You are not hiding the product — only the wholesale break.
Set this up first: Magento Catalog → product Tier Prices for the Business group. Without those tiers, the gate has nothing to reveal.
Documents & admin
Review files without leaving the customer
Upload anywhereRegistration, My Account, or Magento Admin. Drag and drop, with your type and size limits.
Documents tabPreview, upload, replace, or delete on the customer record.
Notify staffOptional email on each storefront or Admin upload — name, ID, email, company.
Storage you controlAllowed extensions, max size, and media path from Stores → Configuration.
Invoicing
Accounting gets the invoice. The buyer keeps the login.
Invoice emailWhen set, Magento invoice emails go to this address instead of the login email.
Recipient of PerformancePrinted and PDF invoices show who the service is for — common on EU / B2B paperwork.
Account InformationBoth fields sit on the customer tab for the mapped business groups.
Go live
A clear path from the modal to the first trade order
1InstallEnable Emmo_CustomerRegistration and run setup:upgrade.
2Map groupsStores → Configuration → Emmo Extensions → Customer Registration. Private and Business groups.
3Set tiersAdd Magento Tier Prices on products for the Business group.
4LimitsFile types, max size, storage path, modal, and notification email.
5TestPrivate signup, Business signup without a file, then with a file — check price, grid, and invoice.
Who it is for
Mixed retail and trade on one Magento site
Wholesale catalogsHide trade breaks until a certificate is on file.
Distributors & manufacturersOnboard trade accounts on Magento’s own forms.
Industrial / trade-onlyDocument-backed pricing without a third-party B2B suite.
Retail + B2B togetherSame website. Two paths. One catalog.
Module package — unzip as app/code/Emmo/CustomerRegistration, enable, run setup:upgrade
User guide PDF — modal, documents, tier-price gate, invoice fields
Not included
No ERP / CRM connector. No separate approval workflow. If your theme already has similar registration fields, turn the storefront fields off in config so they are not duplicated.
Private vs Business, paperwork before wholesale price, invoices to accounting. Support: [email protected]