Ошибка соединения между Odoo и PHP Drupal - PullRequest
0 голосов
/ 15 сентября 2018

Я пытаюсь получить данные из Odoo 10, используя ripcord. Вот мой код:

function test_connect(){

    require_once('ripcord/ripcord.php');

    // Login information
    $url = 'http://localhost:30080';
    $url_auth = $url . '/xmlrp/common';
    $url_exec = $url . '/xmlrpc/object';

    $db = 'xxxx';
    $username = 'xxxx@gmail.com';
    $password = 'xxxx';

    // Login
    $common = ripcord::client("$url/xmlrpc/common");

    //$common = ripcord::client($url_auth);
    $uid = $common->authenticate($db, $username, $password, array());


    $models = ripcord::client($url_exec);

    include "config.php";
    $sql = "SELECT so.id as id,
                   so.cust_id,
                   so.numb,
                   p.ktr,
                   p.store_id,
                   so.write_date,
                   p.store_name,
                   p.sales_id
            FROM sales_order so
            INNER JOIN store p on p.store_id = so.store_id
           ";

    $exec = pg_query($sql);

    while ($row = pg_fetch_array($exec)){

        $query = pg_query(
            "SELECT sod.product_id, sod.qty_sales, p.name
                           FROM sales_order_line sod
                           INNER JOIN product p on p.id = sod.product_id
                           WHERE sales_order_id = ".$row['id']
        );

        while ($data = pg_fetch_array($query)) {

            $id = $models->execute_kw($db, $uid, $password,
                'sale.order', 'create',
                array(array(
                    'partner_id' => $row['store_id'],
                    'sales_id' => $row['sales_id'],
                    'order_line' => [array(
                        0, false, array(
                            'product_id' => $data['product_id'],
                            'name' => $data['name'],
                            'qty' => $data['quantity'])
                    )]
                )));

            var_dump($id);

        }
    }
}

Вот мой код config.php:

$config = pg_connect("host= 'http://localhost:8010' port='5432' dbname= 'xxxxxx' user='xxxxxx@gmail.com' password='xxxxx' ") or die('Failed');

И я получаю такие ошибки:

Ошибка messageRipcord_ConfigurationException: библиотека PHP XMLRPC не установлена ​​в Ripcord_Client -> __ construct () (строка 132 из D: \ usbwebserverlayerfarm \ root \ sites \ all \ modules \ addon \ feed_sync \ ripcord \ ripcord_client.php). Сайт обнаружил непредвиденную ошибку. Пожалуйста, попробуйте позже.

Как я могу это исправить?

1 Ответ

0 голосов
/ 07 июня 2019

У меня была такая же проблема,

Вам необходимо установить библиотеку XMLRPC в debian linux

apt-get install php7.0-xmlrpc

Если вы используете общий сервер, возможно, вы не сможете его установить

Надеюсь, это поможет

...