- Home
- Apps
- Multichannel & PIM Tools
- Inter Company Stock Transfer
Illustrative previewA build-to-order Odoo module that automatically generates the counterpart receipt or delivery order in the
partner company whenever stock moves between your Odoo companies.
ECOSIRE scopes, builds, installs and supports it for your exact multi-company setup.
What is Inter Company Stock Transfer?
A build-to-order Odoo module that automatically generates the counterpart receipt or delivery order in the partner company whenever stock moves between your Odoo companies. ECOSIRE scopes, builds, installs and supports it for your exact multi-company setup. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.
Key Features
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your Odoo.
- 3
Go live + support
You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.
Technical Specifications
- Odoo Compatibility
- Odoo 17, Odoo 18, Odoo 19
- Editions
- Enterprise & Community
- License
- Licence confirmation required
- Python Requirement
- Python 3.10+
- Database
- PostgreSQL 12+
About this Product
When you run more than one company inside a single Odoo database, stock genuinely moving between them creates a reconciliation headache. A warehouse operator confirms a delivery from Company A, but nothing lands in Company B until someone manually keys in a matching receipt — and the two picks drift out of sync, valuations diverge, and month-end inventory never quite ties out. Odoo's native inter-company rules can mirror sales and purchase documents between companies, but out of the box they do not reliably create a fully-linked, valuation-correct counterpart stock.picking for every warehouse transfer, especially when you are moving stock without a customer invoice or across different warehouses, operation types, and unit-of-measure setups. Teams end up bridging that gap with spreadsheets and double data-entry.
ECOSIRE builds a made-to-order Odoo module that closes this loop. When a validated outgoing transfer is detected in the source company, the module creates the matching counterpart document in the destination company — a receipt against your delivery, or a delivery against your receipt — with the correct partner company, warehouse, operation type, source/destination locations, products, quantities, lots/serials and unit of measure carried across. Technically it hangs off stock.picking/stock.move state transitions (an @api.depends-driven flag plus a server action or base.automation rule), runs the counterpart creation with sudo() in the target company's context so multi-company record rules are respected, and stores a bidirectional link between the two pickings (a custom Many2one on each side) so the pair is always traceable. We add ir.model.access.csv entries and record rules so users only see documents for companies they belong to, plus configurable per-company-pair settings (which warehouse and operation type to post into, whether to auto-validate or leave the counterpart in draft for review, and how to map locations).
The build is grounded in the way your business actually operates. During scoping we map each company pair, your warehouse and location topology, whether you need lot/serial and expiry propagation, landed-cost or inter-company price handling, and whether counterpart documents should auto-confirm or wait for a receiving check. We wire optional QWeb transfer notes, an audit log of every generated pair, and — where you integrate external systems — expose the linkage over the standard XML-RPC/JSON-RPC API so a WMS or middleware can read both sides. The module is delivered as a clean, upgrade-safe addon in its own __manifest__.py, targeting your exact Odoo series (17.0, 18.0 or 19.0) and respecting Community vs Enterprise differences in the inventory app.
Delivery is build-to-order: after a short scoping call we confirm the company-pair matrix and behaviour rules, then build, test on a staging copy of your database, run UAT with your team, and deploy to production — typically one working week from confirmed scope. You receive the full source, documentation, a training session and a post-go-live support window. Pricing starts from $999 (indicative, single-company-pair base scope); additional company pairs, lot/serial and landed-cost propagation, multi-warehouse mapping, and integration with external WMS or middleware increase the quoted scope.
What you get
- Installable, upgrade-safe module source code built for your exact Odoo series (17.0 / 18.0 / 19.0) and edition
- Installation and configuration on your environment, including per-company-pair warehouse, operation-type, and location mapping
- Technical documentation covering models, fields, automated actions, security rules, and configuration options
- User guide plus a live training session for warehouse and inventory teams
- UAT on a staging copy of your database with a documented rollback plan before production deployment
- Post-go-live support window for defect fixes and configuration adjustments
- Git repository handover with full commit history and tagged release
- Configuration sheet documenting the agreed company-pair matrix and counterpart behaviour rules
Who this is for
Multi-company operations manager
Runs two or more legal entities in one Odoo database and needs stock physically moving between them to post accurately on both sides without their team re-keying every receipt by hand.
Inventory / warehouse lead
Owns picking accuracy and month-end stock counts. Wants the counterpart document created and reconciled automatically so on-hand quantities and valuations tie out across companies.
Odoo administrator or internal ERP owner
Maintains the Odoo instance and needs an upgrade-safe, well-documented addon with proper access rules and a git handover, not an unmaintainable pile of view overrides.
Group finance / controller
Needs inter-company inventory movements to be consistent and auditable so consolidation and valuation reconciliation are clean at period close.
How Inter Company Stock Transfer Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Counterpart document creation | Auto-creates a linked, valuation-correct receipt/delivery in the partner company | Possible but must be designed and built from zero in-house | Often mirrors sales/purchase docs, not always a linked warehouse transfer | No automatic counterpart picking for internal stock moves |
| Fit to your setup | Scoped to your exact company pairs, warehouses, and location topology | Fully bespoke, but you own all analysis and rework | Generic assumptions; you bend your process to the app | Standard behaviour only, no per-pair tailoring |
| Lot/serial & expiry propagation | Configurable propagation onto counterpart move lines | Achievable with significant extra development effort | Varies; frequently limited or absent | Not handled across the company boundary automatically |
| Upgrade safety | Upgrade-safe addon via automated actions, no fragile core overrides | Depends entirely on your developer's discipline | Unknown code quality; may break on version bumps | N/A — no such feature to maintain |
| Odoo version coverage | Built and certified for your 17.0, 18.0, or 19.0 target | Whatever you commission and maintain yourself | May lag new Odoo releases | Ships with the version, base behaviour only |
| Support & accountability | Post-go-live support window plus a single accountable vendor | Rests on internal staff availability | Ticket queue with variable response | General Odoo support, no feature-specific help |
| Ownership & handover | Full source plus git repo handover, you own the code | You own it, but also all the risk and cost | Often obfuscated or license-locked | Core code, not yours to modify safely |
| Total cost & time | Fixed quote after scoping; typically one working week | Highest cost and longest, unpredictable timeline | Low upfront, but customization and gaps add up | Free, but leaves the reconciliation gap unsolved |
Frequently Asked Questions about Inter Company Stock Transfer
How long does delivery take?
This is a build-to-order module, not an off-the-shelf download. After a scoping call to confirm your company-pair matrix and counterpart behaviour rules, typical delivery is one working week from confirmed scope, including a build on staging, UAT with your team, and production deployment. Larger multi-pair or integration scopes may extend that, and we agree the timeline in writing before starting.
How does pricing and scoping work?
Pricing starts from $999 as an indicative from-price for a single-company-pair base scope. We do not quote a firm price until a short scoping call establishes the exact requirements — number of company pairs, lot/serial and landed-cost handling, warehouse mapping, and any external integration. After scoping you receive a fixed written quote, and the price does not change unless you change the scope.
What about support and future Odoo updates?
Every build includes a post-go-live support window for defect fixes and configuration adjustments. The module is written as an upgrade-safe addon using automated actions and clean model extensions rather than fragile core overrides, so it carries forward cleanly. When you move to a newer Odoo series (for example 18.0 to 19.0) we can quote a migration and re-certification of the module against that version.
Does this replace Odoo's native inter-company rules?
It complements them. Odoo core can mirror sales and purchase documents between companies, but it does not reliably produce a fully-linked, valuation-correct counterpart warehouse transfer for every internal stock move. We build precisely that missing counterpart-picking logic and link the two documents together, working alongside your existing multi-company configuration rather than ripping it out.
Will it work with our lots, serial numbers, and specific warehouses?
Yes — that propagation and mapping is exactly what we scope. We map each company's warehouses, operation types, and internal locations, and we can carry lot/serial numbers and expiry dates onto the counterpart move lines where you need full traceability. These behaviours are configured per company pair during the build.
Can it auto-confirm the counterpart, or should someone check it first?
Both are supported and configurable per company pair. You can have the counterpart receipt or delivery auto-validate on creation for fully-trusted internal flows, or leave it in draft so the receiving side confirms it after a physical check. We set your preferred default during scoping and it remains adjustable in configuration.
Do we own the code, and can it integrate with other systems?
Yes. You receive the full source and a git repository handover with commit history, so you own and can maintain the module. The source and counterpart pickings are readable over Odoo's standard XML-RPC/JSON-RPC API, so an external WMS, middleware, or reporting tool can consume both sides of every transfer. External integration is scoped and quoted as part of the build.
Related Modules

Import Purchase Order Lines from CSV/Excel File
A build-to-order Odoo module that lets your buyers upload a CSV or Excel file and drop dozens or hundreds of validated lines straight onto a purchase order. ECOSIRE builds, installs, and supports it for Odoo 17, 18, and 19.

Inbound ASN & Supplier Receiving Portal for Odoo
A build-to-order Odoo module that lets suppliers submit advance ship notices through a portal and lets your warehouse team receive against those ASNs with barcode scan matching, discrepancy capture, and pallet-level receiving. ECOSIRE builds, installs, and supports it on Odoo 17, 18, or 19.

Inventory Adjustment Backdate for Odoo
A build-to-order Odoo module that lets authorized users post inventory adjustments and stock moves on a past effective date, each stamped with a mandatory remark for audit-clean historical records. ECOSIRE builds, installs, and supports it on your Odoo 17, 18, or 19 environment.

Inventory Mobile Warehouse Automation
A build-to-order mobile warehouse automation kit for Odoo, adding fast barcode-driven receipts, put-away, picking, packing and counts on rugged scanners and phones. ECOSIRE scopes, builds, installs and supports it on your Odoo 17/18/19 instance.
Inter Company Stock Transfer
A build-to-order Odoo module that automatically generates the counterpart receipt or delivery order in the partner company whenever stock moves between your Odoo companies. ECOSIRE scopes, builds, installs and supports it for your exact multi-company setup.
- Detects validated `stock.picking` state transitions in the source company and creates the matching counterpart receipt or delivery in the destination company automatically
- Bidirectional `Many2one` link stored on each `stock.picking` so the source and counterpart documents are always traceable to one another
- Runs counterpart creation in the target company context with `sudo()` so multi-company record rules and access rights are honoured, not bypassed
- Carries products, quantities, unit of measure, and source/destination locations across the company boundary with UoM conversion respected