2016-03-13 41 views
3

我正在嘗試使用PHP和xmlrpc更新odoo產品的某些信息。 這是我更新產品名稱的代碼。使用xmlrpc更新產品字段「現有數量」

$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

首先確保字段qty_available確實存在於模型中。您可以在模型中從(通過瀏覽器)

settings --> database structure --> models 

檢查領域如果沒有確保銷售,庫存,產品模塊都安裝正確。順便說一句,在我的odoo存儲庫(即odoo 9 stable)中,我甚至無法在模型product.product中看到qty_available字段。但我可以在openerp v7中看到它。可能這個領域是被刪除或該領域是繼承一些其他模塊,如sale_stock等

希望這會解決你的問題。

1

由於字段qty_available是隻讀的,因此無法更新它。 要更新它,您需要創建庫存移動

3

字段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])