Dropshipping lets you sell products without holding stock. When a sale order is confirmed, Odoo generates a purchase order to your vendor and a receipt/delivery pair that ships directly from the vendor to the customer. No warehouse handling, no intermediate transit step.
Getting this right requires configuring three things correctly: the Dropship route, vendor lead times, and the customer-facing delivery order. Get any one wrong and you end up with a purchase order that doesn't link to the sale, or a delivery that Odoo expects to go through your warehouse.
Enabling the Dropship route#
Inventory → Configuration → Settings → Warehouse → Routes - enable Dropshipping.
This creates the system route Dropship (technical key stock.route_drop_shipping). The route defines a push rule: when a demand originates from a sale order line, generate a purchase order to the vendor and route the receipt directly to the destination partner (the customer), bypassing all warehouse locations.
Do not create a custom route for dropshipping. The system route has special logic that links the vendor receipt to the customer delivery and copies the shipping address correctly.
Assigning the route to products#
On each product you intend to dropship, go to the Inventory tab and add Dropship to the Routes field.
You can also set the route on a product category if most products in that category are dropshipped - individual products inherit the category route but can override it.
If a product has both Buy (standard resupply) and Dropship routes, Odoo will prompt at the time of sale which route to use, or you can set a preference in the Sales tab of the product.
Setting up the vendor and delivery lead time#
On the product form, go to Purchase tab → Vendor Pricelist and add your vendor. The two fields that matter for dropshipping are:
- Delivery Lead Time: how many days from PO confirmation to vendor shipment. Odoo uses this to compute the expected arrival date shown on the customer delivery.
- Min Qty / Price: standard vendor price rules.
The scheduled delivery date on the customer order is calculated as: Confirmation Date + Customer Lead Time. The vendor lead time feeds into the vendor receipt date but does not directly push out the customer date - you need to configure the product's Customer Lead Time (Sales tab) to account for the vendor's shipping time.
The sale-to-delivery-to-purchase flow#
When you confirm a sale order for a dropship product:
- Odoo creates a Delivery (outgoing shipment) linked to the customer, but the source location is set to the vendor's location - not your warehouse.
- A Purchase Order (PO) is generated automatically. The delivery address on the PO is the customer's shipping address (not your warehouse).
- When the vendor confirms the PO, you can record the vendor receipt. Because the goods go directly to the customer, the receipt is immediately "done" - you mark it as received without physically handling the goods.
- Validating the vendor receipt automatically validates the customer delivery. The stock move goes: Vendor → Customer (no intermediate location).
This two-document structure (one for the customer, one for the vendor) means Odoo tracks both obligations simultaneously.
Accounting entries for a dropship sale#
Dropshipping changes the accounting flow compared to a standard sale:
Standard sale: Goods in → COGS on delivery → Revenue on invoice.
Dropship sale:
- When you validate the vendor receipt: Debit COGS / Credit Accrued Purchases (or vendor payable, depending on the costing method).
- When you validate the customer delivery (happens simultaneously): Debit Deferred Revenue / Credit Revenue - this posts automatically only if you have revenue recognition configured. For most setups, revenue posts when you invoice.
- When you receive the vendor bill: Debit Accrued Purchases / Credit Accounts Payable.
- When you invoice the customer: Debit Accounts Receivable / Credit Revenue.
The key difference: COGS posts on the vendor receipt date, not on an internal delivery date, because there is no warehouse movement.
Vendor bill and customer invoice linking#
After validating the vendor receipt, navigate to the PO → Bills. Create the vendor bill here to link it to the PO and the three-way match.
For the customer invoice, go to the Sale Order → Invoices and create the invoice in the normal way. Odoo does not automatically generate the customer invoice when the vendor delivers - you must invoice from the SO.
If you use invoicing policy On Delivered Quantities, Odoo unlocks the invoice button when the customer delivery is validated. Since validation is automatic on vendor receipt, you can invoice immediately.
Tracking vendor shipments#
Odoo does not natively send shipment tracking numbers from vendors to customers. To track vendor shipments:
- On the vendor receipt (which represents the dropship event), enter the tracking reference in the Tracking field.
- This reference appears on the receipt, but does not automatically appear on the customer delivery order or portal.
For customer-facing tracking, you need either a customization that copies the vendor tracking number to the customer delivery, or a third-party shipping integration that handles dropship events.
Multi-vendor dropshipping#
If a sale order has multiple dropship lines with different vendors, Odoo generates one PO per vendor. Each PO has its own vendor receipt. When each receipt is validated, only the corresponding customer delivery lines are marked as done.
This means a sale order can be partially delivered (lines from Vendor A delivered, lines from Vendor B still pending), and the customer portal reflects this correctly.
Common configuration mistakes#
Forgetting to set the customer shipping address on the PO: Odoo copies the sale order's delivery address to the PO automatically. If you manually create a PO for a dropship without linking it to a SO, the delivery address defaults to your company address - the goods will ship to your warehouse, not the customer.
Using a warehouse route instead of the system Dropship route: Custom push rules that route through a warehouse location will create an intermediate receipt at your warehouse, defeating the dropship model and creating a stock discrepancy.
Not configuring a vendor on the product: Without a vendor in the pricelist, Odoo cannot auto-generate the PO when the sale is confirmed. You'll get a warning and the dropship flow won't trigger.
Expecting automatic customer invoicing: Odoo does not invoice the customer automatically when the dropship completes. You must trigger the invoice from the sale order.
For the full order-to-cash cycle, see the Odoo sales order invoicing flow guide. For standard warehouse replenishment, see the Odoo inventory replenishment methods guide.

