我正在尝试使用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')));
但它不起作用,任何人有任何想法如何解决它? 谢谢。
答案 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等。
希望这能解决你的问题。