Acceso a traves de la API de Odoo

a) Documentación de API de odoo https://www.odoo.com/documentation/11.0/webservices/odoo.html
   Dentro del link de la documentación oficial va a encontrar casos de ejemplo para varios lenguajes de programación incluyendo: Python, Ruby, PHP y Java.
b) Documentación de librería que la implementa y facilita su uso en python https://erppeek.readthedocs.io/en/latest/
    Si se va a implementar usando python recomendamos usar la librearía erppeek que facilita mucho la conexión a la base de datos y la llamada de los métodos.
c) Para probar conectarte se debe usar cualquier base de entrenamiento. Debería solicitar una base, usuario y contraseña al lider de proyecto

Ejemplos Básicos (Python)

Conectarse a la base de datos, diferencia entre  python xmlrpclib vs erppeelk.

import xmlrpclib

url = "https://train-....nubeadhoc.com" db = "train-..." username = "email@example.com" password = "password" common = xmlrpclib.ServerProxy('{}/xmlrpc/2/common'.format(url)) uid = common.authenticate(db, username, password, {})
common.execute_kw(db, uid, password, 'res.partner', 'search', [[['is_company', '=', True], ['customer', '=', True]]])
from erppeek import Client

url = "https://train-....nubeadhoc.com" db = "train-..." username = "email@example.com" password = "password"
client = Client(url, db, username, password)
print(client.common.version())

client.model('res.partner').search([['is_company', '=', True], ['customer', '=', True]])
Como se puede ver con python erppeek es mas claro ya que cuando se tiene la conexión activa (client) no es necesario manejar los otros datos de id de usuario, base de datos, contraseña, etc. A demás la llamada al ORM de Odoo es mas parecido a como funciona Odoo en realidad.

Ejemplos para consultar datos en la base de datos

# Consultar precio de los productos
product_data = client.model('product.product').search_read([['active', '=', True]], 'website_price')

# Crear contacto
partner = client.model('res.partner').create({'name': 'John Doe', ...})

# Crear orden de venta
product_data = client.model('sale.order').create({'partner_id': partner, 'order_line': ....})

  • Acceso a traves de la API de Odoo