Contents

Synchronize Database Odoo Dengan OdooRPC

OdooRPC merupakan package Python yang dapat memudahkan developer untuk menguji coba server Odoo melalui RPC atau Remote Procedure Call.

1 Requirements

OdooRPC support dari Odoo versi 0.8 ke atas. Sedangkan untuk Python support dari versi 2.7, 3.6, 3.7 dan 3.8.

2 Installation

Kamu bisa menginstall OdooRPC dengan cara copy command di bawah dan pastekan ke terminal:

1
pip install odoorpc

3 Tutorials

Note
Untuk keperluan tutorial kali ini saya menggunakan OdooRPC versi 0.8.0, akan diuji coba di Odoo versi 12.0, dengan Python versi 3.8.2 dan menggunakan sistem operasi MacOS.

Create Database

Untuk berkomunikasi dengan Odoo server, kamu bisa menggunakan instance class odoorpc.ODOO seperti berikut ini:

1
2
import odoorpc
odoo = odoorpc.ODOO('localhost', 'jsonrpc', 8069)

Penjelasan:

  • localhost: host Odoo server.
  • jsonrpc: protocol tersedia jsonrpc (default) dan jsonrpc+ssl.
  • 8069: port Odoo server.
1
odoo.db.create('super_admin_passwd', 'apps', True, 'en_US', 'my_admin_passwd')

Penjelasan:

  • super_admin_passwd: super admin password Odoo server.
  • apps: nama database.
  • True: demo data True atau False.
  • en_US: bahasa yang ingin digunakan.
  • my_admin_passwd: password database.

Untuk memeriksa database apa saja yang tersedia, bisa menggunakan property odoo.db dengan method list():

1
2
odoo.db.list()
# ['apps']
Note
Untuk melakukan ini sebelumnya kamu perlu mengetahui super admin password Odoo server. Dan username default database yang sudah berhasil di buat adalah admin.

Login Database

Sekarang saya akan mencoba login ke Odoo dan menampilkan beberapa informasi, seperti nama user yang sedang login beserta nama perusahaannya.

Gunakan method login pilih database dan akun Odooo yang sebelumnya berhasil kita buat.

1
odoo.login('apps', 'admin', 'password')

Penjelasan:

  • apps: nama database.
  • admin: username Odoo.
  • password: password Odoo.

Untuk menampilkan nama user dan nama perusahaannya bisa dengan cara berikut:

1
2
3
user = odoo.env.user
print(user.name) # nama user yang terhubung
print(user.company_id.name) # nama perusahaannya

CRUD

Selain melakukan beberapa hal di atas, dengan OdooRPC ini kita juga bisa melakukan CRUD atau Create, Read, Update, dan Delete. Saya akan mencontohkan penggunaan method CRUD pada object product.product, dan pastikan module Inventory sudah terinstall di Odoo kamu.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
product = odoo.env['product.product']

# Create product
product.create({
  'name': 'Victoria Arduino Eagle One T3 3 Group',
  'list_price': 200000000,
  'type': 'product',
  'description': 'Victoria Arduino Machine',
})

# Read product
product.search([])

# Update product
product.write([1], {
  'list_price': 2130000000,
})

# Delete product
product.unlink([1])

Untuk referensi dan mengetahui support fitur apa saja pada OdooRPC, bisa kunjungi website dokumentesinya di https://pythonhosted.org/OdooRPC.