Mindphin · Wholesale B2B
Every wholesale order, in one portal.
Wholesaler turns the Odoo webshop into a buyer portal built for trade accounts: your own
pricing, quote requests alongside checkout, express ordering by SKU, saved baskets, team roles
with approvals, and a page-wise product catalogue your buyers read like a book.
- ✓ Simplify order management with adjustable workflows
- ✓ Boost customer satisfaction with personalised catalogs
- ✓ Optimise sales operations with instant inventory visibility
B2B · B2C
Or both at once
04 — Documentation
Every screen, explained
What follows is the shipped product. Each screenshot is annotated, and the numbered callouts
match the notes beside it.
01Buyer dashboard
The landing page after sign-in. It answers what is
owed, what is in flight and what to do next, before the buyer has clicked anything.
- 1Portal navigation — replaces the website header on every page for signed-in buyers.
- 2Account tiles — outstanding balance, open orders, what falls due in 14 days, spend this month.
- 3Shortcuts — quick order, express order, templates, catalogues, statement and addresses.
- 4Purchase insights — spend to date, orders placed, average order and open invoices.
- 5Greeting line — the buyer's name, today's date and the count of orders in flight.
/my/home
02Catalog
A buyer's catalog is a working table, not a gallery.
Each row carries the SKU, availability, list price, your price and a quantity control, with a
running order summary pinned to the bottom.
- 1Attribute filters — size, colour, fabric and the rest, taken from your product attributes.
- 2Buyer table — one row per product, with add to cart and add to quote side by side.
- 3Express order — opens the SKU sheet without leaving the catalog.
- 4Pricelist — the buyer sees which pricelist is being applied.
- 5Columns adapt — the table sheds columns as the screen narrows and becomes a card on a phone.
/shop
Prefer cards? Turn off the buyer
catalog table view and the shop falls back to Odoo's standard product grid, with the
add-to-quote button added to each card.
03Three product layouts
Set Product Detail Page View on each product.
A simple consumable does not need the same page as a desk sold in eight variants.
- 1Standard — the familiar product page, with your price and both add buttons.
- 2Add to cart / Add to quote — which buttons appear follows the website flow.
/shop/product/… · standard
- 1Product matrix — a colour × size grid; type quantities straight into the cells.
- 2One action — the whole grid goes to the cart or the quote in a single click.
- 3Built for apparel and furniture — anything ordered across two attributes at once.
/shop/product/… · matrix
- 1Variant grid — every variant listed with its own price and quantity box.
- 2Add everything at once — all filled rows are submitted together.
- 3Best for long variant lists — where a matrix would be unwieldy.
/shop/product/… · variant grid
04Express order
For buyers who already know what they want. Three ways
in, all landing in the same list: type SKUs row by row, paste a list, or upload a
spreadsheet.
- 1SKU rows, paste list, upload file — pick whichever suits the order.
- 2Sent together — typed rows, pasted lines and uploaded files are added in one action.
/shop/quick_checkout
Unrecognised lines are reported, not
dropped. Rows whose SKU does not match, or whose quantity is missing, are listed
back with the reason so the buyer can correct them.
05Cart and quote cart
Two baskets run in parallel. The cart checks out and
pays; the quote cart submits a request for your team to price and confirm. The website flow
decides which a buyer sees.
- 1Lines at your price — quantities editable, with suggested accessories underneath.
- 2Order summary — delivery, taxes and total, with the discount code field.
/shop/cart
- 1Quote lines — the same editing, against the quote request.
- 2No checkout — the buyer submits a request; your team confirms the price.
/shop/quote/cart
06Requested quotations
Every quote the account has requested, with its status
and validity. Requests are visible to colleagues, not just to the buyer who raised them.
- 1Requested quotes — status, date and amount, each opening the full document.
/my/requested_quotes
07Orders
Confirmed orders with their delivery state, and a
one-click reorder for anything bought before.
- 1Order history — for the whole account, with communication history on each document.
/my/orders
08Invoices and statement
What is outstanding, what is overdue and what has been
settled — with an account statement the buyer can print for any period.
- 1Position tiles — outstanding, overdue and paid in the last 90 days.
- 2Invoice list — filter to open or overdue, pay online, or attach a transfer receipt.
/my/invoices
/my/customer/statement
09Purchase insights
What the account buys and how its spend is trending,
over three, six or twelve months.
- 1Headline figures — spend to date, orders placed, average order size, open invoices.
- 2Trend and mix — spend by month and share by product category.
/my/insights
10Order templates
Save a basket the account reorders on a schedule,
instead of adding the same products one at a time. Prices refresh to the current pricelist
every time it is used, and a template can be edited or deleted.
- 1Saved baskets — line count, units and a preview of what is inside.
- 2New template — build one line by line, or save the current basket.
/Wh_order_template/list
11Team and roles
Invite colleagues and give each one a role. The role
decides what they may do, and it is enforced on the server as well as hidden in the
interface.
- 1Members — invite, change a role, or revoke access.
- 2Role cards — what each role may do, in plain words.
- 3Admin, approver, buyer, viewer — a viewer reads orders, invoices and statements but can never raise or pay one.
/my/team
12Approvals
Quotes raised by a buyer wait for an approver. If the
price changes in the back office after approval, the document returns to the approvals list
rather than slipping through.
- 1Waiting for you — who raised it, the amount and the line count, with approve and reject.
/my/approvals
13Portal settings
Brand the portal and switch its features on or off from
the website itself — no back-office trip needed.
- 1Branding — portal name, logo, accent colour and menu position.
- 2Portal setup — hide price, variant grid, matrix, portal notifications, private catalogues and the website flow.
/my/portal-settings
14Product catalogue
A page-wise catalogue your buyers read like a book —
banner pages, product pages laid out from a pricelist, and a PDF to download.
- 1Available catalogues — cover, page count and pricelist, with read and PDF.
/catalogue
- 1Two-page spread — sheets turn on the spine, closing to a single centred page at either end.
- 2Page turn — arrows or the keyboard; on a phone it reads one page at a time.
- 3Pages size themselves — a page with four products spreads them larger than one with nine.
/catalogue/1
05 — Configuration
Wholesaler portal configurations
Everything is driven from
Settings › Website › Shop Configuration and from the Product
Catalogue records. Out of the box, with nothing enabled, the shop behaves exactly like a
standard Odoo shop.
15Shop configuration
The switches that shape the whole portal.
- 1Enable Website Hide Price — visitors see the catalog but must sign in for prices.
- 2Enable Product Matrix — enables the colour × size grid on product pages.
- 3Website Flow — B2C checkout, B2B quote requests, or both together.
- 4Enable Product Catalogue — turns the flipbook on and links straight to the records.
Settings → Website → Shop Configuration
Every option, in order
Enable Quick Buy
Adds an Express Checkout
button to the shop page. It opens a form for adding products to the cart by SKU, pasted
text or file upload.
Buyer Catalog Table View
Shows the shop as a buyer table — SKU,
specification, availability, list price, your price and quantity — with a sticky order
summary. Turn it off for Odoo's standard product grid.
Portal Accent Colour
The accent used across the buyer portal for
buttons, active tabs and highlights. Buyers can also set it themselves in Portal
settings.
Enable Variant Grid
Lists every variant with its own price and
quantity box. Set a product's Product Detail Page View to Variant
Grid; it then appears on the shop page and on the product detail page.
Enable Portal Invoice Payment Proof Upload
Lets buyers attach proof of payment to an
invoice on the website. The upload is visible in the invoice in the back office and in its
communication history.
Enable Portal Notification
Shows the announcement strip on the buyer's
account page, so notices reach them where they already are.
Enable Product Matrix
Renders variants as a matrix on the product
detail page. Set Product Detail Page View to Matrix and add the two
attributes to the product. Note: the matrix works for colour and size
attributes only. Show Odoo Standard Attribute With Matrix keeps the standard
variant options visible alongside it.
Website Flow
B2C runs the normal Odoo shop
flow. B2B runs the quote flow, where buyers request a quotation through a
dedicated quote cart instead of a sale order, and read the result on their account page.
Both runs the two side by side.
Enable Website Hide Price
Hides product prices on the shop page for
public and logged-out visitors.
Enable Private Product Catalogue
Restricts a product to named customers. A
Private Catalogue section appears on the product: list partners there and
only they see it; leave it empty and every contact does.
Enable Product Catalogue
Turns on the page-wise catalogues buyers read
as a flipbook on the website, each with an optional PDF you upload for download.
Configure Product Catalogues opens the records directly.
The flipbook is ours. Pages are built from
your own catalogue records and turned by this module's own code — no third-party service, no
external account and no per-catalogue fee. Everything stays inside your Odoo.
16Catalogue records
Build a catalogue page by page. Tie it to a pricelist
and it shows that pricelist's products at that pricelist's prices.
- 1Catalogue record — name, website, pricelist, products per page and the downloadable PDF.
- 2Pages — banner or product pages, reorderable, each with its own heading, colours and products.
Website → Configuration → Product Catalogue
Generate Product Pages fills the
catalogue from the pricelist in blocks of up to nine products, leaving any banner pages you
have added untouched.
…and here it is on the website
The same record, rendered for buyers: the product pages
generated above, open side by side and priced against the catalogue's pricelist.
- 1The open spread — product image, name and your price, each card linking through to the product.
- 2Turn the page — arrows or the keyboard; the first and last pages close to a single centred sheet.
/catalogue/1