jacobsteringa/odoo-client

Odoo 的 PHP 客户端

0.3.0 2016-05-15 14:52 UTC

This package is auto-updated.

Last update: 2024-09-18 16:10:11 UTC


README

OdooClient 是一个 Odoo 的 PHP 客户端。它受到 simbigo 的 OpenERP API 的启发,并使用了一个大致相似的 API。它不是使用自有的 XML-RPC 客户端,而是依赖于 ZF 的 XML-RPC 和 XML 库。

支持的版本

这个库应该与 Odoo 8 和 9 兼容。如果您发现任何不兼容性,请创建一个问题或提交一个 pull request。

已知问题

  • 在 v0.2.2 及以下版本中,Odoo::getReport() 方法与 Odoo 9 不兼容。

用法

实例化一个新的客户端。

use Jsg\Odoo\Odoo;

$url = 'example.odoo.com/xmlrpc/2';
$database = 'example-database';
$user = 'user@email.com';
$password = 'yourpassword';

$client = new Odoo($url, $database, $user, $password);

为了让客户端正常工作,您必须包含 URL 中的 /xmlrpc/2 部分。

当您需要调整 XML-RPC 客户端使用的 HTTP 客户端时,您可以通过构造函数或 Odoo::setHttpClient 方法注入自定义的 HTTP 客户端。

use Jsg\Odoo\Odoo;
use Zend\Http\Client as HttpClient;

$httpClient = new HttpClient(null, [
    'sslverifypeer' => false,
]);

// constructor argument
$client = new Odoo($url, $database, $user, $password, $httpClient);

// or setter
$client = new Odoo($url, $database, $user, $password);
$client->setHttpClient($httpClient);

xmlrpc/2/common 端点

获取版本信息。

$client->version();

获取时区信息。

$client->timezone();

没有登录/认证方法。客户端会为您进行认证,这就是为什么凭证作为构造函数参数传递。

xmlrpc/2/object 端点

搜索记录。

$criteria = [
  ['customer', '=', true],
];
$limit = 10;
$offset = 0;

$client->search('res.partner', $criteria, $offset, $limit);

读取记录。

$ids = $client->search('res.partner', [['customer', '=', true]], 0, 10);

$fields = ['name', 'email', 'customer'];

$customers = $client->read('res.partner', $ids, $fields);

创建记录。

$data = [
  'name' => 'John Doe',
  'email' => 'foo@bar.com',
];

$id = $client->create('res.partner', $data);

更新记录。

// change email address of user with current email address foo@bar.com
$ids = $client->search('res.partner', [['email', '=', 'foo@bar.com']], 0, 1);

$client->write('res.partner', $ids, ['email' => 'baz@quux.com']);

// 'uncustomer' the first 10 customers
$ids = $client->search('res.partner', [['customer', '=', true]], 0, 10);

$client->write('res.partner', $ids, ['customer' => false]);

删除记录。

$ids = $client->search('res.partner', [['email', '=', 'baz@quuz.com']], 0, 1);

$client->unlink('res.partner', $ids);

以 base64 格式获取报告。

$ids = $client->search('res.partner', [['customer', '=', true]], 0, 10);

$report = $client->getReport('res.partner', $ids);

许可证

MIT 许可证。版权所有 © 2014 Jacob Steringa。