Odoo / OpenERP Добавить строку заказа на продажу Product_ID через переполнение стека XML-RPC

Итак, я пытаюсь передать заказ на продажу Odoo со строками заказа на продажу, используя XML-RPC и PHP.
Это работает отлично … Кроме того, я не могу передать product_id

так что это работает …

      $lines[] = new xmlrpcval(
array(
new xmlrpcval(0, 'int'),
new xmlrpcval(0, 'int'),
new xmlrpcval(
array(
'name'            => new xmlrpcval('Product Name', 'string'),
'product_uom_qty' => new xmlrpcval(5, 'int'),
'price_unit'      => new xmlrpcval(10.00, 'double'),
'sub_total'       => new xmlrpcval(50.00, 'double'),
),
"struct")
),
"array");
$arr = array(
'partner_id'          => new xmlrpcval(236,"int"),
'partner_invoice_id'  => new xmlrpcval(236,"int"),
'partner_shipping_id' => new xmlrpcval(236,"int"),
'client_order_ref'    => new xmlrpcval($this->id,"int"),
'order_line'          => new xmlrpcval($lines, "array"),
);
var_dump($arr);
$client = new xmlrpc_client($this->server."object");
$client->return_type = 'phpvals';
//   ['execute','userid','password','module.name',{values....}]
$msg = new xmlrpcmsg('execute');
$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("sale.order", "string"));/** model name where operation will held * */
$msg->addParam(new xmlrpcval("create", "string"));/** method which u like to execute */
$msg->addParam(new xmlrpcval($arr, "struct"));/** parameters of the methods with values....  */
$resp = $client->send($msg);
if ($resp->faultCode()){
echo 'failed';
var_dump($resp);
return -1; /* if the record is not created  */
}else{
echo 'success';
var_dump($resp);
return $resp->value();  /* return new generated id of record */
}

Поэтому, чтобы правильно прикрепить продукты (сопоставьте продукты в базе данных openerp / odoo), мне нужно передать идентификатор продукта …

Так что, если я добавлю в массив следующую строку …

'product_id' => new xmlrpcval(38, 'int'),

Затем я получаю сообщение об ошибке, как следующее …

warning -- MissingError

One of the documents you are trying to access has been deleted, please try again after refreshing.

Не уверен, что я делаю не так, но это сводит меня с ума!
И я проверил, что идентификатор продукта 38 существует!

Много, много, ОГРОМНОЕ спасибо заранее !!

2

Решение

Ваш product_id неверен. Чтобы убедиться, экспортируйте ваш продукт в CSV, а затем проверьте его в настройках -> внешний идентификатор & последовательности. Посмотрите, каков ваш идентификатор записи продукта.

1

Другие решения

Оберните product_id в intval

0

По вопросам рекламы [email protected]