商業規則引擎與倉儲物流

除了會計連動,平台還預建了一組商業規則引擎——定價、庫存校正、運費計算。

這些規則設定一次,就會在所有入口自動生效:不論訂單是從 Custom App 建立、從 API 送進來、還是由 AI 助理產生,套用的都是同一套規則。您的應用程式不需要自己實作折扣邏輯。


1. 定價規則

平台提供三層定價機制,優先序由具體到通用。

客戶等級折扣

設定:資料中心「CRM 客戶關係 › 等級管理」

為客戶群組設定基礎折扣率(例如 VIP 客戶折扣率 0.85 代表 85 折)。開單時系統自動以該折扣率重算單價。

標籤專屬協議價

設定:資料中心「CRM 客戶關係 › 客戶標籤」

比折扣率更具體的一層——針對特定標籤設定特定商品的固定價格

例如「長期合約夥伴」標籤下,商品 A 一律 1,000 元,不論市場原價多少。開單時若該客戶帶有此標籤,系統自動套用協議價。

標籤支援批次綁定,可一次把多個客戶掛上同一個標籤。

商品階梯定價

設定:資料中心「銷售管理 › 產品列表」,進入商品詳情的階梯定價分頁

依採購數量設定價格區間:

數量單價
1 – 9500
10 – 99450
100 以上400

建立訂單時,系統依輸入數量自動帶入對應級距的單價,實現大宗批發與零售的自動化判定。


2. 庫存校正

倉庫營運中最容易產生帳物不符的兩個環節,平台都提供自動校正。

實體盤點

設定:資料中心「庫存/倉儲 › 盤點紀錄」

  1. 建立盤點批次時,系統自動帶出指定庫位的系統庫存量
  2. 盤點人員輸入實際盤點量,系統自動算出差異
  3. 主管確認批次後,自動觸發庫存調整——差異量寫入庫存表,即時校正

不需要人工計算增減,也不需要另外開調整單。

規格轉化

設定:資料中心「庫存/倉儲 › 規格轉化」

處理包裝規格的轉換——1 箱拆成 12 包零售裝,或散裝合併為整箱。

建立轉化紀錄並經主管確認後,系統自動從來源規格扣減庫存、等比增加目標規格庫存。兩邊同時發生,不會出現中間狀態。


3. 物流與運費

出貨批次

設定:資料中心「庫存/倉儲 › 出貨批次」

把多張待出貨單整合成同一個出貨批次,讓倉庫人員一次列印揀貨單與包裝標籤,提升揀貨與派車效率。

運費群組

設定:資料中心「庫存/倉儲 › 運費群組」

支援三種計費模式,可組合使用:

模式說明
固定運費每筆訂單固定金額
滿額免運超過設定門檻自動免運
階梯式級距依訂單金額級距動態計費

範例:未滿 1,000 元收 150 元;1,000–3,000 元收 80 元;3,000 元以上免運。

訂單確認時,符合條件的運費會自動計入會計應收,達成財務與物流的一體化。


4. 其他預建設定

設定位置作用
補貨規則庫存/倉儲 › 補貨規則低於安全庫存時觸發補貨建議
付款條件客戶/供應商主檔自動計算到期日
序號規則系統與維運管理 › 核心字典單據編號的自動編碼規則
到岸成本庫存/倉儲 › 到岸成本把運費、關稅分攤進商品成本
鎖帳管理會計財務 › 鎖帳管理鎖定已結帳期間,防止追溯修改

5. 從應用程式的角度

這些規則的價值在於:您的應用程式不需要知道它們存在

def execute(ctx):
    # 只需要送出「誰、買什麼、買多少」
    ctx.db.insert('sale_orders', {
        'customer_id': ctx.params['customer_id'],
        'order_line': [
            {'product_id': ctx.params['product_id'],
             'product_uom_qty': ctx.params['qty']}
        ],
    })
    # 客戶等級折扣、標籤協議價、階梯定價、運費 —— 全部由引擎套用

應用程式送出的是業務意圖,價格的計算交給引擎。這樣做的好處是:定價政策調整時,您改的是主控台的設定,不是散落在各個應用程式裡的程式碼。


6. 設定的權責

這些規則多數需要對應模組的寫入權限(crm.writesale.writestock.write 等),部分需要 system.admin

建議由熟悉業務政策的人員維護,而非開發者——這正是把規則放在設定而不是程式碼裡的目的。