1. Go to this page and download the library: Download flux-se/odoo-api-client library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
flux-se / odoo-api-client example snippets
$loader = SE\OdooApiClient\Builder\OdooApiClientBuilder;
use FluxSE\OdooApiClient\Operations\Object\ExecuteKw\Options\SearchReadOptions;
use FluxSE\OdooApiClient\Operations\Object\ExecuteKw\RecordListOperations;
use FluxSE\OdooApiClient\Operations\Object\ExecuteKw\Arguments\Criterion;
use FluxSE\OdooApiClient\Operations\Object\ExecuteKw\Arguments\SearchDomains;
$host = 'https://myapp.odoo.com';
$database = 'myapp';
$username = '[email protected]';
$password = 'myOdooUserApiKey';
// 1 - instantiate the Odoo API client builder
$odooApiClientBuilder = new OdooApiClientBuilder($host);
// 2 - service allowing to query Odoo API using `execute_kw` method
$recordListOperations = $odooApiClientBuilder->buildExecuteKwOperations(
RecordListOperations::class,
$database,
$username,
$password
);
// 3.1 - Helper class to set parameters to your request
$searchDomains = new SearchDomains();
$searchDomains->addCriterion(Criterion::equal('is_company', true));
// will be translated to : [['is_company', '=', true]]
// 3.2 - Helper class to set options to your request
$searchReadOptions = new SearchReadOptions();
$searchReadOptions->setLimit(1);
$searchReadOptions->addField('name');
// 3.3 - Search for the first Partner being a company and only return its name
$partners = $recordListOperations->search_read('res.partner', $searchDomains, $searchReadOptions);
dump($partners);
/**
array:1 [
0 => array:2 [
"id" => 1
"name" => "My Partner"
]
]
**/
> use FluxSE\OdooApiClient\Api\OdooApiRequestMakerInterface;
> use FluxSE\OdooApiClient\Builder\OdooApiClientBuilder;
>
> $odooApiClientBuilder = new OdooApiClientBuilder(
> $host,
> OdooApiRequestMakerInterface::BASE_XMLRPC_PATH
> );
>
$loader = Odoo\Model\Object\Res\Partner;
use FluxSE\OdooApiClient\Builder\OdooApiClientBuilder;
use FluxSE\OdooApiClient\Manager\ModelListManager;
use FluxSE\OdooApiClient\Operations\Object\ExecuteKw\RecordListOperations;
use FluxSE\OdooApiClient\Operations\Object\ExecuteKw\Arguments\Criterion;
use FluxSE\OdooApiClient\Operations\Object\ExecuteKw\Arguments\SearchDomains;
$host = 'https://myapp.odoo.com';
$database = 'myapp';
$username = '[email protected]';
$password = 'myOdooUserApiKey';
// 1 - Instantiate the Odoo API client builder
$odooApiClientBuilder = new OdooApiClientBuilder($host);
// 2 - Service allowing to query Odoo API using `execute_kw` method
$recordListOperations = $odooApiClientBuilder->buildExecuteKwOperations(
RecordListOperations::class,
$database,
$username,
$password
);
// 3 - Service allowing to return object instead of raw array data
$modelListManager = new ModelListManager(
$odooApiClientBuilder->buildSerializer(),
$recordListOperations
);
// 4.1- Helper class to set parameters to your request
$searchDomains = new SearchDomains();
$searchDomains->addCriterion(Criterion::equal('is_company', true));
// will be translated to : [['is_company', '=', true]]
// 4.2 - Search for the first Partner being a company
$partner = $modelListManager->findOneBy(Partner::class, $searchDomains);
dump($partner);
/**
App\Odoo\Model\Object\Res\Partner
{#1234
#name: "My test company"
#date: DateTimeImmutable @1577880060 {#1234
date: 2020-01-01 12:01:00.123456 UTC (+00:00)
}
#is_company: true
...
#id: 1
#display_name: "My test company"
#__last_update: DateTimeImmutable @1577923260 {#5678
date: 2020-01-02 00:01:00.123456 UTC (+00:00)
}
}
**/
log
2030-01-01 00:00:00,000 1 INFO odoo-master odoo.modules.loading: Modules loaded.
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.