All posts
Functional4 min read

Managing Quarantine and Quality Hold Locations in Odoo

Set up Odoo quarantine locations to physically and systemically separate non-conforming inventory - preventing suspect goods from being sold or used in production while disposition decisions are made.

Quarantine and Quality Hold in Odoo#

When products fail inspection or are suspected of defects, they must be physically and systemically segregated - preventing them from being picked for orders or used in production. Odoo quarantine locations enforce this separation at the system level.

Creating a Quarantine Location#

Inventory → Configuration → Locations → New:

  • Name: WH/Quarantine
  • Location Type: Internal (product remains in inventory but at a separate location)
  • Active: Yes
  • Scrap Location: No (don't confuse with scrap - quarantine is a holding area)

Optionally restrict access:

  • Set the location to be selectable only by QC staff (via user group restrictions on the location)

Moving Products to Quarantine#

When a product fails inspection:

Option 1 - From the quality alert:

Quality → Quality Alerts → [Alert] → Move to Quarantine:

  • Creates an internal transfer: WH/Stock → WH/Quarantine
  • Product is now at the quarantine location - cannot be picked for delivery orders

Option 2 - Manual internal transfer:

Inventory → Operations → Transfers → New:

  • From: WH/Stock (or WH/Input or wherever suspect goods are)
  • To: WH/Quarantine
  • Products: the suspect items with lot/serial numbers

Systemic Effect of Quarantine Location#

Products at WH/Quarantine:

  • Are not available for delivery orders (Odoo only picks from WH/Stock or configured pick locations)
  • Are not used in MRP replenishment calculations (unless explicitly configured)
  • Do appear on stock reports - visible but segregated

This prevents accidental use while keeping the product on the books.

Disposition Decisions#

After investigation, QC decides what to do with quarantined goods:

Acceptable with concession: internal transfer WH/Quarantine → WH/Stock (return to use)

Repairable: transfer to WH/Rework → create repair order

Scrap: validate a scrap order from WH/Quarantine → product removed from inventory

Return to vendor: create a vendor return from WH/Quarantine → delivery order to vendor

Quarantine Register#

Track all quarantine events:

Inventory → Reporting → Inventory Adjustments → filter by WH/Quarantine:

  • What went in and when
  • How long it stayed (time in quarantine)
  • Disposition: released / scrapped / returned

Long residence times in quarantine indicate delayed decision-making - set a 5-day SLA for quarantine disposition.

Try ERPeek on your own Odoo module - ask questions, scaffold tests, and explore your codebase in plain language.

Get started free