Skip to main content
Odoo Community Association

Base External System Odoo-rpc

Beta License: AGPL-3 OCA/server-backend Translate me on Weblate Try me on Runboat

Base External System OdooRPC

This module adds an external system adapter for connecting to another Odoo instance using the Python odoorpc client (JSON-RPC).

It is built on top of base_external_system and implements a new adapter model:

  • external.system.odoo (System Type: External System RPC)

The adapter supports:

  • Validating required connection parameters (host, port, database, username, password)

  • Optional SSL transport (JSON-RPC over SSL)

  • A context-managed client lifecycle via the base_external_system adapter contract (open client, perform calls, logout/cleanup)

Typical use cases include:

  • Reading data from a legacy Odoo (e.g. Odoo 8/9/10) into a newer Odoo (e.g. Odoo 16)

  • Synchronizations, migrations, or import tools that must query remote models (e.g. stock.production.lot, stock.move, res.partner) via RPC

Table of contents

Installation

This module requires the Python package odoorpc to be installed in the same environment as your Odoo server.

Install it with pip, for example:

pip install odoorpc

Then install the Odoo module in the Apps menu as usual.

If you run Odoo in Docker or another containerized setup, ensure the dependency is present in the image that runs the Odoo server.

Configuration

  1. Go to Settings → External Systems (menu provided by base_external_system).

  2. Create a new record.

  3. Set System Type to External System RPC (external.system.odoo).

  4. Fill in the connection parameters:

    • Host (e.g. odoo-test.odoo.org)

    • Port (e.g. 443 or 8069)

    • Database name

    • Username

    • Password

    • SSL toggle (if applicable)

  5. Save the record.

After saving, the adapter interface record is created automatically by base_external_system and is available via the interface field.

Usage

Test connection (UI)

Open an external system record configured with System Type External System RPC and click the Test Connection button.

If successful, the adapter will report success (using the success mechanism provided by base_external_system).

Using the client in code

Use the standard context manager from base_external_system:

system = self.env.ref("your_module.external_system_odoo_remote")
with system.client() as odoo:
    partner_model = odoo.env["res.partner"]
    ids = partner_model.search([("is_company", "=", True)], limit=10)
    data = partner_model.read(ids, ["name"])

The yielded object is an odoorpc.ODOO client instance, so any remote model can be accessed via odoo.env["model.name"].

Legacy helper (optional)

Some projects historically called a helper directly on the adapter record:

odoo = system.interface._connect()

If your adapter keeps that helper for backward compatibility, it returns the same client object as external_get_client().

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.

Credits

Authors

  • Therp BV

Contributors

Maintainers

This module is maintained by the OCA.

Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

This module is part of the OCA/server-backend project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

Metadata

Release files for odoo-addon-base-external-system-odoorpc 16.0.1.0.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for odoo-addon-base-external-system-odoorpc 16.0.1.0.0.5
File Interpreter ABI Platform
odoo_addon_base_external_system_odoorpc-16.0.1.0.0.5-py3-none-any.whl Python 3 none any Details

Release files / odoo_addon_base_external_system_odoorpc-16.0.1.0.0.5-py3-none-any.whl

Download URL odoo_addon_base_external_system_odoorpc-16.0.1.0.0.5-py3-none-any.whl
Size 35.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
98c7281232bbd42fa09c12c7ae2d5622c5a32a9126b3f1fa832202e9b9bf530f
BLAKE2b-256 checksum
How to use checksums
9c63ea19cc3bbb36d1d66500cc1d0b8c99835b86ff5ee5a102036c78502c08bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Security for odoo-addon-base-external-system-odoorpc 16.0.1.0.0.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page