A build-to-order Odoo OMS layer that routes each order to the optimal warehouse, 3PL or dropshipper by cost, stock and SLA. One-time license from $799.00 USD for Odoo 17, 18, 19 — includes 12 months of updates and support.

A build-to-order Odoo OMS layer that routes each order to the optimal warehouse, 3PL or dropshipper by cost, stock and SLA.
No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.
Order Routing & Fulfillment Orchestration (OMS) is a build-to-order Odoo module that ECOSIRE designs, develops, installs and supports for your specific fulfillment network. It is not an off-the-shelf apps.odoo.com download you install in a click — it is a bespoke order-management layer engineered around your warehouses, 3PL partners, dropshippers and marketplace commitments, delivered in roughly 2–4 weeks.
Rule-based order routing engine with pluggable strategies — nearest warehouse, cheapest landed cost, fastest-to-deliver, or a weighted score you configure per order line
Available-to-promise (ATP) allocation using computed @api.depends fields that net free stock against reservations, incoming POs and safety stock in real time
Split-shipment logic that decomposes a single sale.order into multiple deliveries when no single source can fulfill the whole basket
Partial-fulfillment handling that ships what is in stock now and orchestrates the remainder as a linked backorder
3PL routing decisions that select the right fulfillment partner per line and generate the correct outbound picking or partner PO
FBA/FBM (Amazon) and marketplace-aware routing that respects channel-specific fulfillment commitments and label requirements
Out of the box, Odoo picks stock from a single warehouse or a fixed route. That breaks the moment you run multiple warehouses, blend owned inventory with dropship and FBA/FBM, or promise SLA-based delivery. This module inserts an intelligent routing decision between order confirmation and delivery generation: for every sale.order.line it evaluates available-to-promise stock, landed shipping cost, carrier cut-off times and partner SLAs, then allocates each line to the source that best satisfies your rules — nearest, cheapest, fastest, or a weighted blend you define.
Technically, it is a proper Odoo addon. We ship a clean __manifest__.py declaring dependencies (sale, stock, delivery, and optionally purchase/dropship), new models.Model records such as a routing-rule engine and per-line fulfillment-decision log, computed fields with @api.depends for real-time ATP and cost scoring, security via ir.model.access.csv plus record rules for multi-company and multi-warehouse isolation, backend views in XML/OWL, QWeb pick/pack documents, and automated actions (server actions / scheduled ir.cron) that re-evaluate backorders and split shipments without manual intervention. Routing decisions are exposed over XML-RPC and JSON-RPC so your storefront, marketplace connectors or middleware can query or override allocation programmatically. It runs on Odoo 17, 18 and 19, on Community or Enterprise — we confirm the exact edition and version fit during scoping.
Because we build it to order, the routing logic reflects your real network — your warehouse priorities, your 3PL SLAs, your substitution policy, your marketplace cut-off times — rather than a generic template you have to bend around. ECOSIRE hands over readable, upgrade-safe source code, an admin runbook, user training and a defined post-launch support window, so your operations team owns and trusts the system rather than fighting it.
Runs fulfillment across two or more warehouses and is tired of Odoo picking the wrong location, generating cross-country shipments and blowing shipping budgets. Needs cost- and distance-aware routing with a clear audit of every allocation decision.
Blends owned stock, dropshippers and Amazon FBA/FBM across multiple sales channels. Needs one intelligent layer that decides per order line whether to ship from a warehouse, hand off to a 3PL, or trigger a dropship PO — while honoring channel SLAs.
Owns the Odoo instance and refuses black-box apps. Wants a clean, upgrade-safe addon with proper models, record rules and RPC endpoints they can read, extend and integrate with existing storefront and marketplace connectors.
Buy the license on ecosire.com and download the Order Routing & Fulfillment Orchestration (OMS) module ZIP from your account dashboard.
Extract the ZIP into your Odoo custom addons folder on the server (or upload via Apps > Install from file on Odoo.sh / runbot).
Activate Developer Mode, open Apps, click Update Apps List, search for Order Routing & Fulfillment Orchestration (OMS), and press Install.
Open the new menu, paste your ECOSIRE license key, connect any external credentials (Shopify, Amazon, Stripe, etc.), and save.
Run the built-in connection test, sync your first 10 records, and schedule the recurring cron. Contact support if anything fails.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Routing tuned to YOUR warehouses, 3PLs, SLAs and substitution policy | ||||
| Cost + stock + SLA weighted allocation per order line | ||||
| Split-shipment, partial-fulfillment and automated backorder re-routing | ||||
| Dropship + FBA/FBM + 3PL handoff in one decision layer | ||||
| Transparent per-line decision audit log (why each source won) | ||||
| XML-RPC / JSON-RPC override endpoints for storefront & marketplaces | ||||
| Upgrade-safe, fully-owned, commented source code handed over | ||||
| Installation, configuration, training and support window included | ||||
| Predictable delivery timeline (2–4 weeks) and fixed scope |
This is a build-to-order module, not an instant apps.odoo.com download. After a short scoping call to map your warehouses, 3PL partners, SLAs and substitution rules, typical delivery is 2–4 weeks: design and build, then deployment to your staging environment for UAT, then production go-live. You never install an unconfigured generic app — you receive a working, configured system tuned to your fulfillment network.
Every engagement includes a defined post-launch support window for bug fixes and configuration help, plus training so your team can adjust routing rules themselves. Because we hand over the full, commented source code, you are never locked in. We also provide a version-compatibility statement, and offer ongoing support and Odoo-version upgrade retainers (for example when you move from 17 to 18 or 19) as an optional continuation.
The module is built for Odoo 17, 18 and 19, on both Community and Enterprise. We confirm your exact version and edition during scoping and test against it, since some fulfillment features (like certain Enterprise delivery/costing tools) differ between editions. The routing logic itself is edition-independent and built on standard sale, stock and delivery models.
No. Routing runs through a transparent rule engine. For each sale.order.line the module scores candidate sources using computed @api.depends fields for available-to-promise stock, landed shipping cost, and SLA/cut-off feasibility, then applies your chosen strategy (nearest, cheapest, fastest or weighted). Every decision is written to a per-line fulfillment-decision log showing the candidates considered and why the winner was picked, so operations and audit can always see the 'why'.
Yes. Routing decisions are exposed over Odoo's XML-RPC and JSON-RPC APIs, so your storefront, middleware or marketplace connectors can request an allocation or force a manual override programmatically. 3PL and dropship handoffs are generated as native Odoo pickings or vendor purchase orders. We scope your specific partner and channel integrations up front and confirm what is API-driven versus configured.
When no single source can satisfy a line, it can split the shipment or ship partially now and create a linked backorder. A scheduled ir.cron job re-scans open backorders and re-routes them automatically as stock or a cheaper source appears. For out-of-stock SKUs you can define substitution rules that offer an equivalent product — either with an approval step or as an automatic swap — based on the policy we configure with you.
We build against Odoo conventions — a clean __manifest__.py, standard model inheritance, ir.model.access.csv and record rules rather than hacks — specifically to keep the module upgrade-safe. That said, no custom addon is guaranteed to migrate untouched across major versions, so we hand over readable source and offer optional upgrade support to move it from 17 to 18 or 19 when you are ready.
A build-to-order Odoo OMS layer that routes each order to the optimal warehouse, 3PL or dropshipper by cost, stock and SLA.