Access Odoo Data in PHP through Connect Server



Connect to Odoo through the standard SQL Server libraries in PHP.

You can use CData Connect Server to access Odoo data from SQL Server clients, without needing to perform an ETL or cache data. Follow the steps below to create a virtual SQL Server database for Odoo and connect to Odoo data in real time through PHP's standard SQL Server interface, i.e. sqlsrv_connect.

CData Connect Server provides a pure SQL Server interface for Odoo, allowing you to easily build reports from live Odoo data in PHP — without replicating the data to a natively supported database. As you build visualizations, PHP generates SQL queries to gather data. Using optimized data processing out of the box, CData Connect Server pushes all supported SQL operations (filters, JOINs, etc) directly to Odoo, leveraging server-side processing to quickly return the requested Odoo data.

About Odoo Data Integration

Accessing and integrating live data from Odoo has never been easier with CData. Customers rely on CData connectivity to:

  • Access live data from both Odoo API 8.0+ and Odoo.sh Cloud ERP.
  • Extend the native Odoo features with intelligent handling of many-to-one, one-to-many, and many-to-many data properties. CData's connectivity solutions also intelligently handle complex data properties within Odoo. In addition to columns with simple values like text and dates, there are also columns that contain multiple values on each row. The driver decodes these kinds of values differently, depending upon the type of column the value comes from:
    • Many-to-one columns are references to a single row within another model. Within CData solutions, many-to-one columns are represented as integers, whose value is the ID to which they refer in the other model.
    • Many-to-many columns are references to many rows within another model. Within CData solutions, many-to-many columns are represented as text containing a comma-separated list of integers. Each value in that list is the ID of a row that is being referenced.
    • One-to-many columns are references to many rows within another model - they are similar to many-to-many columns (comma-separated lists of integers), except that each row in the referenced model must belong to only one in the main model.
  • Use SQL stored procedures to call server-side RFCs within Odoo.

Users frequently integrate Odoo with analytics tools such as Power BI and Qlik Sense, and leverage our tools to replicate Odoo data to databases or data warehouses.


Getting Started


Create a Virtual SQL Server Database for Odoo Data

CData Connect Server uses a straightforward, point-and-click interface to connect to data sources and generate APIs.

  1. Login to Connect Server and click Connections.
  2. Select "Odoo" from Available Data Sources.
  3. Enter the necessary authentication properties to connect to Odoo.

    To connect, set the Url to a valid Odoo site, User and Password to the connection details of the user you are connecting with, and Database to the Odoo database.

  4. Click Save Changes
  5. Click Privileges -> Add and add the new user (or an existing user) with the appropriate permissions.

With the virtual database created, you are ready to connect to Odoo data from PHP.

Connect in PHP

The following examples show how to use object-oriented interfaces to connect and execute queries. Initialize the connection object with the following parameters to connect to the virtual SQL Server database:

  • Server name/Host: Specify the remote host location where the service is running.
  • Username: Specify the username for a user you authorized in Connect Server.
  • Password: Specify the password for the authorized user account.
  • Database Name: Specify the name of the virtual database you created for Odoo.
  • Port: Specify the port the service is running on, port 1433 in this example.

sqlsrv_connect

<?php
$serverName = "connect_server_url, 1433"; //Connect Server Address, portNumber (default is 1433)
$connectionInfo = array( "Database"=>"Odoo1", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Connection established.<br>";
}else{
     echo "Connection could not be established.<br>";
     die( print_r( sqlsrv_errors(), true));
}
?>

PDO

<?php
<?php
$user = my_connect_user
$pass = my_connect_pass

$pdo = new PDO("sqlsrv:Server=connect_server_url,1433;Database=Odoo1", $user , $pass);

?>

Query in PHP

With the connection established, you can then access tables. The following steps walk through the example:

  1. Query the table; for example, res_users. The results will be stored as an associative array in the $result object.
  2. Iterate over each row and column, printing the values to display in the PHP page.
  3. Close the connection.

sqlsrv_connect

$result = $sqlsrv_connect->query("SELECT name, email FROM res_users");
while($row = $result->fetch_assoc()) {
  foreach ($row as $k=>$v) {
    echo "$k : $v";
    echo "<br>"; 
  }
}
$sqlsrv_connect->close();

PDO

$result = $pdo->query("SELECT name, email FROM res_users");
while($row = $result->fetch(PDO::FETCH_ASSOC)) {
  foreach ($row as $k=>$v) {
    echo "$k : $v";
    echo "<br>"; 
  }
}
$result = null;
$pdo = null;

SQL Server Access to Odoo Data using PHP

You have retrieved live Odoo Data using PHP. Now, you can easily access data sources and more — all without replicating Odoo data.

To get SQL data access to 200+ SaaS, Big Data, and NoSQL sources directly from your applications, try CData Connect Server.

Ready to get started?

Learn more or sign up for a free trial:

CData Connect Server