Skip to content

Odoo Backorder Not Creating — Partial Delivery Without Backorder Fix

DeployMonkey Team · March 24, 2026 8 min read

Backorder Issues in Odoo

When validating a partial delivery, Odoo should ask whether to create a backorder for remaining items. When this fails:

Issues:
- Partial delivery validated but no backorder created
- Backorder created with wrong quantities
- Backorder wizard never appears
- Backorder in wrong state (draft instead of waiting)
- Remaining items "lost" after partial shipment

How Backorders Work

When you validate a delivery with less than the ordered quantity:

  1. Odoo shows a dialog: "Create Backorder?" or "No Backorder"
  2. If you choose "Create Backorder": a new transfer is created for the remaining quantity
  3. If you choose "No Backorder": the remaining demand is cancelled

Fix 1: Backorder Wizard Not Appearing

# The wizard only appears when delivered quantity < demanded quantity

# Check if quantities are correctly set:
# 1. Open the delivery order
# 2. Compare "Demand" column vs "Done" column
# 3. If Done = Demand, no backorder is needed

# Common mistake: setting Done = Demand before validating
# If you receive 8 of 10, set Done = 8 (not 10)
# Then validate — the backorder wizard will appear

# Another cause: the picking type may be configured to skip
# Inventory > Configuration > Operation Types
# Check "Create Backorder" setting:
#   - "Ask" — shows the dialog (default)
#   - "Always" — automatically creates backorder
#   - "Never" — never creates backorder

Fix 2: Configure Backorder Policy

# Per operation type:
# Inventory > Configuration > Operation Types > select type
# "Create Backorder" field:
#   Ask = dialog appears
#   Always = automatic
#   Never = skip

# If set to "Never", change to "Ask" or "Always":
# This applies to all future transfers of this type

Fix 3: Backorder Created with Wrong Quantities

# The backorder should contain: Demand - Done quantity
# If 10 ordered, 8 delivered: backorder should have 2

# Check the backorder:
# The original delivery shows a "Backorders" smart button
# Click it to see the backorder and verify quantities

# If quantities are wrong:
# 1. Open the backorder
# 2. Edit the demand quantity
# 3. Check availability to reserve stock

# Verify via database:
sudo -u postgres psql -d mydb -c "
  SELECT sp.name, sp.backorder_id, sp.state,
    sm.product_id, pt.name as product_name,
    sm.product_uom_qty as demand, sm.quantity as done
  FROM stock_picking sp
  JOIN stock_move sm ON sm.picking_id = sp.id
  JOIN product_product pp ON sm.product_id = pp.id
  JOIN product_template pt ON pp.product_tmpl_id = pt.id
  WHERE sp.backorder_id = ORIGINAL_PICKING_ID
  OR sp.id = ORIGINAL_PICKING_ID;
"

Fix 4: Missing Backorder After Validation

# If you accidentally clicked "No Backorder":
# The remaining demand was cancelled — you cannot undo this

# Fix: Create a new delivery order manually
# 1. Go to the original sale order
# 2. Check the delivery status — it should show "Partially Shipped"
# 3. If the SO still shows remaining demand, a new delivery can be created

# If the SO shows fully delivered (incorrectly):
# The stock moves were cancelled with "No Backorder"
# Create a manual delivery:
# Inventory > Operations > Transfers > Create
# Set the products and quantities for the remaining items

Fix 5: Backorder State Issues

# Backorders should be in "Waiting" or "Ready" state
# If stuck in "Draft":

# 1. Open the backorder
# 2. Click "Mark as TODO" to move to Waiting
# 3. Click "Check Availability" to move to Ready

# If the backorder can't find stock:
# The original delivery may have consumed all available stock
# Wait for replenishment or adjust the backorder quantity

Fix 6: Multi-Step Delivery Backorders

# With 2-step or 3-step delivery:
# Pick → Pack → Ship
# Backorders are created at the step where partial processing occurs

# If you partially pick:
# - A backorder is created for the Pick step
# - The Pack and Ship steps are adjusted accordingly

# Verify the chain:
# Each transfer shows "Previous/Next Transfer" in the form
# Follow the chain to ensure backorders are created at each step

Prevention

DeployMonkey configures backorder policies automatically based on your business requirements. The AI agent monitors partial deliveries and ensures backorders are properly created and tracked.