Skip to Content

Two-Step Delivery With Goods-in-Transit, Auto-Closed at Invoicing

August 29, 2026 by
Two-Step Delivery With Goods-in-Transit, Auto-Closed at Invoicing
Majorbird

Two-Step Delivery With Goods-in-Transit, Auto-Closed at Invoicing

两步发货与在途物资,开票时自动关闭

Entrega en dos pasos con mercancía en tránsito, cerrada automáticamente al facturar

Livraison en deux étapes avec marchandises en transit, clôturée automatiquement à la facturation

تسليم على خطوتين مع بضاعة في العبور، يُغلق تلقائيًا عند الفوترة

Giao hàng hai bước với hàng đang vận chuyển, tự động đóng khi lập hóa đơn

When "Shipped" and "The Customer's Problem Now" Aren't the Same Moment

Some businesses need their stock system to reflect a real, physical fact: goods that have left the warehouse but haven't formally changed hands yet. They're on a truck, in transit, technically the seller's responsibility until the paperwork catches up. Odoo's standard answer to this is a full two-step delivery, and for a lot of teams that's more configuration and more manual clicks than the situation actually calls for.

What they wanted instead was something lighter: track the in-transit moment without asking a warehouse person to remember a second manual step every single time.

The fix: a virtual location, and one automation rule

We built a one-step delivery routed through a virtual "in transit" location on its way to a virtual customer location. The first leg happens exactly the way a normal delivery already does. The second leg, the move out of transit and into the customer's hands, completes automatically the moment the invoice is created, rather than waiting on someone to remember to close it out.

The result lines the physical story up with the financial one: stock sits in transit for exactly as long as it's genuinely unbilled, and the moment the accounting side says the sale is real, the inventory side agrees, with nobody clicking a second button to make that true. It's a pattern built entirely from configuration Odoo already ships with (virtual locations and automated stock moves), just aimed at a specific operational reality instead of the generic default.

The takeaway

The lesson generalizes past delivery flows. A lot of "we need custom development" requests are really "we need the standard flow retimed to match how our business actually moves goods and money." Odoo's virtual locations and automation rules are flexible enough to model that timing without a bespoke module, if someone takes the time to map the real-world sequence first. Majorbird spends a fair amount of its time on exactly that mapping. If your stock and your invoices tell slightly different stories about when a sale actually happened, it's worth talking through with our team.

in News
Any Document, Rebuilt in Odoo: AI + Vision Make Custom PDFs Easy