使用xmlrpc更新产品字段“Quantity On Hand”

时间:2016-03-13 09:33:59

标签: openerp xml-rpc odoo-8

我正在尝试使用PHP和xmlrpc更新我的odoo产品的一些信息。 这是我的更新产品名称代码。

$models->execute_kw($db, $uid, $password, 'product.product', 'write',
    array(array(5), array('name'=>"Newer product 3",'type'=>"consu")));

现在我想更改“手头数量”字段,以便我尝试使用此代码:

$models->execute_kw($db, $uid, $password, 'product.product', 'write',
    array(array(5), array('name'=>"Newer product 3",'type'=>"consu",'qty_available'=>'7')));

但它不起作用,任何人有任何想法如何解决它? 谢谢。

3 个答案:

答案 0 :(得分:5)

字段qty_available是只读的。 在odoo10上,您可以使用以下操作:python:

product = models.execute_kw(db, uid, password, 'product.product', 'search', [[('default_code', '=', sku)]])
change_id = models.execute_kw(db, uid, password, 'stock.change.product.qty', 'create', [{
                'product_id': product[0],
                'location_id': 15,
                'new_quantity': 20,
                }])

models.execute_kw(db, uid, password, 'stock.change.product.qty', 'change_product_qty', [change_id])

答案 1 :(得分:1)

由于字段qty_available是只读的,因此无法更新它。 要更新它,您需要创建库存移动

答案 2 :(得分:0)

首先确保模型中的字段qty_available确实存在。您可以从(通过浏览器)

检查模型中的字段
settings --> database structure --> models

如果不确保正确安装销售,库存,产品模块。顺便说一句,在我的odoo存储库(即odoo 9 stable)中,我甚至无法在模型product.product中看到qty_available字段。但我可以在openerp v7中看到它。可能这个字段被移除或者字段继承了其他一些模块,例如sale_stock等。

希望这能解决你的问题。