Skip to main content

One post tagged with "Odoo"

View All Tags

Xây dựng Middleware cho Odoo ERP

· 2 min read

Giới thiệu

Odoo ERP là một nền tảng mạnh mẽ nhưng để mở rộng và tích hợp với các hệ thống khác, việc xây dựng một Middleware là cần thiết. Middleware giúp kết nối Odoo với các ứng dụng bên ngoài như CRM, Zalo, hoặc các hệ thống quản lý khác.

Tại sao cần Middleware?

  • Tích hợp dễ dàng với các hệ thống bên thứ ba.
  • Bảo mật: Middleware có thể kiểm soát quyền truy cập API.
  • Tăng hiệu suất: Giảm tải cho Odoo bằng cách xử lý dữ liệu trung gian.
  • Quản lý dữ liệu tập trung: Dữ liệu có thể được đồng bộ giữa nhiều hệ thống.

Các bước xây dựng Middleware cho Odoo

1. Thiết lập môi trường

Bạn cần chuẩn bị môi trường lập trình Python và sử dụng PostgreSQL (cơ sở dữ liệu của Odoo).

pip install psycopg2 requests flask

2. Kết nối với Odoo qua XML-RPC

Odoo cung cấp API XML-RPC để thao tác với dữ liệu. Dưới đây là cách lấy dữ liệu từ Odoo:

import xmlrpc.client

url = "http://localhost:8069"
db = "odoo_db"
username = "admin"
password = "admin"

common = xmlrpc.client.ServerProxy(f'{url}/xmlrpc/2/common')
uid = common.authenticate(db, username, password, {})
models = xmlrpc.client.ServerProxy(f'{url}/xmlrpc/2/object')

leads = models.execute_kw(db, uid, password, 'crm.lead', 'search_read', [[]], {'fields': ['name', 'email_from']})
print(leads)

3. Xây dựng API Middleware bằng Flask

Dưới đây là một API đơn giản để lấy danh sách khách hàng tiềm năng từ Odoo:

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/get_leads', methods=['GET'])
def get_leads():
leads = models.execute_kw(db, uid, password, 'crm.lead', 'search_read', [[]], {'fields': ['name', 'email_from']})
return jsonify(leads)

if __name__ == '__main__':
app.run(debug=True)

4. Đồng bộ dữ liệu với hệ thống khác

Giả sử bạn muốn gửi dữ liệu từ Odoo đến Zalo hoặc một hệ thống CRM khác, bạn có thể dùng requests để gọi API.

import requests

def sync_to_crm(lead):
response = requests.post("https://crm.example.com/api/leads", json=lead)
return response.status_code

for lead in leads:
sync_to_crm(lead)

Kết luận

Middleware giúp mở rộng khả năng của Odoo bằng cách kết nối nó với nhiều hệ thống khác. Với Python, Flask và PostgreSQL, bạn có thể dễ dàng xây dựng Middleware tùy chỉnh cho doanh nghiệp của mình.