Odoo 19 Enterprise for a quarry, crushing and logistics group
A multi-entity mining group replaces weighbridge software and spreadsheets with one system that runs order to invoice, crushing output, fleet costing and GST filing across several GST registrations.
Crushed stone aggregate & M-sand
Trading & logistics
India
Project snapshot
Odoo modules in scope
Custom-built for this group
- Weighbridge weight captured straight into the transaction, tare and gross to net, for incoming raw material and outgoing sales
- Crushing output split by bill-of-materials percentage: one boulder load becomes every graded aggregate and M-sand output, with a wastage allowance
- Vehicle-level delivery, so one bulk order ships across many trips with each challan and weighment slip attached to its own entry
- Delivered-quantity invoicing with automatic backorders, so nobody bills more than has left the yard
- Trip-level fleet costing: diesel, tyres, lubricants and operator charges against the truck, with mileage per trip and per-tonne driver payouts
- Multi-entity, multi-GST operation inside one database with branch-correct addresses
- Role-based screens that show a site operator one job at a time
- E-invoice and e-way bill through the government portal API, plus min and max spares auto-reordering
The business
This is a connected set of businesses built around stone. The group mines boulders, crushes them into graded aggregate and M-sand, trades material it does not produce itself, and moves all of it on its own fleet. Manufacturing, transport and trading sit as separate registered entities, each with its own GST number.
Operations are spread across multiple crushing units and warehouses, plus the mines that feed them. Head office takes the orders. Around ninety percent of daily activity happens somewhere else: at a unit, at a mine, or on the road.
What was breaking
The group ran on weighbridge software at the units and very little else. It weighed vehicles and printed slips, and that was the end of what it could do. Everything downstream was manual: e-invoices and e-way bills raised on the government portal by hand, accounts kept outside the system, and any multi-unit report built by exporting and rekeying into a spreadsheet.
No thread from order to delivery
An order arrived at head office and was assigned to a unit, a warehouse or an outside vendor. After that, tracking depended on phone calls. A bulk order sent over eleven truckloads had no single record of what had gone out and what was still owed.
No evidence trail for quantities
Customers verify what actually arrived. Delivery challans, weighment slips and signed receipts lived in physical files at the unit, not against the order, so quantity disputes had nothing to stand on.
The fleet was a black box
The group owns its trucks and pays for diesel, tyres, lubricants, operators and driver trips. None of it was tied to the trip that consumed it, so falling mileage or fuel leaving the tank without leaving the yard went unseen.
Growth outran the paperwork
The business was expanding faster than a manual process could carry. That pressure, more than anything, is what pushed the decision to move onto one system.
Why Odoo 19 Enterprise
The group needed one system covering CRM through to filed GST returns, running across multiple GST registrations, and working for a weighbridge operator at a crushing unit as well as staff at head office.
Ochre ran three rounds of discovery before proposing a design. The first covered platform capability. The second walked the group’s actual process, including a live look at the existing weighbridge software. The third was a demo built specifically on that process rather than a generic one, which is where the design decisions were settled. Two of those decisions shaped the build.
Production is weight in, weight out
A crusher does not run routed operations like a factory line. Material goes into a hopper and comes out sorted. So production is tracked by weight rather than work orders, using the bill of materials only to split one input into its output grades.
Site staff see one job, not the whole system
An operator handling both incoming raw material and outgoing sales will make mistakes if both interfaces sit on one screen. Roles were designed to expose a single job at a time.
Inside the build
CRM · Sales · Purchase
Orders arrive through CRM, from fixed customers and from field marketing leads. Every order gets a unique Odoo reference whether or not the customer issues a formal purchase order, because a good part of the business is agreed verbally. Head office then assigns the order to an internal unit, an internal warehouse or an outside vendor. Vendor-supplied orders run as purchase orders, including drop shipment where the vendor delivers straight to the customer site.
Accounting · Studio
Manufacturing, transport and trading run as separate companies with their own GST registrations inside one database. Users switch entity without switching system, and each branch address is configured so a sale raised at a unit carries the right details on the invoice.
Inventory · Manufacturing
Weight reads into the transaction rather than being typed off a slip, with tare and gross producing net for both incoming raw material and outgoing sales. At the mine, the same material is weighed at pickup and again on arrival at the hopper, so shortfall between the two is visible instead of assumed.
Manufacturing (BoM)
One load of boulders produces several grades of aggregate and M-sand in a known ratio, with a wastage allowance. The bill of materials holds those percentages, so recording an input load creates the correct output stock across every grade without anyone doing the arithmetic.
Inventory · Documents
A bulk order can ship across many trips. Each trip carries its own vehicle, driver and quantity, with the delivery challan and signed weighment slip attached to that entry. Partial deliveries raise backorders automatically, and the invoicing policy is set to delivered quantity, so billing can never run ahead of what has actually gone out.
Fleet
Trucks are recorded with registration and chassis details. Diesel, grease, lubricants, tyres and loading-operator charges post against the vehicle. Opening and closing kilometre readings per trip produce real mileage per truck and make fuel loss visible. Tyre life is tracked against distance with an alert before the rebuild point, and driver and transporter payments calculate per tonne moved.
Accounting (Indian localisation)
E-invoices and e-way bills generate from Odoo through the government portal API. GST returns, TDS, TCS, HSN and 2B vendor verification run from the accounting module, which ends the separate portal work.
Purchase · Inventory
Crusher spares carry minimum and maximum levels with a preferred vendor and cost. When stock falls through the minimum, Odoo raises the purchase order and routes it to purchase for confirmation.
Attendance · Employees · Dashboards
Employee attendance, including contract labour, runs through the system so contractor bills can be checked against recorded hours before payment. Each user sees only the apps their job needs, while senior management sees a dashboard carrying income, receivables, payables, expenses, lead conversion, top customers, stock position and payroll.
How the rollout ran
One module at a time
Ochre and the client ran a phased rollout rather than a single big-bang go-live, sequencing each module behind the one before it so the team was never learning everything at once.
Two short reviews a week
The first session in each pair covered requirements for that module. The second showed the configured result for sign-off, so the client saw working software every week.
A single named owner
One named client owner was the point of contact throughout, which kept decisions moving and the scope honest.
The result
The group now runs the whole chain on one Odoo 19 Enterprise database, from order intake to GST-filed invoice. Weighbridge weights flow straight into transactions, one boulder load posts graded aggregate and M-sand across every stock line without anyone doing the arithmetic, and a single bulk order ships and invoices trip by trip against delivered quantity. Every truck carries its own fuel, tyre and mileage record, so cost per tonne moved is a number the group can see rather than guess. E-invoices and e-way bills generate from the same system that holds the accounts, and head office can read what is happening at each unit without picking up the phone.
Running a plant, a fleet and multiple GST entities on spreadsheets?
We design Odoo 19 Enterprise around how a business like yours actually works, then build the depth the standard apps do not carry. Let us show you what that looks like for your operation.

