rbonnal-beclood/odoo-client

Odoo的PHP客户端,由jacobsteringa/odoo-client分支而来

0.3.3 2018-01-25 16:25 UTC

This package is not auto-updated.

Last update: 2024-09-20 03:04:25 UTC


README

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

支持的版本

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

已知问题

  • 在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许可。版权所有(c) 2014 Jacob Steringa。