Odoo consultants for regulated manufacturers · code you keep

Inventory · Odoo guide

How do I do a product recall trace in Odoo?

Start from stock.lot traceability: open the lot, use Traceability smart button on moves, and run upstream supplier receipts plus downstream deliveries and manufacturing orders. Export affected partners from stock.move.line history, quarantine remaining quants, and document returns with reverse pickings linked to the same lot for audit evidence.

By Chase Robbins, Operator & Founder at The ERP Firm · Last updated October 24, 2026

Steps

  1. Inventory → Products → Lots/Serial Numbers: locate the recalled stock.lot by name or supplier reference.
  2. Open the lot form → Traceability report (stock.traceability.report wizard) for upstream and downstream moves.
  3. List all stock.picking deliveries and mrp.production consuming the lot via move line search on lot_id.
  4. Create an internal transfer to a quarantine stock.location; block reservation from pickable zones.
  5. Issue return pickings (incoming from customers) with the same lot_id on move lines.
  6. Notify sales partners using res.partner lists exported from traced deliveries.
  7. Attach recall bulletin and investigation notes to the lot chatter and related quality.alert if used.

Common mistakes

  • Searching pickings by product only without filtering lot_id.
  • Scrapping quarantined stock before trace report is archived.
  • Renaming lots after issue, breaking trace links.
  • Ignoring subcontracting moves in traceability.
  • Failing to lock lot with a reason on quality holds.

Odoo version notes

Traceability reporting ships in Community and Enterprise 16–18 via stock models. Enterprise Quality adds quality.alert workflows but trace still flows through stock.move.line. For FSMA or pharma, pair Odoo trace with documented SOPs; optional GAMP modules may extend logs. Upgrade tests should re-run a mock recall in staging.

FAQ

Follow-up questions

Can Odoo show customers who received a lot?
Yes—downstream delivery move lines with lot_id tie to partners on stock.picking partners.
What if the lot was repacked?
Follow package and lot splits through move lines; repack operations should preserve origin lot links.
How fast can we export data?
Use list views on move lines filtered by lot_id and spreadsheet export; large DBs may need SQL read replica for speed.

Book a scoping call for your Odoo environment.

Bring your version, user count, and the workflow that is blocked today.

Book a scoping call