Skip to main content

Odoo Solutions

Odoo 19 Enterprise for organic spice trading
Case study  /  Project Harvest

Odoo 19 Enterprise for an organic spice sourcing, trading and export business

Four custom applications turn a WhatsApp-and-spreadsheet trading floor into a permissioned, audited system, with cost and customer identity protected at the ORM layer and origin discipline built into every lot.

Organic spices
B2B trading & export
Wild-collected sourcing
Northeast India

Project snapshot

IndustryAgri-commodities and spices
Sub-industryOrganic and wild-collected spice sourcing, B2B trading and export
RegionNortheast India, sourcing across Meghalaya, Assam and Arunachal Pradesh
Users13 internal at go-live, plus portal users for shop-floor and field staff
PlatformOdoo 19 Enterprise, self-hosted, FIFO valuation
PartnerOchre, Official Odoo Partner
StatusLive, phased go-live from mid-2026

Odoo modules in scope

CRMSalesPurchaseInventoryAccountingEmployeesAttendancesTime OffRecruitmentAppraisaleLearningProjectExpenses

Four custom applications by Ochre

  • Product Inquiry: a governed sales-to-procurement pipeline with customer masking enforced at the ORM layer, and a claim-and-lock rule that stops duplicate vendor calls
  • Master Price List: sales sees a sell price only, never landed cost or margin, with expired lists resolving to zero so an invalid quotation cannot be sent
  • Appraisal: weighted traits on a monthly cycle with self-appraisal, supervisor scoring, HR finalisation and calibration views
  • Portal Time Off and attendance for staff who hold no full licence, with policy enforced in the system

The client

This business sources organic and wild-collected spices out of Northeast India and sells B2B to herbal formulators, nutraceutical companies, masala manufacturers and export buyers, across long pepper, black pepper, dried chilli, capsicum and cinnamon leaf.

The commercial model is not simple trading. A lot from one district carries higher piperine, longer spikes and export-grade demand. A visually similar lot from another region fetches a fraction of the price and belongs with budget buyers. Grade, origin declaration and moisture at intake decide margin on every consignment, and organic lots carry an extra evidence burden: certification code, collector list, harvest date, drying record and geo-tagged photographs.

Where they were running from

Before the project, the operating stack was a set of disconnected tools: spreadsheets for the inquiry register and price working, an online form for the annual appraisal, an accounting package for the books, and chat for the handoff between sales and procurement.

An unauditable quoting loop

A sales executive received an inquiry for out-of-stock material, messaged purchase, waited for a landed rate, added a margin by memory and quoted. Nobody could say which executive sat on which inquiry, what the vendor actually quoted, or why one buyer paid more than another for the same grade.

Stock with no trail

Physical lots were tracked outside any system, so a gap between the sheet and the godown had nothing to follow.

Cost and customer both exposed

There was no way to let sales quote quickly without seeing landed cost, and no way to let procurement source without seeing the customer relationship, the asset of a trading business.

Judgement locked in people

The margin bands, the grade discipline and the confidentiality rules were sound, but they lived in habit and memory rather than in a system.

Why Odoo 19 Enterprise

Ochre ran two structured demonstrations, then a trial instance and an extended demo for the client’s own team to enter live-shaped transactions. Three things decided the platform.

One licence, every app

The client had costed ERP assuming manufacturing, warehouse, HR and accounts would each carry a module fee. Odoo Enterprise puts the full app set behind a single user licence, which mattered with manufacturing already on the roadmap for the group’s processing entity.

Indian statutory coverage in the core

GST returns, TDS, TCS, e-invoicing and e-way bill generation were hard gates, especially the ability to raise a bill and the e-way bill on behalf of unregistered forest collectors and small farmers. Portal users kept the seat count honest for field and shop-floor staff.

What Ochre built

Product Inquiry: a governed handoff

Custom app

The core custom application replaces the chat loop with a staged, permissioned pipeline from draft to won or lost, with five security groups mapped to the real org chart. Customer masking means purchase sees the product, grade, quantity and urgency but never the customer name or turnover, enforced at the ORM layer rather than by hiding a field. A claim-and-lock rule lets the first executive to claim an inquiry own the quote, removing duplicate vendor calls without an approval step.

Master Price List: margin discipline

Custom app

Sales sees a sell price, never landed cost, vendor rate or margin. The price list applies a formula over cost with configurable bands. Expired price lists resolve to zero rather than a stale rate, so an invalid quotation cannot be sent by accident.

Appraisal on weighted traits

Custom app

The online-form appraisal was rebuilt as a proper Odoo application with individually weighted traits, a configurable scale, self-appraisal through the portal, supervisor scoring, HR finalisation and calibration views. Suggested increments are restricted to management.

Lot numbering with origin discipline

Inventory

Lots follow a standard convention and separate lots per collection area are procedurally enforced, because mixing material from one region into another region’s lot is the single most common fraud in this trade. Quality control at receipt records pass or reject with a documented cause and photographs of unloading.

Weight loss as a tracked event

Inventory

Material dries between receipt and dispatch. Rather than treating the variance as a stock error, it is recorded as a form change, which is what makes later reconciliation possible. Packing was fixed at 25 kg and 50 kg, which removed fractional weight entries across sales, purchase and inventory.

Certification evidence in-system

Documents · Inventory

Certification code, collector list, forest origin declaration, geo-tagged photographs and traceability records attach to the lot, which matters when a certification body audit can suspend a project.

Adoption, built in

Two things drove uptake beyond a training deck. Role-based modules were built in Odoo eLearning with randomised questions and capped attempts, so recorded training could reach warehouse and field staff at scale. And the client rewrote its incentive policies so that every KPI is measurable inside Odoo: CRM updated daily, inquiries attended within 24 hours with auditable follow-up, order accuracy on quantity, pricing and documentation, and attendance for the punctuality component. Once the incentive is tied to the record, the record gets kept.

The result

Sales, purchase, CRM, inventory, HR and accounting all run on one database, with a separate test instance for practice. The sales-to-procurement handoff is a permissioned pipeline with a full audit trail, landed cost and vendor rates stay invisible to the sales floor while quoting speed is unchanged, and stock discrepancies are now investigable because lots, receipts, transfers and QC results reconcile against physical counts. Appraisals run monthly on weighted traits, and manufacturing for the group’s processing entity is scoped for the next phase. The implementation that worked encoded existing judgement into permissions and states, then got out of the way.

Running a trading floor on chat and spreadsheets?

Ochre builds custom Odoo applications that encode your commercial logic, margin bands, confidentiality and grade discipline, into permissions and states, on top of Odoo 19 Enterprise.

Talk to Ochre