iT邦幫忙

2025 iThome 鐵人賽

DAY 21
0
Odoo

用 Odoo 打造數位轉型引擎:從基礎建置到跨領域應用系列 第 21

Day 21:Odoo 與外部系統 API 整合

  • 分享至 

  • xImage
  •  

在前一篇我們介紹了 Odoo 與 AI 的整合,今天要來探討另一個企業實務上經常遇到的需求:外部系統 API 串接。Odoo 作為 ERP 核心,往往需要與其他系統(如金流、物流、電商平台)交換資料,確保企業數據一致與流程自動化。


1. 為什麼需要 API 整合?

現代企業不可能只靠一套系統完成所有需求,例如:

  • 金流整合:串接第三方支付(PayPal、Stripe、藍新、綠界)。
  • 物流整合:自動建立出貨單,查詢貨運狀態(DHL、FedEx、黑貓宅急便)。
  • 電商整合:與 Shopify、WooCommerce、蝦皮等平台同步商品與訂單。
  • 政府或法規系統:自動開立電子發票、報稅申報。

Odoo 透過 API 整合,能將這些外部系統的功能無縫融入企業流程。


2. 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 訊息紀錄。


3. Odoo 提供 API 給外部系統

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 取得訂單清單。


4. 實務應用案例

  • 支付:當 Odoo 銷售訂單確認後,自動透過 Stripe API 建立付款連結。
  • 物流:出貨後自動呼叫 DHL API 建立運單,並更新追蹤編號。
  • 電商:每天同步 Shopify 訂單與庫存,避免超賣。
  • 政府:與電子發票平台整合,自動開立發票。

5. 挑戰與注意事項

  • API 認證:多數 API 需要 API Key 或 OAuth2。
  • 錯誤處理:必須處理逾時、失敗重試等情境。
  • 效能:大量 API 呼叫建議使用 Queue(Odoo Queue Job 模組)。
  • 資料一致性:要設計機制避免 Odoo 與外部系統數據不同步。

小結

Odoo 透過 API 整合,能成為企業的 核心資料樞紐

  • 向外呼叫 API → 拓展金流、物流、電商能力。
  • 提供 API → 與外部平台共享數據。
  • 搭配排程與工作流 → 實現全自動化流程。

在下一篇文章中,我將介紹 Odoo 的前端框架 Owl 與 Web 客製化,帶你看看如何在 Odoo 裡打造更現代化的使用者體驗。


上一篇
Day 20:Odoo 與 AI 的整合應用
下一篇
Day 22:Odoo 的前端框架 Owl 與 Web 客製化
系列文
用 Odoo 打造數位轉型引擎:從基礎建置到跨領域應用22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言