2016-03-13 4 views
3

Я пытаюсь обновить некоторую информацию о моем продукте слияния с PHP и xmlrpc. Это мой код для обновления названия продукта.Обновление поля продукта «Количество на руке» с помощью 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 (то есть 9 стабильный) я даже не вижу поля qty_available в продукте model.product. Но я вижу это в 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])