使用带有OpenERP的webservice插入订单

时间:2013-07-17 02:48:55

标签: php xml-rpc openerp

我有一个电子商务网站(PHP)。我想在我的电子商务网站订购时将订单插入OpenERP。我发现openerp支持XML-RPC(https://doc.openerp.com/6.0/developer/6_22_XML-RPC_web_services/#php-example)。但我想知道如何做到这一点,因为在文档中我找不到功能。我必须直接插入openerp的数据库或openerp已经有功能吗?

3 个答案:

答案 0 :(得分:0)

通过XML-RPC没有直接的功能。您必须与对象(也称为sales.order等表格)进行对话,以便检索现有订单或添加新订单。

答案 1 :(得分:0)

ERPpeek是一个很好的工具,可以更好地掌握Odoo的XML-RPC接口。您可以以交互方式(Python)尝试插入订单,如果出现问题,它会报告问题。

答案 2 :(得分:0)

这是我到目前为止创建的方法,用于使用xmlrpc向某个客户插入新订单。如果现在有任何帮助,那么代码就是代码。

function createNewOrder($params,$model_name)
{
    $client = new xmlrpc_client($this->server . "object");
    $client->return_type = 'phpvals';

    $msg = new xmlrpcmsg('execute');

    $nval = array();
    foreach($params as $k=>$v){
        $nval[$k] = new xmlrpcval( $v, xmlrpc_get_type($v) );
    }

    $msg->addParam(new xmlrpcval($this->database, "string"));  //* database name */
    $msg->addParam(new xmlrpcval($this->uid, "int")); /* useid */
    $msg->addParam(new xmlrpcval($this->password, "string"));
    /** password */
    $msg->addParam(new xmlrpcval($model_name, "string"));
    /** model name where operation will held * */
    $msg->addParam(new xmlrpcval("create", "string"));
    /** method which u like to execute */
   // $msg->addParam(xmlrpc_encode($params));
    $msg->addParam(new xmlrpcval($nval, "struct"));/** parameters of the methods with values....  */

    // $msg->addParam(new xmlrpcval($nval, "struct"));

    /** parameters of the methods with values....  */

    $resp = $client->send($msg);

    if ($resp->errno != 0)
        trigger_error("sock_execute error " . $resp->errstr);

    return xmlrpc_decode($resp->value());
}

如何使用它:

  $order = array(     
    'partner_id'=> 9
);

$objekti = new OpenERP();
$OERPUserID = $objekti->login($_SESSION['OERP-username'], $_SESSION['OERP-password']);
$order_id =$objekti->createNewOrder($order, 'sale.order' );

但我在按此顺序添加产品时遇到问题,但是一旦我完成该部分,我就会编辑我的帖子。