Skip to content

Odoo Scrap Order Error — 'Cannot Scrap' and Virtual Location Issues Fix

DeployMonkey Team · March 24, 2026 8 min read

Scrap Order Errors in Odoo

When trying to scrap products from inventory, you encounter:

UserError: You cannot scrap a product that is not available in stock.

UserError: The scrap location is not set. Configure a virtual location for scrapped products.

ValidationError: You need to supply a Lot/Serial Number for Product A.

UserError: No journal entry could be created for this scrap order.

Fix 1: Product Not Available

# Odoo requires the product to be physically available at the source location

# Check available quantity:
# Inventory > Products > select product > On Hand smart button
# Verify the source location has stock

# If stock is reserved for another order:
# The reserved quantity cannot be scrapped
# First unreserve, then scrap

# To scrap from a specific location:
# When creating a scrap order, set the Source Location
# It must be an internal location with available stock

Fix 2: Scrap Location Not Configured

# Odoo uses a virtual scrap location to track scrapped items

# Check if scrap location exists:
# Inventory > Configuration > Warehouses > select warehouse
# Under "Technical Information", verify "Scrap Location" is set

# If missing, create one:
# Inventory > Configuration > Locations > Create
# Name: Scrap
# Location Type: Virtual
# Is a Scrap Location: Yes (check this box)

# Or find existing scrap locations:
sudo -u postgres psql -d mydb -c "
  SELECT id, complete_name, scrap_location, usage
  FROM stock_location
  WHERE scrap_location = true;
"

Fix 3: Lot/Serial Number Required

# If the product uses lot or serial tracking:
# The scrap order must specify which lot/serial to scrap

# When creating a scrap order:
# 1. Select the product
# 2. Select the Lot/Serial Number
# 3. Set the quantity
# 4. Validate

# If you don't know which lot:
# Check available lots:
# Inventory > Products > select product > Lot/Serial Numbers tab
# Or: Inventory > Products > Lot/Serial Numbers

# To scrap without tracking (for tracked products):
# This is NOT possible — tracking is enforced
# You must specify the lot/serial being scrapped

Fix 4: Scrap from Manufacturing Order

# Scrapping during manufacturing is different from inventory scrap

# From a Manufacturing Order:
# 1. Open the MO
# 2. Click "Scrap" button
# 3. Select which component or finished product to scrap
# 4. Set quantity and reason
# 5. Validate

# The scrap is linked to the MO for cost tracking
# The scrap location receives the items
# Cost is allocated to the manufacturing order

Fix 5: Accounting Entries for Scrap

# If scrap validation fails with accounting errors:

# Check product category accounting configuration:
# Inventory > Configuration > Product Categories > select category
# Account Properties tab:
# - Stock Valuation Account (for automated valuation)
# - Stock Input Account
# - Stock Output Account

# The scrap move uses:
# Debit: Scrap Expense Account (or Stock Valuation decrease)
# Credit: Stock Valuation Account

# Configure scrap expense account:
# If using automated valuation:
# Product Category > Accounting > Stock Scrap Account
# Set to an expense account like "Inventory Scrap Expense"

# Check valuation method:
# Product Category > Inventory Valuation > Automated
# Costing Method > Standard Price, FIFO, or Average

Fix 6: Scrap and Inventory Valuation

# Scrapping affects inventory valuation:
# - Standard: scrap at standard cost
# - Average: scrap at current average cost
# - FIFO: scrap at FIFO cost

# If the scrap value seems wrong:
# Check the product's current cost:
# Product > General Information > Cost

# Check the generated journal entry:
# Scrap Order > Journal Entry smart button
# Verify the debit/credit amounts match expected cost

Scrap Order Checklist

CheckRequirement
Stock availableProduct must be in the source location
Scrap location existsVirtual location with scrap=True
Lot/SerialRequired if product has tracking
Accounting accountsProduct category must have valuation accounts
User permissionsUser needs Inventory Manager role

Prevention

DeployMonkey's AI agent configures scrap locations, accounting entries, and tracking requirements during setup. The agent validates scrap prerequisites before processing to prevent configuration-related failures.