When a quality problem reaches a consumer, the first question is always: how many products are affected and where are they? For an FMCG company without lot traceability, the honest answer is usually "we don't know" which means the recall must cover every unit of that SKU in the market, across all production runs, regardless of whether they were actually affected.
A blanket recall is not just expensive. For a mid-size FMCG brand, recalling a full production month of product can mean pulling tens of thousands of units from hundreds of retail locations, issuing full replacement stock, and absorbing the cost of write-offs all because there is no way to isolate the specific affected batch.
Lot traceability eliminates this exposure. With a complete lot-to-customer record, a recall can target only the specific lots involved often representing 2–5% of the volume that a blanket recall would cover.
This post covers how Odoo implements quality control and lot traceability for FMCG companies, and what a selective recall actually looks like when the data exists to support it.
How Quality Control Works in Odoo for FMCG
Odoo's quality module operates on a concept called Quality Control Points (QCPs). A QCP is a defined inspection step triggered at a specific moment in a specific operation. For FMCG manufacturing, typical QCPs are:
| Control Point | Trigger | Typical Checks |
|---|---|---|
| Incoming Raw Material | Goods receipt — before put away | COA verification, moisture, microbiological test result |
| In-Process — Critical Control Point | Manufacturing order — mid-production step | Temperature, pH, Brix, weight per unit |
| In-Process — Packaging Line | Manufacturing order — packaging step | Seal integrity, fill weight, label correctness |
| Finished Goods Release | Manufacturing order — before goods receipt to warehouse | Organoleptic check, packaging integrity, weight per carton |
| Pre Dispatch Inspection | Delivery order — before loading | Lot verification, expiry date confirmation, carton condition |
Each QCP is configured with the check type (manual entry, pass/fail, numerical range), the responsible team, and the action on failure: block, warn, or notify. A failed incoming raw material check sets the lot to quarantine. A failed finished goods release check blocks the manufacturing order from closing until the failure is reviewed and dispositioned.
Quality Alerts and Corrective Action
When a QCP check fails, Odoo generates a Quality Alert a structured record containing:
The specific lot and product involved
The check that failed and the value recorded
The team and individual responsible for investigation
Root cause analysis fields (optional for ISO compliant operations)
Corrective action and deadline
Resolution status
Quality Alerts form an auditable corrective action register. For companies pursuing ISO 22000 (food safety management) or PSQCA certification, this register is a required document and Odoo generates it automatically from normal production operations.
Lot Traceability Upstream and Downstream
Traceability in Odoo is bidirectional. From any lot, you can navigate in both directions:
Upstream Traceability: Finished Goods -> Raw Materials
Starting from a finished goods lot say, Lot FG-2026-04-441 of cream biscuits Odoo can show:
Which manufacturing order produced this lot
Which raw material lots were consumed in that manufacturing order (e.g., Lot RM-FLOUR-087, Lot RM-SUGAR-031, Lot RM-OIL-019)
Which supplier supplied each of those raw material lots
What QC results were recorded for each raw material lot at receiving
What in-process QC results were recorded during the production run
This answers the question: A consumer reported a problem with this specific lot was it a raw material issue, a process issue, or a packaging issue?
Downstream Traceability: Finished Goods -> Customers
Starting from the same finished goods lot, Odoo can show:
Which delivery orders included this lot
Which customers received product from this lot
What quantity each customer received
What quantity remains in your own warehouse from this lot
Whether any returns have already been received from this lot
This answers the question: If we need to recall this lot, who do we contact, how many units are in the market, and how many do we still hold?
Traceability in practice selective recall: A distributor in Lahore reports that three consumers found a foreign object (plastic fragment) in your bottled sauce. The lot number is FG-SAUCE-2026-03-118. Odoo shows: this lot was produced in one manufacturing order on 18 March 2026, using specific ingredient lots. Three distributors received product from this lot a total of 840 bottles. Your warehouse still holds 120 bottles. The remaining 720 bottles are in three distributor warehouses across two cities. Odoo generates the list of affected customers, quantities, and their contact details. A selective recall covering only 720 bottles not 15,000 bottles from the full March production.
The Cross Contamination Scenario Tracing a Supplier Issue Forward
A more complex traceability scenario is the forward trace starting from a supplier notification rather than a consumer complaint.
Your palm oil supplier notifies you that Lot SUPP-OIL-2026-02-044 has been found to contain elevated levels of contaminants. You need to identify all finished goods produced using this lot.
In Odoo: search for all manufacturing orders that consumed Lot SUPP-OIL-2026-02-044. The result shows four production batches across three SKUs. The finished goods lots produced from those batches are identified. Downstream traceability shows which customers received product from each of those finished goods lots spanning potentially hundreds of delivery orders.
Without Odoo, this investigation would require cross-referencing production logs (if they exist) with shipping records (if they are complete) to reconstruct which batches of which products might have used the affected oil lot. The result would be a range of product codes and an approximate date range insufficient for a targeted recall, forcing a broad product withdrawal.
Quarantine and Hold Management
When a lot is under investigation, Odoo's quarantine function moves it to a designated stock location (Quality Hold) that is excluded from available stock for dispatch or production. The lot remains physically in the warehouse but cannot be consumed, picked, or shipped until the hold is released by an authorized user.
The quarantine record shows: who placed the hold, when, what the reason was, and when it was resolved (or destroyed). This is the document trail that regulators request in a quality audit.
PSQCA Compliance and Documentation
For FMCG manufacturers in Pakistan, the Pakistan Standards and Quality Control Authority (PSQCA) sets mandatory quality standards for a range of consumer goods categories food products, personal care, cleaning products. PSQCA certification requires demonstrable quality control procedures and documentation.
Odoo's quality module generates the following documentation that supports PSQCA compliance:
- Inspection records: Every quality check with the result, inspector, and date timestamped and unalterable
- Corrective action log: All Quality Alerts with root cause, corrective action, and closure date
- Lot traceability report: Complete chain from raw material to finished goods dispatch for any lot
- Non conformance register: All failed inspections, dispositions, and write offs
- Supplier quality history: Acceptance/rejection records by supplier and raw material lot
For companies targeting export markets particularly food products to Gulf countries or Europe similar documentation requirements apply under HACCP, ISO 22000, or importer-specific audit requirements. Odoo's quality records are exportable to PDF and Excel for audit submission.
Shelf Life Management and Proactive Write Off Prevention
Product write-offs due to expiry are a controllable cost but only if there is visibility into which lots are approaching expiry before it is too late to move them.
Odoo's expiry management works on three dates per lot:
Best Before Date: The consumer facing date printed on the pack
Removal Date: The date after which the lot should not be dispatched (e.g., 30 days before Best Before, to ensure retailer has adequate shelf time)
Alert Date: The date when Odoo sends an internal notification to the warehouse manager (e.g., 60 days before Best Before)
The Removal Date is enforced at dispatch: Odoo will not allow a lot past its removal date to be picked for a delivery order. This prevents the quality failure scenario where a warehouse operative manually picks an expiring lot to clear space and a retailer subsequently receives stock with inadequate shelf life.
Reducing write-offs proactively: When Odoo's alert fires 60 days before expiry, there is still time to act. The stock can be offered to distributors at a discount as a clearance scheme, redirected to an institutional or wholesale channel with lower shelf life requirements, or included in a buy more get free promotion to accelerate sell through. Write-off prevention is only possible with advance warning which requires the system to know the expiry date of every lot in the warehouse.
Supplier Quality Management
Quality problems in FMCG manufacturing often originate with suppliers an ingredient lot that was below specification, packaging material with a defective seal pattern, a flavouring batch with off-notes. Managing supplier quality requires a record of every raw material lot's inspection results and the ability to track acceptance rates over time.
In Odoo, incoming quality checks are linked to the purchase order and the supplier. Over time, the quality history per supplier shows:
Acceptance rate: what percentage of lots from this supplier passed incoming QC
Non-conformance history: which lots failed, what the failure was, and whether a claim was raised
Response to claims: did the supplier replace or credit the rejected material
This data supports supplier qualification decisions replacing a supplier with a consistently high rejection rate, renegotiating terms, or requiring pre shipment certificates for high risk ingredients.
Integrating Quality with Production Planning
Quality holds have a direct impact on production capacity if 20% of a raw material lot is in quarantine, the production plan must account for the reduced available quantity. Odoo's manufacturing module reads available stock excluding quarantine, so the production planner sees the correct usable quantity without manually adjusting for held material.
When a held lot is released after investigation, it appears immediately in available stock for the next production scheduling cycle no manual adjustment required.
When Quality Documentation Becomes a Commercial Asset
For FMCG companies supplying modern trade chains (hypermarkets, supermarkets) in Pakistan, quality documentation is increasingly a trading condition. Retailers require suppliers to demonstrate quality management capability as a condition of shelf listing and, particularly, for private label production contracts.
A supplier who can produce a lot traceability report in 30 seconds showing the complete raw material chain for any product on the retailer's shelf has a meaningful competitive advantage over a supplier who would need three days to reconstruct the same information from paper records.
For FMCG manufacturers aiming at export or premium retail channels, the quality documentation capability of Odoo is not just an operational tool it is a commercial qualification.