Cách tự động hóa Import sản phẩm vào Odoo 18 từ Database ngoài bằng Python & Pyodbc

Hướng dẫn Odoo 18 Python API – Cách tự động hóa Import sản phẩm vào Odoo 18 từ Database ngoài bằng Python & Pyodbc

Bạn đang tìm các hướng dẫncách đổ dữ liệu từ SQL Server vào Odoo 18 mà không muốn nhập tay thủ công? Bài viết này sẽ hướng dẫn chi tiết từ cách kích hoạt Developer Mode, quản lý Database Odoo đến việc viết script Python sử dụng thư viện Pyodbc và XML-RPC để import hàng loạt sản phẩm một cách tự động. Quy trình thực tế, có hình ảnh minh họa từng bước giúp bạn làm chủ Odoo API chỉ trong vài phút.

Hướng dẫn Quản lý Database và Kích hoạt Chế độ Phát triển trên Odoo 18

Nếu bạn mới bắt đầu làm quen với Odoo 18, việc nắm vững cách quản trị hệ thống và bật các công cụ hỗ trợ là bước đầu tiên cực kỳ quan trọng. Bài viết này sẽ hướng dẫn bạn từ A-Z cách quản lý dữ liệu và kích hoạt Developer Mode.

1. Cách kích hoạt Chế độ nhà phát triển (Developer Mode)

Để can thiệp sâu hơn vào hệ thống (sửa view, xem ID bản ghi…), bạn cần bật Developer Mode.

  • Bước 1: Truy cập vào menu Settings (Thiết lập).
  • Bước 2: Cuộn xuống dưới cùng tìm mục Developer Tools.
  • Bước 3: Nhấn vào dòng Activate the developer mode.
  • Dấu hiệu nhận biết: Sau khi kích hoạt thành công, bạn sẽ thấy biểu tượng “Con bọ” xuất hiện ở thanh menu trên cùng và tên Database hiện bên cạnh tên người dùng (như hình minh họa).

2. Truy cập trình quản lý Database (Database Manager)

Để tạo mới hoặc sao lưu dữ liệu, bạn cần thoát ra màn hình quản lý tổng:

  • Bước 1: Nhấn vào tên người dùng ở góc phải trên cùng và chọn Log out.
  • Bước 2: Tại màn hình đăng nhập, hãy chú ý dòng chữ nhỏ phía dưới nút Login: Manage Databases. Nhấn vào đó.

3. Tạo mới hoặc Nhân bản (Duplicate) Database

Trong môi trường thử nghiệm, bạn thường xuyên cần tạo thêm Database mới hoặc copy từ một cái có sẵn.

A. Tạo Database mới hoàn toàn

  1. Tại màn hình quản lý, chọn Create Database.
  2. Điền các thông tin:
    • Master Password: Đây là mật khẩu tối cao của hệ thống (phải lưu lại kỹ).
    • Database Name: Ví dụ Weblog5me.
    • Email/Password: Dùng để đăng nhập tài khoản Admin sau này.
  3. Nhấn Continue để hệ thống khởi tạo.

B. Nhân bản (Duplicate) Database hiện có

Nếu bạn muốn copy Database Vohauipr sang tên mới để test tính năng:

  1. Nhấn nút Duplicate bên cạnh tên Database cũ.
  2. Nhập Master Password.
  3. Nhập tên mới (New Name) và nhấn Continue.

⚠️ Lưu ý quan trọng về Master Password: Như bạn thấy ở hình ảnh cuối, Master Password (ví dụ: jmv9-ut6z-sw49) là “chìa khóa vạn năng”. Bạn bắt buộc phải lưu trữ mật khẩu này ngay khi cài đặt Odoo. Nếu mất Master Password, bạn sẽ không thể tạo, xóa hay sao lưu bất kỳ Database nào trên server đó.

Đồng bộ dữ liệu Sản phẩm từ SQL Server sang Odoo 18 bằng Python

Sau khi đã làm chủ việc quản lý Database trên Odoo, bước tiếp theo đầy thú vị là tự động hóa việc nhập liệu. Thay vì nhập tay hàng trăm sản phẩm, chúng ta sẽ sử dụng Python để kết nối SQL Server (Northwind DB) và đẩy dữ liệu trực tiếp vào Odoo 18 thông qua API.

1. Chuẩn bị môi trường lập trình

Để Python có thể giao tiếp với SQL Server, chúng ta cần thư viện pyodbc.

  • Mở Terminal với quyền Admin: Tìm Command Prompt, chuột phải chọn Run as administrator.
  • Cài đặt thư viện: Chạy lệnh sau để cài đặt: pip install pyodbc
  • Kiểm tra: Bạn có thể kiểm tra nhanh bằng lệnh: python -c "import pyodbc; print('Cài đặt thành công')"

2. Thiết lập dự án trên Visual Studio Code (VSC)

Để đảm bảo quyền ghi file và thực thi, bạn nên khởi động VSC bằng quyền Administrator.

  1. Mở VSC, vào menu File > New Text File.
  2. Dán đoạn mã Python kết nối giữa hai hệ thống (sử dụng thư viện xmlrpc.client cho Odoo và pyodbc cho SQL Server).
  3. Lưu file với tên import_odoo.py.

3. Cấu hình thông số kết nối

Trong file code, bạn cần chú ý các thông số quan trọng (như trong ảnh minh họa):

  • SQL Server: Driver (ODBC Driver 17), Server Name, Database (NORTHWND), User và Password.
  • Odoo API: URL (localhost:8069), Database Name (Vohauipr), User Admin và Password API.
# --- CẤU HÌNH SQL SERVER (Cập nhật cho SQL 2022) ---
sql_config = {
    # Nếu chạy lỗi 'Driver not found', hãy thử đổi thành '{SQL Server}' 
    # hoặc '{ODBC Driver 18 for SQL Server}'
    'driver': '{ODBC Driver 17 for SQL Server}', 
    'server': r'DESKTOP-7HV4G4N\SQLEXPRESS',
    'database': 'NORTHWND',
    'user': 'vohauipr',
    'password': 'HaVaXXX' 
}

# Trong hàm connect_sql hoặc lúc tạo conn_str, hãy dùng dòng này:
conn_str = (
    f"DRIVER={sql_config['driver']};"
    f"SERVER={sql_config['server']};"
    f"DATABASE={sql_config['database']};"
    f"UID={sql_config['user']};"
    f"PWD={sql_config['password']};"
    "Encrypt=yes;"             # SQL 2022 thường yêu cầu mã hóa
    "TrustServerCertificate=yes;" # Tin tưởng chứng chỉ nội bộ để không bị chặn
)

4. Thực thi và Debug

Đây là bước quan trọng nhất để kiểm tra log dữ liệu:

  • Nhấn F5 hoặc nút Run trong VSC.
  • Quan sát cửa sổ Terminal:
    • Hệ thống sẽ báo Đã kết nối Odoo. UID: 2.
    • Tiếp theo là log quá trình import: Tìm thấy 77 sản phẩm từ SQL Server...
    • Mỗi dòng sản phẩm được đẩy lên thành công sẽ kèm theo ID tương ứng tại Odoo (ví dụ: Chang (ID Odoo: 67)).

5. Kiểm tra kết quả trên Odoo

Sau khi script chạy xong, hãy quay lại giao diện Odoo:

  • Truy cập module Manufacturing (hoặc Inventory) > Products.
  • Bạn sẽ thấy danh sách các sản phẩm như Chai, Chang, Aniseed Syrup… đã xuất hiện đầy đủ với các thông tin đi kèm như Giá bán (Sales Price) và Đơn vị tính (Reference) khớp hoàn toàn với bảng dữ liệu trong SQL Server Management Studio.

💡 Bài học kinh nghiệm từ Tutorial này:

  1. Quyền truy cập: Luôn chạy CMD và VSC dưới quyền Admin để tránh các lỗi truy xuất hệ thống.
  2. Mapping dữ liệu: Đảm bảo các trường thông tin giữa SQL và Odoo (như tên sản phẩm, giá) được định nghĩa đúng kiểu dữ liệu trong script Python.
  3. Master Password & API Key: Hãy bảo mật các thông tin này trong môi trường thực tế.

Leave a Reply

Your email address will not be published. Required fields are marked *