Sales app for Odoo
B2B Auction Management
Run ascending and sealed-bid B2B auctions in Odoo with server-enforced bidding, immutable bid history and anti-sniping soft close.

Overview
B2B Auction Management.
A backend-first auction engine for Odoo. Every bid is validated and ordered inside the database under a row lock, never in the browser, so simultaneous bids resolve to one deterministic sequence. Accepted bids are immutable historical records that nobody can edit or delete, including administrators. Supports ascending (English) and sealed-bid formats, tiered increments, reserve prices, participant approval, soft-close anti-sniping and a full audit log.
New to Odoo Sales? Read our practical guide to how it works
How it works
Built around what you actually do.
Every screen below is the module running in Odoo, not a mockup.
01
Ascending (English) and sealed-bid auction formats
- Server and database authoritative bidding: every bid is ordered under a row lock, never in the browser
- Deterministic bid sequence when several bidders submit in the same instant
- Accepted bids are immutable: no group can edit or delete one, and neither can sudo
- Voiding keeps the bid row and its sequence number, so the history stays complete
- Soft close anti-sniping with an extension count cap and a separate hard end time
- Tiered minimum increments that step up by bid amount

02
Reserve price with configurable visibility, and the reserve amount is never readable by a bidder
- Participant invitation and approval workflow with invite, approve, reject and block
- Bidder anonymity: rival amounts are visible without identities when the format allows it
- Self-dealing refused at the engine: neither the consignor nor the organiser can bid on a lot
- Sealed bids stay private until the auction closes, enforced by record rules not by screens
- Winner records with hammer price, buyer's premium and total due
- Append-only audit log covering 18 event types from auction created to integrity divergence

03
Four roles, with bidders holding no write access to any auction model
- Scheduled actions start and close auctions automatically, with email at every stage
- Auction Analysis and Bid Analysis reporting
- Multi-company and multi-currency
- 203 automated tests, including concurrency, immutability and access-control suites

Every screen
The whole module, screen by screen.
The captures the walkthrough above did not use, in the order you meet them in the product.







What it does
B2B Auction Management turns Odoo into an auction back office. You create an auction, add lots, invite the organisations allowed to take part, and the engine runs the rest: it opens and closes on schedule, validates every bid against the format's rules, orders bids deterministically even when they arrive in the same instant, extends the clock when someone bids at the last second, and records a winner with the hammer price and buyer's premium.
The design decision behind all of it is that the server and the database decide, never the browser. Bid ordering is settled by a row lock and a serialisation counter inside the transaction, so a race between three bidders has one answer rather than three plausible ones. An accepted bid is then an immutable financial record: no group can edit or delete it, administrators included, and voiding a bid keeps the row and its sequence number so the history stays complete and auditable.
Who it's for
Wholesalers, liquidators, machinery and vehicle dealers, commodity traders, and any business running competitive sales or sealed tenders between known counterparties, where the bid record has to stand up to scrutiny afterwards and a disputed ordering is not an acceptable outcome.
Questions
About B2B Auction Management.
What stops two bidders who bid at the same moment from producing an inconsistent result?
Bid ordering is decided by the database, not by the browser and not by the order requests happen to arrive. Each bid takes a row lock on the auction, bumps a serialisation counter and re-validates against post-lock state before it is written. Simultaneous bidders are therefore serialised into one deterministic sequence, and the highest bid wins rather than the last one committed.
Can anyone edit or delete a bid after it is placed?
No. An accepted bid is an immutable historical record. Write and delete are refused for every group including Administrator, and refused for sudo as well, so an extension module cannot quietly rewrite one either. The only permitted transition is voiding, which keeps the row and its sequence number so the history still shows that the bid happened.
Does it stop last-second sniping?
Yes. When a bid lands inside the trigger window before the end time, the auction extends by the duration you configure. Two independent caps bound it: a maximum number of extensions, and a hard end time that no extension can pass. They answer different questions, so both exist.
How does a sealed bid tender stay sealed?
Privacy is enforced in the record rules, not by hiding a screen. In a sealed format no participant can read another organisation's bid until the auction closes, and that holds over the API as well as in the interface. Bidder identity columns are restricted at field level, which outranks any record rule, so amounts are never attributed to an organisation.
Can a bidder see the reserve price?
Never the amount. You choose between hiding the reserve entirely and publishing only whether it has been met. The reserve figure itself stays readable by managers alone in both modes, so bidders can be told a lot has not reached its floor without being handed the seller's number.
Can the person selling a lot bid on it?
No. Shill bidding is refused by the engine, not by policy. A lot's consignor and the organiser running the auction are both blocked from bidding on it, and the refusal happens before the bid is written.
Does this include a public bidding website or realtime updates?
Not in this module. This is the backend engine, and it is deliberately complete on its own: everything runs from the Odoo backend with server-side validation. It exposes documented extension points for realtime, marketplace and payment modules to build on without reimplementing the bidding rules.
Which Odoo versions and editions are supported?
Odoo 19 Community and Enterprise. The module depends only on Mail and Product, both of which ship with Community.
On the Odoo Store
Get B2B Auction Management on the Odoo Store.
Pick your Odoo version and install it in a click, with free updates and real support behind it.
Get it on the Odoo StoreReady to make Odoo work the way your business does?
Book a free callCODEerts is a team of certified Odoo partners and full-stack engineers. We implement, customise and support Odoo ERP, then build the software around it.