Odoo, nền tảng ERP hàng đầu, không chỉ cung cấp một hệ thống quản lý toàn diện mà còn cho phép các nhà phát triển tùy chỉnh và tích hợp ứng dụng theo nhu cầu của từng doanh nghiệp. Một trong những công cụ quan trọng để đạt được điều này chính là Odoo API. Odoo API là một giao diện lập trình ứng dụng mạnh mẽ, cho phép nhà phát triển tương tác với hệ thống Odoo và thực hiện các tác vụ quản lý dữ liệu và tích hợp ứng dụng. Tuy nhiên, đó mới chỉ là một phần nhỏ của Odoo API. Trong bài viết này, hãy cùng Magenest đi sâu tìm hiểu về công cụ mạnh mẽ này của Odoo nhé.
Mục lục
Odoo API là gì?
Odoo API là một phương thức kết nối và giao tiếp giữa ứng dụng Odoo và các ứng dụng hoặc hệ thống khác thông qua giao thức HTTP và các phương thức RESTful. API, hay giao diện lập trình ứng dụng, cho phép bạn truy xuất dữ liệu từ Odoo, tạo, cập nhật và xóa các bản ghi trong hệ thống Odoo cũng như thực hiện các tác vụ khác mà Odoo hỗ trợ.
Odoo cung cấp RESTful API cho phép bạn truy cập vào hầu hết các đối tượng trong Odoo như Khách hàng, Nhà cung cấp, Sản phẩm, Đơn hàng, Hóa đơn,… RESTful API, giải thích đơn giản, là một trong các tiêu chuẩn được sử dụng trong thiết kế API cho các ứng dụng web nhằm tạo các điều kiện thuận lợi cho việc quản lý các tài nguyên.
Rest API chú trọng vào các tài nguyên của hệ thống như ảnh, văn bản, video, âm thanh, dữ liệu di động,… và bao gồm các trạng thái tài nguyên đã được định dạng sẵn, truyền tải thông qua giao thức HTTP.
Với Odoo, bạn có thể sử dụng API để tích hợp nền tảng này với các ứng dụng và hệ thống khác như trang web, cửa hàng trực tuyến, hệ thống quản trị quan hệ khách hàng, hệ thống quản lý kho, và các ứng dụng doanh nghiệp khác.
RESTful có một chức năng quan trọng, đó là việc quy định sử dụng giao thức HTTP như Post, Delete, Get hay Put,… và định dạng các URL sao cho ứng dụng web có thể quản lý được các tài nguyên hiệu quả. Nhờ vảo khả năng này, Odoo API có thể thực hiện các hoạt động khác nhau dựa trên chức năng của RESTful. Bạn có thể gửi các yêu cầu HTTP đến API Odoo để lấy dữ liệu, tạo mới bản ghi, cập nhật thông tin, và xóa bản ghi khỏi hệ thống Odoo.
Odoo API cũng hỗ trợ xác thực và ủy quyền, cho phép bạn kiểm soát quyền truy cập vào dữ liệu và hoạt động trong Odoo. Bạn có thể tạo các người dùng mới và cấp quyền truy cập cho họ thông qua Odoo API.
Cách sử dụng Odoo API
Cài đặt và cấu hình Odoo API
Để có thể sử dụng Odoo API, trước tiên bạn cần phải cài đặt Odoo trên máy chủ hoặc máy cục bộ. Bạn có thể tải xuống gói cài đặt Odoo từ website chính thức của Odoo. Thực hiện theo các hướng dẫn cài đặt dành riêng cho hệ điều hành mà máy của bạn đang sử dụng. Sau đó, bạn tiếp tục làm theo hướng dẫn từ Odoo để đăng ký và tạo tài khoản, cung cấp một số thông tin bắt buộc như địa chỉ email, tên công ty và các thông tin thanh toán nếu cần.
Khi đã lập xong tài khoản, giờ là lúc bạn cần lựa chọn một phiên bản Odoo phù hợp, tính đến thời điểm bài viết này được đăng tải, Odoo đã cho ra mắt phiên bản Odoo 16. Ngoài ra, hãy cân nhắc đến việc chọn lựa các module mà doanh nghiệp cần sử dụng chẳng hạn như CRM, Bán hàng, Hàng tồn kho, Kế toán…
Tiếp đến, hãy hoàn thành một số thiết lập cơ bản như cung cấp các chi tiết về công ty, ngôn ngữ, múi giờ,… Điền đầy đủ các thông tin cơ bản này và hoàn thành thêm một số các hướng dẫn khác để hoàn tất việc cài đặt Odoo. Sau khi hoàn tất, bạn sẽ được cung cấp URL hoặc chi tiết về cách thức truy cập cho phần mềm Odoo của mình.
Hãy truy cập vào phần mềm Odoo của bạn, có thể thấy, module API sẽ chưa được kích hoạt một cách mặc định ở trong Odoo. Để kích hoạt API, bạn cần đăng nhập vào Odoo dưới tư cách quản trị viên, sau đó tìm tới menu Ứng dụng, tìm kiếm module API và tiến hành cài đặt.
Sau khi kích hoạt module API, hãy chuyển đến menu phần Cài đặt và chọn Cài đặt chung. Trong phần API, bạn có thể định cấu hình cài đặt API. Tại đây, bạn có thể xác định quy tắc truy cập cho người dùng API và đặt phiên bản API.
Tiếp theo, bạn cần tạo một tài khoản (hay người dùng) để truy cập API, chuyển đến menu Cài đặt và chọn Người dùng. Bạn tạo một người dùng mới dành riêng cho các hoạt động API, chỉ định quyền truy cập thích hợp cho người dùng này dựa trên chức năng mong muốn mà bạn muốn hiển thị thông qua API.
Sau khi người dùng được tạo, hãy tạo khóa API để xác thực. Odoo có hỗ trợ các khóa API và (tùy thuộc vào module được cài đặt) có thể yêu cầu các khóa này để thực hiện các hoạt động của dịch vụ web. Cách sử dụng khóa API có thể hiểu đơn giản là thay thế mật khẩu của bạn bằng các khóa. Thông tin đăng nhập vẫn được sử dụng. Bạn nên lưu khóa API cẩn thận như mật khẩu vì về cơ bản chúng cung cấp cùng quyền truy cập vào tài khoản người dùng của bạn.
Để thêm khóa vào tài khoản của bạn, chỉ cần đi tới Tùy chọn của bạn (hoặc Hồ sơ của tôi). Sau đó mở tab Bảo mật tài khoản và nhập vào Khóa API mới. Bạn cần nhập mô tả cho khóa, mô tả này phải rõ ràng và đầy đủ nhất có thể. Bởi vì đó là cách duy nhất mà bạn có thể xác định các khóa của mình sau này và biết liệu bạn nên xóa chúng hay giữ lại.
Nhấp vào Tạo khóa, sau đó sao chép khóa được cung cấp. Hãy lưu trữ khóa này cẩn thận bởi như đã giải thích, nó tương đương với mật khẩu của bạn mà hệ thống sẽ không thể truy xuất hoặc hiển thị lại khóa sau này. Nếu bạn làm mất khóa này, bạn sẽ phải tạo một cái mới (và có thể xóa cái bạn đã mất).
Khi bạn đã cấu hình các khóa trên tài khoản của mình, chúng sẽ xuất hiện phía trên nút Khóa API mới và bạn sẽ có thể xóa chúng. Không thể khôi phục hoặc đặt lại khóa API đã xóa. Bạn sẽ phải tạo khóa mới và cập nhật tất cả những hoạt động mà bạn đã sử dụng các khóa cũ.
Để đảm bảo rằng API được cài đặt và định cấu hình đúng cách, bạn nên kiểm tra lại. Bạn có thể sử dụng các công cụ như cURL, Postman hoặc thư viện thử nghiệm API bằng ngôn ngữ lập trình mà bạn tin dùng. Thực hiện một vài các yêu cầu API đơn giản, chẳng hạn như truy xuất danh sách bản ghi từ mô hình Odoo và xác minh rằng bạn đã nhận được phản hồi.
Điều quan trọng là phải bảo mật Odoo API của bạn để ngăn chặn các truy cập trái phép. Bạn có thể kích hoạt HTTPS cho phiên bản Odoo của mình, thiết lập cơ chế xác thực phù hợp (chẳng hạn như khóa API hoặc OAuth) hay hạn chế lưu lượng truy cập.
Xác thực và quản lý quyền truy cập
API Odoo cung cấp các tính năng quản lý quyền truy cập và xác thực để đảm bảo quyền truy cập an toàn vào phần mềm Odoo của doanh nghiệp. API Odoo sử dụng các khóa API để xác thực. Khóa API là mã định danh duy nhất được liên kết với một tài khoản người dùng cụ thể trong Odoo. Khóa này được yêu cầu để xác thực các yêu cầu API.
Mỗi người dùng trong Odoo có các quyền truy cập cụ thể xác định những tác vụ họ có thể thực hiện và dữ liệu nào họ có thể truy cập. Khi tạo người dùng API, bạn cần chỉ định quyền truy cập phù hợp để đảm bảo họ có các quyền cần thiết để thực hiện các thao tác mong muốn thông qua API.
Để xác thực các yêu cầu API, bạn cần đưa khóa API vào tiêu đề yêu cầu hoặc dưới dạng tham số truy vấn. Phương pháp chuyển khóa API cụ thể tùy thuộc vào ứng dụng hoặc thư viện API mà bạn đang sử dụng. Bạn có thể tham khảo các tài liệu hoặc ví dụ do ứng dụng API cung cấp để hiểu cách chuyển khóa API cho việc xác thực.
Để ngăn chặn các hành vi lạm dụng và bảo vệ phần mềm Odoo của doanh nghiệp, bạn có thể triển khai giới hạn truy cập cho các yêu cầu API. Giới hạn truy cập đặt số lượng yêu cầu tối đa có thể được thực hiện trong một khoảng thời gian cụ thể từ một địa chỉ IP máy khách cụ thể. Điều này giúp ngăn chặn số lượng các yêu cầu quá mức có thể làm quá tải máy chủ hoặc gây ra các vấn đề về hiệu suất.
Ngoài ra, Odoo cho phép bạn xác định kiểm soát truy cập chi tiết bằng cách sử dụng Danh sách kiểm soát truy cập. Với ACL, bạn có thể kiểm soát quyền truy cập vào các module, bản ghi hoặc trường Odoo cụ thể cho người dùng API. Điều này đảm bảo rằng người dùng API chỉ có quyền truy cập vào dữ liệu họ cần và hạn chế quyền truy cập trái phép vào thông tin nhạy cảm.
Giao tiếp với Odoo qua API
Tạo, đọc, cập nhật và xóa dữ liệu
Để thực hiện các thao tác Tạo, Đọc, Cập nhật và Xóa dữ liệu (CRUD – Create, Read, Update and Delete) thông qua Odoo API, bạn có thể làm theo các bước sau:
- Xác thực: Lấy API key cho tài khoản người dùng có quyền truy cập cần thiết để thực hiện các thao tác CRUD. API key này sẽ được sử dụng để xác thực trong các yêu cầu API.
- Điểm cuối API: Xác định điểm cuối API cho đối tượng Odoo mà bạn muốn làm việc. Mỗi đối tượng trong Odoo có một điểm cuối API tương ứng đại diện cho URL để truy cập dữ liệu của nó. Ví dụ:
- Tạo: /api/v1/objects/product/create
- Đọc: /api/v1/objects/product/read
- Cập nhật: /api/v1/objects/product/update
- Xóa: /api/v1/objects/product/delete
- Tạo bản ghi: Để tạo bản ghi mới, gửi một yêu cầu POST đến điểm cuối tạo bản ghi với dữ liệu của bản ghi bạn muốn tạo. Đảm bảo rằng dữ liệu được định dạng đúng theo yêu cầu của Odoo API.
- Đọc dữ liệu: Để đọc dữ liệu, gửi một yêu cầu GET đến điểm cuối đọc dữ liệu. Cung cấp các tham số yêu cầu như bộ lọc, trường cần đọc, hay sắp xếp nếu cần. Sau đó, bạn sẽ nhận được dữ liệu trong phản hồi API.
- Cập nhật bản ghi: Để cập nhật một bản ghi, gửi một yêu cầu PUT đến điểm cuối cập nhật với dữ liệu cập nhật cho bản ghi đó. Hãy đảm bảo rằng dữ liệu được định dạng đúng và chứa các trường cần cập nhật.
- Xóa bản ghi: Để xóa một bản ghi, gửi một yêu cầu DELETE đến điểm cuối xóa với thông tin xác định bản ghi cần xóa.
Lưu ý rằng các yêu cầu API sẽ cần đính kèm thông tin xác thực, chẳng hạn như API key, để được xác thực bởi Odoo API. Bạn cũng cần xử lý kết quả phản hồi từ Odoo API để kiểm tra kết quả của các thao tác CRUD.
Tìm kiếm và lọc dữ liệu
Để tìm kiếm và lọc dữ liệu trong Odoo qua API, bạn có thể làm theo các bước sau:
- Xác định điểm cuối API: Tìm điểm cuối API tương ứng với đối tượng Odoo mà bạn muốn tìm kiếm và lọc dữ liệu. Ví dụ, /api/v1/objects/product để tìm kiếm và lọc dữ liệu sản phẩm.
- Gửi yêu cầu GET: Gửi một yêu cầu GET đến điểm cuối API đã xác định. Để tìm kiếm và lọc dữ liệu, bạn sẽ cần truyền tham số truy vấn (query parameters) trong URL.
- Tham số truy vấn (query parameters): Sử dụng các tham số truy vấn để chỉ định tiêu chí tìm kiếm và lọc dữ liệu. Dưới đây là một số tham số phổ biến:
- search: Đây là chuỗi tìm kiếm chung để tìm các bản ghi phù hợp với tiêu chí tìm kiếm. Ví dụ: search=apple để tìm kiếm các sản phẩm có từ apple trong tên hoặc mô tả.
- domain: Đây là một danh sách các biểu thức lọc để giới hạn kết quả tìm kiếm. Biểu thức lọc được định dạng dưới dạng mảng JSON. Ví dụ: domain=[[“name”, “ilike”, “apple”]]. Điều này tìm kiếm các sản phẩm có tên chứa từ “apple”.
- fields: Xác định các trường cần trả về trong kết quả tìm kiếm. Ví dụ: fields=[“name”, “price”] sẽ chỉ trả về các trường tên và giá của sản phẩm.
- limit và offset: Xác định số lượng bản ghi trả về và vị trí bắt đầu trong kết quả tìm kiếm. Ví dụ: limit=10&offset=20 sẽ trả về 10 bản ghi, bắt đầu từ bản ghi thứ 20.
- order: Xác định thứ tự sắp xếp của kết quả trả về. Ví dụ: order=”name ASC” sẽ sắp xếp các sản phẩm theo thứ tự tăng dần theo tên.
- Gửi yêu cầu và xử lý kết quả: Gửi yêu cầu GET chứa các tham số truy vấn đã xác định và xử lý kết quả phản hồi từ Odoo API. Bạn sẽ nhận được dữ liệu tìm kiếm và lọc theo các tiêu chí đã chỉ định.
Thao tác với các module và báo cáo
Để thao tác với các module và báo cáo trong Odoo qua API, bạn có thể làm theo các bước sau:
- Xác định điểm cuối API: Tìm điểm cuối API tương ứng với module hoặc báo cáo Odoo mà bạn muốn thao tác. Mỗi module hoặc báo cáo có thể có một điểm cuối API riêng.
- Gửi yêu cầu HTTP: Sử dụng phương thức HTTP thích hợp (GET, POST, PUT, DELETE) và điểm cuối API đã xác định để thực hiện các hoạt động.
- Thao tác với module:
- Tạo module: Sử dụng yêu cầu POST để tạo module mới. Gửi yêu cầu POST đến điểm cuối tạo module với dữ liệu tạo module (tên, mô tả, phiên bản, v.v.).
- Cập nhật module: Sử dụng yêu cầu PUT để cập nhật module. Gửi yêu cầu PUT đến điểm cuối cập nhật module với dữ liệu cập nhật module (tên, mô tả, phiên bản, v.v.).
- Xóa module: Sử dụng yêu cầu DELETE để xóa module. Gửi yêu cầu DELETE đến điểm cuối xóa module với thông tin xác định module cần xóa.
- Thao tác với báo cáo:
- Lấy danh sách báo cáo: Sử dụng yêu cầu GET để lấy danh sách các báo cáo có sẵn. Gửi yêu cầu GET đến điểm cuối danh sách báo cáo.
- Lấy thông tin báo cáo: Sử dụng yêu cầu GET để lấy thông tin chi tiết về một báo cáo cụ thể. Gửi yêu cầu GET đến điểm cuối thông tin báo cáo với thông tin xác định báo cáo cần lấy.
- Chạy báo cáo: Sử dụng yêu cầu POST để chạy một báo cáo. Gửi yêu cầu POST đến điểm cuối chạy báo cáo với thông tin xác định báo cáo cần chạy và các tham số khác liên quan.
- Xử lý kết quả: Xử lý và phân tích kết quả phản hồi từ Odoo API để lấy thông tin về module, báo cáo hoặc thực hiện các hoạt động khác tương ứng.
Xử lý tương tác giữa các đối tượng
Để xử lý tương tác giữa các đối tượng trong Odoo qua API, bạn có thể làm theo các bước sau:
- Xác định điểm cuối API: Đầu tiên, xác định điểm cuối API tương ứng với đối tượng Odoo mà bạn muốn tương tác. Ví dụ, /api/v1/objects/product để làm việc với đối tượng Sản phẩm.
- Tạo bản ghi: Để tạo bản ghi mới, gửi một yêu cầu POST đến điểm cuối tạo bản ghi với dữ liệu của bản ghi bạn muốn tạo. Đảm bảo rằng dữ liệu được định dạng đúng theo yêu cầu của Odoo API. Bạn có thể sử dụng các tham số liên quan đến tương tác giữa các đối tượng trong dữ liệu.
- Đọc bản ghi: Để đọc thông tin bản ghi, gửi một yêu cầu GET đến điểm cuối đọc bản ghi. Bạn có thể chỉ định các tham số liên quan đến tương tác giữa các đối tượng, chẳng hạn như các trường liên quan, thông tin liên quan, hay điều kiện lọc.
- Cập nhật bản ghi: Để cập nhật một bản ghi, gửi một yêu cầu PUT đến điểm cuối cập nhật bản ghi với dữ liệu cập nhật cho bản ghi đó. Hãy đảm bảo rằng dữ liệu được định dạng đúng và chứa các trường liên quan.
- Xóa bản ghi: Để xóa một bản ghi, gửi một yêu cầu DELETE đến điểm cuối xóa bản ghi với thông tin xác định bản ghi cần xóa.
- Tương tác giữa các đối tượng: Để tương tác giữa các đối tượng, sử dụng các trường liên quan và tham số liên quan trong dữ liệu bản ghi. Ví dụ, bạn có thể thêm một sản phẩm vào một đơn hàng bằng cách cập nhật trường liên quan order_line_ids trong bản ghi đơn hàng.
Kết luận
Odoo API là một phương tiện cho phép giao tiếp và tương tác với hệ thống Odoo, tạo điều kiện tận dụng các tài nguyên một cách hiệu quả nhất trong doanh nghiệp. Odoo API cho phép bạn truy cập vào dữ liệu, thực hiện các hoạt động CRUD và tích hợp Odoo với các ứng dụng và hệ thống khác. Sử dụng Odoo API, bạn có thể tạo, đọc, cập nhật và xóa dữ liệu từ các đối tượng Odoo như sản phẩm, khách hàng, đơn hàng và nhiều hơn nữa. Bạn cũng có thể tìm kiếm, lọc và sắp xếp dữ liệu theo các tiêu chí tùy chọn.
Tuy nhiên, việc cài đặt, kết nối và sử dụng Odoo API sẽ có phần nào khó khăn đối với nhiều đối tượng sử dụng, đặc biệt là các doanh nghiệp không có các phòng ban chuyên về công nghệ thông tin hay không có nhân sự có nghiệp vụ đặc thù để sử dụng các tính năng của nền tảng Odoo. Tại Magenest, chúng tôi có đội ngũ các chuyên gia Odoo với nhiều năm kinh nghiệm sẵn sàng đảm nhận toàn bộ các nhiệm vụ đó cho doanh nghiệp của bạn. Tham khảo ngay dịch vụ Odoo của chúng tôi ở bên dưới.