Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Accounting
  3. Inter-company Sales/Purchase Mirroring v 16.0
  4. Sales Conditions FAQ

Inter-company Sales/Purchase Mirroring

by ERP Heritage https://www.erpheritage.com.au/
Odoo
v 16.0 Third Party 12
Download for v 16.0 Deploy on Odoo.sh
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Versions 16.0 17.0 18.0 19.0
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Purchase (purchase)
• Invoicing (account)
• Discuss (mail)
Community Apps Dependencies Show
• Inter-Company Rules
• Accounting Suite Base
Lines of code 5695
Technical Name eh_account_intercompany_so_po
LicenseLGPL-3
Websitehttps://www.erpheritage.com.au/
Versions 16.0 17.0 18.0 19.0
ERP Heritage · Accounting Suite
ERP Heritage Accounting Suite

Inter-Company SO/PO Mirroring

Automatically draft matching purchase and sales orders when inter-company partners confirm orders, completing the mirror cycle from invoices to order lines.

Free · LGPL-3AutomationCommunityv16.0.1.0.0
SO to PO mirroring
PO to SO mirroring
Draft order generation
Idempotent mirroring
Inter-company user context

Why this module

Inter-Company SO/PO Mirroring

Automation

No manual order re-entry

Confirming an order in one company automatically drafts the mirror in the partner company, eliminating duplicate data entry and synchronization delays.

Control

Review before acceptance

Mirror orders land in draft so the receiving company can review lines, pricing, and quantities before confirming, preventing unwanted order commitments.

Completeness

Order-to-invoice alignment

Extends inter-company automation beyond invoices to include SO and PO, so mirror orders and mirror invoices stay aligned across the trade cycle.

Day in the life

Monday morning: multi-company order sync

Company A sales rep confirms a $50k SO to Company B (a sister entity). The module instantly drafts a PO in Company B with Company A as vendor, matching product, qty, and price. Company B procurement reviews the drafted PO, confirms it aligns with internal demand, and accepts. Later, when the purchase bill posts in Company B, the parent Inter-Company Rules module mirrors it back to a customer invoice in Company A. No manual PO creation, no pricing disputes, full audit trail.

Edge cases

The cases most modules quietly ignore.

In the shipped code today, each one a place where a cheaper module silently does the wrong thing.

Idempotency

A mirror is never mirrored back. If SO A -> PO B is created and then PO B is confirmed, no back-mirror SO is generated; the system detects the eh_ic_origin_so_id flag and skips re-mirroring.

Non-IC partners

Partners without a Represented Company or whose company matches the order company are skipped; no mirror is drafted, so regular external customers and internal transfers never trigger unintended mirroring.

Empty lines

Lines without a product_id (section headers, service lines with display_type set) are filtered out during line mapping, so only concrete line items with product and quantity transfer to the mirror.

No-config skip

If the destination company has no enabled eh.intercompany.config record, mirroring is silently skipped; the order confirms normally without blocking, so missing config is not an error.

User context

If the inter-company config specifies an intercompany_user_id, the mirror is created with that user's context; otherwise sudo() is used per standard Odoo multi-company patterns.

What is inside

Built to do the job, end to end.

  • models/intercompany_order_mixin.py. Shared abstract mixin resolving destination company from partner Represented Company, loading inter-company config, and applying configured user context; reused by both SO and PO so logic stays consistent with invoice-mirroring engine.
  • models/sale_order.py. Extends sale.order, adding eh_ic_mirror_po_id and eh_ic_origin_po_id fields; overrides action_confirm() to call _eh_ic_create_mirror_po() which builds draft PO lines and posts confirmation message to source SO chatter.
  • models/purchase_order.py. Extends purchase.order, adding eh_ic_mirror_so_id and eh_ic_origin_so_id fields; overrides button_confirm() to call _eh_ic_create_mirror_so() which builds draft SO lines and posts confirmation message to source PO chatter.
  • tests/test_so_po_mirror.py. Integration tests validating SO confirm -> PO draft creation, PO confirm -> SO draft creation, no mirroring for non-inter-company partners, and no back-mirroring of mirrors; covers both company contexts and line mapping.

Honest about the edges

What this does not do, so nothing surprises you.

  • Requires eh_account_intercompany to be installed; mirrors are only created when a matching enabled inter-company config exists in the destination company.
  • Does not auto-confirm mirrored orders; mirrors land in draft state for manual review and confirmation by the receiving company.
  • Inter-company user context is applied only if the destination company's inter-company config specifies one; otherwise sudo() is used, so the creator's identity is not preserved in the mirror.
  • No tax or analytic distribution mapping; only product, quantity, unit price, and label are transferred. Tax and accounts are determined by the receiving company's standard rules when the mirror is confirmed.
  • Line-level discounts on the source order are not mapped; only the final price_unit on each line is transferred.
Search

inter-company sales order, inter-company purchase order, SO to PO automation, multi-company order mirroring, Odoo 16 intercompany, sister company orders, order mirroring automation, draft PO generation, automated intercompany purchasing, Odoo Community intercompany, group accounting orders, cross-company SO PO, intercompany order synchronization

Languages

Available in 19 languages

The interface ships translated out of the box. Switch language in Odoo and the fields, menus, and messages follow.

العربية简体中文繁體中文NederlandsFrançaisDeutschहिन्दीBahasa IndonesiaItaliano日本語한국어PolskiPortuguês (Brasil)РусскийEspañolSvenskaไทยTürkçeTiếng Việt
More from ERP Heritage

Modules teams pair with this one.

Premium ERP Heritage modules that extend the same stack, each built to the same engineering bar.

USD 59
Employment Hero HR

Sync Employment Hero employees, departments and payroll bank details into standard Odoo Community HR over the pla...

USD 19
Employment Hero Webhook

Inbound webhook receiver for the Employment Hero people and payroll platform on Odoo 16 Community

USD 369
Mauritius e-Invoicing

Real-time fiscalisation of customer invoices and credit notes with the Mauritius Revenue Authority e-Invoicing (E...

USD 49
User Access Studio

A user driven access overlay for Odoo 16

USD 9
Employment Hero Canada

The Canada country pack for the ERP Heritage Employment Hero integration

USD 39
Employment Hero Documents

Sync Employment Hero documents into the Odoo Documents app

ERP Heritage

v16.0.1.0.0 · LGPL-3 · Odoo 16 Community

Developed by Odoo Consultant Melbourne • LinkedIn

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author, please use the developer contact information. They can usually be found in the description.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with