在前一篇我們介紹了 Odoo 與 AI 的整合,今天要來探討另一個企業實務上經常遇到的需求:外部系統 API 串接。Odoo 作為 ERP 核心,往往需要與其他系統(如金流、物流、電商平台)交換資料,確保企業數據一致與流程自動化。
現代企業不可能只靠一套系統完成所有需求,例如:
Odoo 透過 API 整合,能將這些外部系統的功能無縫融入企業流程。
Odoo 本身是用 Python 撰寫,因此可直接使用 requests
呼叫外部 API。
範例:串接物流 API 查詢貨運狀態
import requests
from odoo import models
class Shipment(models.Model):
_inherit = 'stock.picking'
def check_shipment_status(self):
for picking in self:
response = requests.get(
"https://api.logistics.com/status",
params={"tracking_number": picking.carrier_tracking_ref}
)
if response.status_code == 200:
status = response.json().get("status")
picking.message_post(body=f"最新貨運狀態:{status}")
這段程式會自動查詢貨運狀態,並寫入 Odoo 訊息紀錄。
Odoo 也可以作為 API 服務端,讓外部系統存取資料。
範例:提供訂單查詢 API
from odoo import http
class OrderAPI(http.Controller):
@http.route('/api/orders', type='json', auth='user')
def list_orders(self):
orders = http.request.env['sale.order'].search([])
return [
{"id": o.id, "name": o.name, "amount": o.amount_total}
for o in orders
]
外部系統即可呼叫 http://odoo-server/api/orders
取得訂單清單。
Odoo 透過 API 整合,能成為企業的 核心資料樞紐:
在下一篇文章中,我將介紹 Odoo 的前端框架 Owl 與 Web 客製化,帶你看看如何在 Odoo 裡打造更現代化的使用者體驗。