| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Community Apps Dependencies | Show |
| Lines of code | 4198 |
| Technical Name |
grev_od_commodity_supplier |
| License | OPL-1 |
| Website | https://www.grevlin.com |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Community Apps Dependencies | Show |
| Lines of code | 4198 |
| Technical Name |
grev_od_commodity_supplier |
| License | OPL-1 |
| Website | https://www.grevlin.com |
🌱 Commodity Supplier ManagementFarmer, Cooperative & Trader Profiles with KYC Verification, Certifications, Ratings & Credit Risk
|
|
|
|
|
|
📞 Need Help?
|
|
Grevlin Agribusiness Suite Enterprise-Grade Commodity Procurement for Odoo © 2026 Grevlin Global Corp. All Rights Reserved. Compatible with Odoo 19.0 | Licensed under OPL-1 |
Commodity Supplier Management
The Commodity Supplier Management module extends Odoo's res.partner model into a complete commodity supplier onboarding and compliance platform. It adds structured profiles for farmers, traders, cooperatives, and brokers with KYC document verification, internationally recognized certifications, trade references, cooperative membership hierarchies, credit risk ratings, and delivery performance scoring.
Overview
This module provides a governed supplier qualification layer for commodity procurement. Rather than maintaining a separate supplier model, every feature is applied directly to the native res.partner record so that existing Odoo contact flows remain intact.
Key Capabilities
- Supplier Profiles -- extend res.partner with supplier type, farm location, farm size, registration number, and cooperative linkage.
- KYC Document Management -- 8 document types with a pending to verified/rejected workflow, expiry tracking, and daily cron alerts.
- Supplier Certifications -- Organic, Fairtrade, Rainforest Alliance, GlobalG.A.P., UTZ, HACCP, ISO 22000 with expiry management.
- Performance Ratings -- quality and reliability scores per delivery with auto-computed overall averages.
- Cooperative Membership -- link farmers to cooperatives with membership records, share counts, and uniqueness constraints.
- Trade References -- buyer, supplier, logistics, and financial references with verification tracking.
- Credit Limit & Risk Rating -- credit limits with live used-credit computation and four-level counterparty risk classification.
Note
Credit-used computation depends softly on grev.commodity.contract. The module degrades gracefully if the contract module is absent.
Configuration
Prerequisites
This module depends on grev_od_commodity_base for centralized security groups and master data. Install grev_od_commodity_base first.
- Go to :menuselection:`Apps` and search for Commodity Supplier Management.
- Click :guilabel:`Install`.
Marking a Partner as a Commodity Supplier
- Open a contact via :menuselection:`Contacts --> Contacts`.
- Check the :guilabel:`Commodity Supplier` box.
- Select a :guilabel:`Supplier Type`:
- Farmer -- individual small-holder or commercial farmer.
- Trader -- commodity trading intermediary.
- Cooperative -- farmer cooperative or union.
- Broker -- commodity broker or agent.
- Fill in optional fields: :guilabel:`Farm Location`, :guilabel:`Farm Size (Hectares)`, :guilabel:`Registration Number`.
- If the supplier belongs to a cooperative, select the :guilabel:`Parent Cooperative`.
- Click :guilabel:`Save`.
Setting Credit Limits and Risk Ratings
- Open the commodity supplier's partner record.
- Set the :guilabel:`Credit Limit` field.
- Select a :guilabel:`Counterparty Risk Rating`: low, medium, high, or critical.
- The :guilabel:`Credit Used` field is computed automatically from active commodity contracts (if the contract module is installed).
Important
Changes to the counterparty risk rating are tracked in the chatter for audit purposes.
Scheduled Actions
Two crons ship with the module. Both are active by default.
| Cron | Frequency | Purpose |
|---|---|---|
| KYC Document Expiry Check | Daily | Creates activities for documents expiring within 30 days. Auto-expires documents past their expiry date. |
| Certification Expiry Check | Daily | Creates activities for certifications expiring within 30 days. Auto-expires certifications past their expiry date. |
Security Groups
This module uses the centralized security groups defined in grev_od_commodity_base:
Commodity User (group_commodity_user)
- Read-only access to supplier profiles, KYC documents, certifications, ratings, trade references, and memberships.
- Cannot create or edit records.
Commodity Officer (group_commodity_officer)
- Create and edit supplier profiles, KYC documents, certifications, ratings, trade references, and cooperative memberships.
- Cannot delete records.
- Inherits Commodity User permissions.
Commodity Manager (group_commodity_manager)
- Full CRUD including delete on all supplier models.
- Can verify and reject KYC documents and supplier KYC status.
- Inherits Commodity Officer permissions.
Note
Multi-company record rules apply to all models using the pattern ['|', ('company_id', '=', False), ('company_id', 'in', company_ids)].
Usage
Managing KYC Documents
- Open a commodity supplier's partner record.
- Navigate to the :guilabel:`KYC Documents` tab.
- Click :guilabel:`Add a line`.
- Select a :guilabel:`Document Type` (national ID, business registration, tax certificate, bank statement, proof of address, export license, phytosanitary certificate, or other).
- Fill in :guilabel:`Document Number`, :guilabel:`Issue Date`, :guilabel:`Expiry Date`, :guilabel:`Issuing Authority`, and :guilabel:`Issuing Country`.
- Attach the document file via :guilabel:`Attachment`.
- Click :guilabel:`Save`.
To verify a document, open the KYC document record and click :guilabel:`Verify`. To reject, fill in :guilabel:`Rejection Reason` and click :guilabel:`Reject`.
Tip
The supplier-level :guilabel:`KYC Expiry Date` is auto-computed as the earliest expiry date among all verified documents. This lets you quickly see when the next document renewal is due.
To verify the supplier overall, click :guilabel:`Verify KYC` on the partner form. To reject, fill in :guilabel:`KYC Rejection Reason` and click :guilabel:`Reject KYC`.
Managing Certifications
- Open a commodity supplier's partner record.
- Navigate to the :guilabel:`Certifications` tab.
- Click :guilabel:`Add a line`.
- Select a :guilabel:`Certification Type` (Organic, Fairtrade, Rainforest Alliance, GlobalG.A.P., UTZ, HACCP, ISO 22000, or Other).
- Fill in :guilabel:`Certificate Number`, :guilabel:`Issuing Body`, :guilabel:`Issue Date`, and :guilabel:`Expiry Date`.
- Attach the certificate file.
- Click :guilabel:`Save`.
Certifications start in active state and transition to expired automatically when the daily cron detects they are past their expiry date. They can also be manually set to revoked.
Recording Supplier Ratings
- Open a commodity supplier's partner record.
- Navigate to the :guilabel:`Rating History` tab.
- Click :guilabel:`Add a line`.
- Enter :guilabel:`Quality Score` and :guilabel:`Reliability Score` (both on a 0--100 scale).
- The :guilabel:`Overall Score` is auto-computed as the average.
- Optionally enter :guilabel:`Quantity Delivered` and :guilabel:`Notes`.
- Click :guilabel:`Save`.
The supplier-level :guilabel:`Supplier Rating`, :guilabel:`Total Deliveries`, and :guilabel:`Total Quantity Delivered` fields are recomputed automatically from the rating history.
Managing Cooperative Memberships
- Open the cooperative's partner record (supplier type must be cooperative).
- Navigate to the :guilabel:`Cooperative Members` tab.
- Click :guilabel:`Add a line`.
- Select the :guilabel:`Member` (a commodity supplier partner).
- Fill in :guilabel:`Membership Date`, :guilabel:`Membership Number`, and :guilabel:`Share Count`.
- Click :guilabel:`Save`.
Note
A unique constraint prevents adding the same member to a cooperative twice.
Adding Trade References
- Open a commodity supplier's partner record.
- Navigate to the :guilabel:`Trade References` tab.
- Click :guilabel:`Add a line`.
- Fill in :guilabel:`Reference Company`, :guilabel:`Relationship Type` (buyer, supplier, logistics, financial), and contact details.
- Set :guilabel:`Years of Relationship`.
- Toggle :guilabel:`Verified` after contacting the reference.
- Click :guilabel:`Save`.
Technical Details
Data Model
| Model | Type | Description |
|---|---|---|
| res.partner | Extended | Commodity supplier fields added via _inherit. |
| grev.commodity.supplier.kyc.document | Model + mail.thread | KYC document records with verification workflow. |
| grev.commodity.supplier.certification | Model + mail.thread | Certification records with expiry management. |
| grev.commodity.supplier.rating | Model | Per-delivery quality and reliability scores. |
| grev.commodity.supplier.trade.reference | Model | Trade reference records with verification flag. |
| grev.commodity.cooperative.member | Model | Cooperative membership records. |
Dependencies
- base -- core Odoo framework.
- mail -- chatter and activity tracking.
- grev_od_commodity_base -- centralized commodity security groups.
Troubleshooting
KYC Status Not Updating
Symptom: Clicking :guilabel:`Verify KYC` has no effect.
Checks:
- Ensure the current user has Commodity Officer or Manager group.
- Verify the partner record has is_commodity_supplier = True.
- Check the chatter for any error messages.
Credit Used Shows Zero
Symptom: :guilabel:`Credit Used` always shows 0.00 despite active contracts.
Checks:
- Confirm grev_od_commodity_contract is installed. Without it, the computation returns 0.0 by design (soft dependency).
- Verify that commodity contracts for this supplier are in confirmed or active state.
- Trigger a manual save on the partner to force recomputation.
Certification Expiry Alerts Not Appearing
Symptom: No activities are created despite certifications nearing expiry.
Checks:
- Confirm the Certification Expiry Check scheduled action is active.
- Verify certifications are in active state with a non-empty :guilabel:`Expiry Date`.
- Check that no existing activity with the same summary already exists (the cron skips duplicates).
See Also
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