Industry
Odoo for distribution companies
In distribution, margin is won in each customer's price and lost in the lot that expires in the warehouse or the invoice that never gets collected.
Photo: Tiger Lily on Pexels
A distributor buys in volume, stores by lot and sells to customers who each have their own price, credit and route, whether it moves food, pharmaceuticals or spare parts. In Mexico, goods moved on federal highways also travel with a Carta Porte, the electronic bill of lading issued as a CFDI. Odoo 20 brings purchasing, the warehouse, the fleet, sales and collections into the same database, and the work starts by following an order from the moment it comes in until it is paid, before the first warehouse is configured.
What we solve in the operation
-
The lot that expires in the warehouse
The lot that arrived later gets picked while the earlier one expires on the shelf, and the loss shows up at the physical count.
How Odoo solves it
Each lot keeps its expiry date from the moment it is received, and picking reserves first the lot whose removal date comes earliest. A lot past its removal date is no longer reserved, and Odoo warns if anyone tries to ship it. With GS1 nomenclature, one scan brings in the product, the lot and the expiry date.
Modules
- Inventory
- Barcode
-
Each customer's price, kept in a separate list
Every customer has a negotiated price, and the sales rep looks it up in a list someone updates by hand, or asks before quoting.
How Odoo solves it
Sales pricelists set the price for each customer or customer group by product, by minimum quantity and by validity dates, and the quotation applies it on its own. The margin of each line is visible before the order is confirmed.
Modules
- Sales
-
Purchasing decided with last week's stock
The buyer decides what to order from an old report, and the warehouse ends up overstocked on slow movers and short on the best sellers.
How Odoo solves it
Odoo 20 replenishment rules compute each product's daily demand from its history and propose the minimum and the maximum: the minimum from days of coverage, with a traffic light against the replenishment lead time, and the maximum from the replenishment frequency. Each vendor's punctuality is measured against the date it promised when the order was confirmed.
Modules
- Purchase
- Inventory
-
The Carta Porte for every truck
Every vehicle that goes out on the highway needs its Carta Porte, and issuing it in a separate system delays the departure or sends the truck out without the document.
How Odoo solves it
Odoo 20 issues the Carta Porte 3.1 from the validated delivery as a transfer-type CFDI: it takes the vehicle from Fleet with its plate and model year, and its driver as the operator, who can be changed on each delivery. For federal transport it asks for the distance to destination and the weight of each product.
Modules
- Inventory
- Fleet
- Sales
-
The customer already over their credit limit
A customer with an overdue balance keeps receiving orders, because at the moment of the sale nobody sees how much they owe.
How Odoo solves it
Odoo 20 keeps a credit limit per customer that adds up their balance and their confirmed orders still to be invoiced, and warns from the quotation when it is exceeded; branches registered as contacts of the parent company share its limit. Payment follow-ups organize the collection of overdue invoices by reminder level.
Modules
- Sales
- Accounting
-
The pedimento lost between receipt and invoice
Imported goods arrive with their pedimento, the Mexican customs declaration, on paper, and when they are invoiced nobody knows which number belongs to each lot.
How Odoo solves it
The pedimento number is recorded on the landed cost of each imported receipt, stays linked to the lot and carries over to the lines of the sales invoice for those goods.
Modules
- Inventory
- Purchase
- Accounting
-
Delivery runs planned in a spreadsheet
Every morning someone splits the orders between the trucks by eye, without seeing the weight or the volume of each load.
How Odoo solves it
Odoo 20 groups deliveries into batch transfers per vehicle, with the weight and volume of each load, shows them on a map and opens the route from the warehouse in Google Maps. The optimized route, live tracking and digital proof of delivery are added by Dispatch, a product of Nivolty, a company of the group.
Modules
- Inventory
- Fleet
-
Quotes requested by email
Every major purchase is quoted by email with several vendors, and afterwards nobody can reconstruct why one of them won.
How Odoo solves it
Purchase creates alternative quotations for other vendors and compares them before choosing, and blanket orders keep the agreed price with each vendor.
Modules
- Purchase
-
Incomplete orders and a warehouse without order
Orders go out incomplete or badly packed, and incoming goods are stored wherever there is room.
How Odoo solves it
Delivery in three steps separates picking, packing and shipping, and putaway rules decide where each product is stored when it is received.
Modules
- Inventory
Nivolty solutions for this industry
Nivolty is a company in Quantum Garage's group that operates independently: it develops and guarantees its own products for Odoo Enterprise, and offers the CloudCore hosting. Its first AI Agents solution, for WhatsApp, is now available.
All Nivolty solutions-
Dispatch
Last-mile deliveries
-
Pinpoint
Contact geolocation
-
Radar Fiscal
Monitors the SAT; Odoo does the invoice stamping natively
-
Sentinel
Automated internal audit of the ERP
-
Radar Comply
Labor, foreign trade and data protection compliance
-
CloudCore
Dedicated hosting for Odoo Enterprise
-
AI Agents · WhatsApp
The first Nivolty AI Agents solution: WhatsApp connected to Odoo
Guides that apply
-
Guide · Mexico localization
Odoo 20 Mexico localization: CFDI 4.0, payment complement, Carta Porte and DIOT
-
Guide · Migration
How to migrate to Odoo from CONTPAQi, Aspel, SAP Business One, NetSuite or Business Central
-
Guide · Implementation
How to implement Odoo in a mid-sized company: phases, data migration, cut-off, go-live and adoption
Odoo with your industry's processes
We show you how your sector's processes run in Odoo, with the judgment we bring to every project: first the process, then the module.
Frequently asked questions
Can Odoo handle several legal entities in the same database?
Yes, on the Custom plan of Odoo Enterprise, which is the one that allows several companies: each keeps its own accounting and issues its own CFDIs, Mexico’s electronic invoices, and consolidation builds the group’s financial statements.
Does Odoo work for a food distributor?
Yes. It reserves first the lot that expires earliest and blocks the one already expired, reads product, lot and expiry date in a single GS1 scan, applies the price agreed with each customer and issues the Carta Porte for each shipment.
Does Odoo issue the payment complement for invoices on credit?
Yes. An invoice due after the current month is issued as PPD (payment in installments or deferred), and once its payment is reconciled with the stamped invoice, «Update Payments» sends the payment complement, the CFDI that reports the payment, to the SAT and leaves it on the CFDI tab of the invoice and the payment.
How do you migrate to Odoo from CONTPAQi, Aspel or SAP Business One?
By importing data, because a migration from another ERP is outside Odoo’s upgrade service: master data, balances at the cut-off date, such as the trial balance, open invoices, inventory and bank accounts, and what is needed to keep issuing payment complements come over, and the history stays in the old system for reference.
Do warehouse staff need a full license?
According to Odoo’s pricing page, a light user can use the Inventory barcode operator and is billed separately, at their own price; the contract counts as a user every active internal account that is neither a light user nor a portal account.