PHPackages                             codemusk/odoo-api - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. codemusk/odoo-api

ActiveLibrary

codemusk/odoo-api
=================

Laravel package for interacting with Odoo API using Ripcord

1.0(1y ago)011MITPHP

Since Jul 14Pushed 1y ago1 watchersCompare

[ Source](https://github.com/abhisingh159/odoo-api)[ Packagist](https://packagist.org/packages/codemusk/odoo-api)[ RSS](/packages/codemusk-odoo-api/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

OdooApi
=======

[](#odooapi)

Introduction
------------

[](#introduction)

OdooApi is a Laravel package for interacting with the Odoo API using Ripcord. This package provides a simple and clean way to integrate Odoo's functionalities into your Laravel application.

Installation
------------

[](#installation)

1. **Install the package via composer:**

    ```
    composer require codemusk/odoo-api
    ```
2. **Add the service provider and alias to your `config/app.php` file (for Laravel versions below 11):**

    ```
    'providers' => [
        // Other Service Providers
        Codemusk\OdooApi\OdooApiServiceProvider::class,
    ],

    'aliases' => [
        // Other Facades
        'OdooApi' => Codemusk\OdooApi\Facades\OdooApi::class,
    ],
    ```
3. **For Laravel 11 and above, add the service provider and alias to the `extra` section of your package's `composer.json`:**

    ```
    "extra": {
        "laravel": {
            "providers": [
                "Codemusk\\OdooApi\\OdooApiServiceProvider"
            ],
            "aliases": {
                "OdooApi": "Codemusk\\OdooApi\\Facades\\OdooApi"
            }
        }
    }
    ```
4. **Publish the configuration file:**

    ```
    php artisan vendor:publish --provider="Codemusk\OdooApi\OdooApiServiceProvider"
    ```
5. **Configure the package by editing the `config/odooapi.php` file with your Odoo connection details:**

    ```
    return [
        'url' => env('ODOO_URL', 'http://your-odoo-instance.com'),
        'db' => env('ODOO_DB', 'your-database-name'),
        'username' => env('ODOO_USERNAME', 'your-username'),
        'password' => env('ODOO_PASSWORD', 'your-password'),
    ];
    ```

Usage
-----

[](#usage)

Here is an example of how to use the OdooApi package in a Laravel controller:

```
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Codemusk\OdooApi\Facades\OdooApi;

class TestController extends Controller
{
    public function test()
    {
        try {
            // List records
            $partners = OdooApi::listRecords('res.partner', 0, 10, ['name', 'email']);

            // Create a record
            $newPartner = OdooApi::createRecord('res.partner', [
                'name' => 'New Partner',
                'email' => 'newpartner@example.com',
            ]);

            // Update a record
            $updateResult = OdooApi::updateRecord('res.partner', $newPartner, [
                'name' => 'Updated Partner Name',
            ]);

            // Delete a record
            $deleteResult = OdooApi::deleteRecord('res.partner', $newPartner);

            // Read a specific record
            $record = OdooApi::readRecord('res.partner', 8);

            // Search and read records
            $filteredRecords = OdooApi::searchAndRead('res.partner', [['name', 'ilike', 'John']], ['name', 'email'], 0, 10);

            // List record fields
            $fields = OdooApi::listRecordFields('res.partner');

            // Output results (example)
            dd($partners, $newPartner, $updateResult, $deleteResult, $record, $filteredRecords, $fields);
        } catch (\Exception $e) {
            echo "Error: " . $e->getMessage();
        }
    }
}
```

Methods The following methods are available to interact with the Odoo API:

listRecords($model, $offset = 0, $limit = 10, $fields = \[\]) Fetches a list of records from a specified model.

$model: The name of the Odoo model (e.g., 'res.partner'). $offset: The offset for pagination (default is 0). $limit: The maximum number of records to retrieve (default is 10). $fields: An array of fields to retrieve (default is an empty array). createRecord($model, $data) Creates a new record in a specified model.

$model: The name of the Odoo model (e.g., 'res.partner'). $data: An associative array of the data to be inserted. updateRecord($model, $id, $data) Updates an existing record in a specified model.

$model: The name of the Odoo model (e.g., 'res.partner'). $id: The ID of the record to be updated. $data: An associative array of the data to be updated. deleteRecord($model, $id) Deletes a record from a specified model.

$model: The name of the Odoo model (e.g., 'res.partner'). $id: The ID of the record to be deleted. readRecord($model, $id) Reads a specific record from a specified model.

$model: The name of the Odoo model (e.g., 'res.partner'). $id: The ID of the record to be read. searchAndRead($model, $domain, $fields, $offset = 0, $limit = 10) Searches for records based on a domain and then reads them.

$model: The name of the Odoo model (e.g., 'res.partner'). $domain: An array specifying the search domain. $fields: An array of fields to retrieve. $offset: The offset for pagination (default is 0). $limit: The maximum number of records to retrieve (default is 10). listRecordFields($model) Lists the fields of a specified model.

$model: The name of the Odoo model (e.g., 'res.partner').

Troubleshooting Ensure you have the PHP XML-RPC library installed. For PHP 8, you can use:

```
sudo apt-get install php-xmlrpc
```

or

```
brew install php@8.3
```

If you encounter issues with authentication, check your Odoo connection details in the config/odooapi.php file.

Contributing Feel free to submit issues or pull requests.

License This package is open-sourced software licensed under the MIT license.

```
This `README.md` provides a comprehensive overview of the package, installation instructions, usage examples, and detailed descriptions of each method available for interacting with the Odoo API.
```

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance33

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

673d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/f384fb5f8b33f0fed2b26697cde273f91539e772b4df3fcd8a08dfb4f3f835c4?d=identicon)[abhisingh159](/maintainers/abhisingh159)

---

Top Contributors

[![abhisingh159](https://avatars.githubusercontent.com/u/16042419?v=4)](https://github.com/abhisingh159 "abhisingh159 (3 commits)")

### Embed Badge

![Health badge](/badges/codemusk-odoo-api/health.svg)

```
[![Health](https://phpackages.com/badges/codemusk-odoo-api/health.svg)](https://phpackages.com/packages/codemusk-odoo-api)
```

###  Alternatives

[tbondois/odoo-ripcord

Ripoo : a PHP8 XML-RPC client handler for Odoo External API

16124.3k1](/packages/tbondois-odoo-ripcord)[robroypt/odoo-client

A PHP Client for Odoo using Ripcord RPC library (as used in Odoo Web API docs)

2149.4k](/packages/robroypt-odoo-client)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
