我有一个电子商务网站(PHP)。我想在我的电子商务网站订购时将订单插入OpenERP。我发现openerp支持XML-RPC(https://doc.openerp.com/6.0/developer/6_22_XML-RPC_web_services/#php-example)。但我想知道如何做到这一点,因为在文档中我找不到功能。我必须直接插入openerp的数据库或openerp已经有功能吗?
答案 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' );
但我在按此顺序添加产品时遇到问题,但是一旦我完成该部分,我就会编辑我的帖子。