| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Surveys (survey) |
| Lines of code | 2872 |
| Technical Name |
grev_od_tender_core |
| License | OPL-1 |
| Website | https://grevlin.com |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Surveys (survey) |
| Lines of code | 2872 |
| Technical Name |
grev_od_tender_core |
| License | OPL-1 |
| Website | https://grevlin.com |
|
⚖
Tender Management — CoreMulti-lot tender calls, structured vendor bidding, survey-based qualification, and weighted evaluation scoring — the complete procurement tender foundation.
|
|
Tender Core is the foundation layer of the Grevlin Tender Management Suite. It provides the complete tender lifecycle — from multi-lot publication through vendor bidding, survey qualification, technical & financial evaluation, and lot awarding — all with a secure, isolated vendor portal and full Chatter audit trail. |
Core Features |
||||
|
||||
|
||||
|
Tender Lifecycle |
|||||||||||
|
What’s Included |
||
|
Changelog |
|
|
|
🙋
Need Help?𝕏 @GrevlinGlobal 🆕 30 days free support included |
Tender Management — Core
Tender Core is the foundation module of the Grevlin Tender Management Suite. It provides the complete tender lifecycle infrastructure: multi-lot tender calls, structured vendor bidding via a secure portal, survey-based qualification, weighted technical and financial evaluation scoring, and lot awarding — all with full Chatter audit trails and multi-company isolation.
Note
This module is a dependency for :doc:`../grev_od_tender_purchase/index` and :doc:`../grev_od_tender_project/index`. It must be installed first.
Overview
The core module handles everything up to — and including — lot awarding. It does not generate Purchase Orders or Project Tasks; those are handled by the fulfillment extension modules. This deliberate separation keeps the module lightweight and installable independently for organisations that only need the bidding workflow.
Key Features
- Multi-lot tender architecture — each tender call contains independent lots, each with its own product requirements, fulfillment type, survey, and winning bid
- Secure vendor portal — vendors submit bids through the standard Odoo portal; record rules enforce strict per-vendor data isolation
- Survey-based qualification — mandatory or optional surveys gate bid submission at the tender level and at individual lot level
- Weighted scoring engine — technical and financial scores (50/50 default) compute a final score automatically for evaluation ranking
- Full state machine — tenders progress through Draft → Published → Evaluation → Awarded → Cancelled
- Post-fulfillment vendor rating — score vendors after delivery for supplier performance tracking and future tender decisions
Installation
Prerequisites
- Odoo 19.0 Community or Enterprise
- Standard Odoo modules: base, mail, survey, portal
Steps
- Copy the module directory to your Odoo addons path
- Go to :menuselection:`Settings --> Technical --> Activate developer mode`
- Go to :menuselection:`Apps --> Update Apps List`
- Search for Tender Management — Core
- Click :guilabel:`Install`
Tip
To install the full suite in one step, install grev_od_tender_management instead. It will pull in this module along with the two fulfillment extensions.
Configuration
Security Groups
Three groups are created under the Purchases category:
| Group | Permissions |
|---|---|
| Tender User | Read-only access to tenders, lots, and bids |
| Tender Officer | Create, edit, evaluate bids and lots; manage surveys |
| Tender Manager | Full CRUD including delete; override any record |
To assign a group, go to :menuselection:`Settings --> Users & Companies --> Users`, open a user record, and select the appropriate group in the Purchases section.
Sequences
Bid references are auto-generated using the grev.tender.bid sequence (default format: BID/YYYY/NNNNN). To customise the format, go to :menuselection:`Settings --> Technical --> Sequences & Identifiers --> Sequences` and search for Tender Bid.
Usage
Creating a Tender Call
- Go to :menuselection:`Tenders --> Tender Calls`
- Click :guilabel:`Create`
- Fill in the Reference (or let the sequence assign one) and Title
- Set :guilabel:`Bid Deadline` — vendors cannot submit after this date
- Optionally attach a :guilabel:`General Survey` required of all bidders
- Save; the tender starts in Draft state
Managing Lots and Requirement Lines
Inside the tender form, open the :guilabel:`Lots` tab:
- Click :guilabel:`Add a line` to create a lot
- Enter the lot Name and optionally a description
- Set :guilabel:`Fulfillment Type`:
- Purchase Order — lot will be fulfilled via a PO (requires grev_od_tender_purchase)
- Project Task — lot will be fulfilled via a project task (requires grev_od_tender_project)
- Open the lot form to add Requirement Lines: specify product, quantity, unit of measure, specifications, and estimated price for each item in the lot
Note
Each lot is an independent package. Vendors bid per lot-line, and lots are awarded independently. A vendor can win one lot but lose another in the same tender.
Publishing the Tender
When the tender is ready for vendor submissions:
- Click :guilabel:`Publish` in the status bar
- The tender transitions to Published state and becomes visible to portal users
- The bid deadline is enforced — late submissions are blocked automatically
Vendor Bidding (Portal)
Vendors access tenders through the standard Odoo portal:
- Vendor logs in at /web/login with their portal account
- Navigates to :guilabel:`My Tenders` to see published tenders
- Opens a tender and clicks :guilabel:`Submit a Bid`
- Completes any mandatory surveys (submission is blocked until complete)
- Adds bid lines for each lot-line they wish to bid on: price, delivery date, warranty months, and technical notes
- Clicks :guilabel:`Submit Bid` to finalise
Tip
Vendor portal accounts are created by the procurement team via :menuselection:`Settings --> Users & Companies --> Users` by selecting the Portal user type.
Survey Qualification
Surveys can be attached at two levels:
- Tender-level: a general survey required of all bidders (e.g. company registration, financial standing)
- Lot-level: a specific survey for a particular lot (e.g. technical certifications for that product category)
Set :guilabel:`Lot Survey Required` on the lot to make the survey mandatory. Bid submission is blocked until the required surveys are marked complete.
Evaluating Bids
Once the deadline passes, move the tender to Evaluation:
- Click :guilabel:`Start Evaluation` on the tender
- Go to :menuselection:`Tenders --> Bids` and open each submitted bid
- Review the bid lines and survey responses
- Enter :guilabel:`Technical Score` (0–100) and :guilabel:`Financial Score` (0–100)
- Add :guilabel:`Evaluation Notes` to justify the scores
- Click :guilabel:`Mark Evaluated`
The Final Score is computed automatically as (technical_score × 0.5) + (financial_score × 0.5).
Awarding a Lot
- Open the lot you wish to award
- Click :guilabel:`Award Bid`
- The award wizard lists all evaluated bids for this lot, ranked by final score
- Select the winning bid and confirm
- The lot transitions to Awarded state; the winning bid is marked Won and all others Lost
Warning
Once awarded, the lot's winning bid cannot be changed without cancelling the lot and re-awarding. Any downstream PO or task must also be cancelled first.
Technical Reference
Models
grev.tender.call
Main tender container; inherits mail.thread, mail.activity.mixin.
Key fields:
- name — unique reference per company (sequence-generated or manual)
- title, description — display and specifications
- state — draft | published | evaluation | awarded | cancelled
- general_survey_id — Many2one to survey.survey
- lot_ids — One2many to grev.tender.lot
- bid_ids — One2many to grev.tender.bid
- date_deadline — bid submission cut-off
- winning_vendor_ids — computed set of awarded partners
grev.tender.lot
Independent package within a tender.
Key fields:
- tender_id — Many2one to grev.tender.call
- fulfillment_type — purchase or project
- lot_line_ids — One2many to grev.tender.lot.line
- winning_bid_id — Many2one to grev.tender.bid
- lot_survey_id, lot_survey_required — per-lot qualification survey
grev.tender.lot.line
A single requirement line within a lot.
Key fields:
- product_id, product_qty, product_uom_id — what is being procured
- specifications — free-text technical requirements
- estimated_price — budget guidance for bidders
- bid_line_ids — One2many to grev.tender.bid.line
grev.tender.bid
A vendor's submission; inherits mail.thread.
Key fields:
- name — sequence-generated bid reference
- partner_id — vendor
- state — draft | submitted | evaluated | won | lost | cancelled
- technical_score, financial_score, final_score — evaluation scores
- total_amount — computed from bid lines
- post_fulfillment_score, post_fulfillment_notes — post-delivery rating
grev.tender.bid.line
Vendor's offer for a specific lot line.
Key fields:
- lot_line_id — Many2one to grev.tender.lot.line
- price_unit, price_subtotal — pricing
- delivery_date, price_valid_until — commercial terms
- warranty_months, technical_notes — quality and compliance terms
Security
Record rules enforce multi-company isolation on all models using:
['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]
Portal vendors are restricted by two additional rules on survey.user_input:
- Vendors see only their own survey responses
- Vendors see only bids they own
See Also
- :doc:`../grev_od_tender_purchase/index` — Purchase Order fulfillment
- :doc:`../grev_od_tender_project/index` — Project Task fulfillment
- :doc:`../grev_od_tender_management/index` — Full suite installer
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module