⚙️ 平台人員操作手冊

DesignSupply 智繪家 · Platform Staff Backend Guide

本手冊適用對象

本手冊提供給 DesignSupply 平台的內部營運人員使用,需要 admin 權限登入 Odoo 後台 (/web/odoo)。內部人員的主要工作包括:

⚠️ 平台後台具備所有寫入權限,操作前請確認影響範圍。建議遵循風險三級制:綠燈(瀏覽、查詢)可自由執行,黃燈(修改設定)需通知,紅燈(刪除、解鎖核心模組)需主管授權。

本手冊內容

  1. 後台首頁與 Apps Grid
  2. 聯絡人管理(設計師 + 供應商)
  3. 商品總覽
  4. 銷售訂單管理
  5. 採購訂單管理
  6. 庫存與物流
  7. 使用者管理
  8. 完整下單流程實證(S00001 案例)
  9. Stripe 金流整合與付款追蹤
🏠

後台首頁與 Apps Grid

1Odoo 後台首頁

登入 admin 後造訪 /odoo,會看到 Odoo 17 的 Apps Grid 主畫面。所有已安裝模組以圖示卡片呈現,點擊即可進入對應功能區。

https://designsupply.aiuptop.com/odoo
Odoo 後台首頁

DesignSupply 已安裝的核心模組:websitewebsite_salesale_managementpurchasestockstock_dropshippingzhj_marketplace

👥

聯絡人管理

2聯絡人列表(夥伴管理)

進入 /odoo/contacts 查看所有合作夥伴。透過搜尋列輸入「鴻麟」或「設計師」可快速篩選。每筆聯絡人記錄帶有自訂旗標:

  • zhj_is_designer - 是否為設計師
  • zhj_is_supplier - 是否為供應商
  • supplier_rank - 供應商評等(影響採購排序)
https://designsupply.aiuptop.com/odoo/contacts
聯絡人列表
📦

商品總覽

3商品列表

進入 /odoo/action-product.product_template_action 查看所有商品(product.template)。預期 87 筆(鴻麟 71 + 域誠 16)。後台可看到:

  • 商品名稱、SKU、分類、售價、成本
  • 所屬供應商(zhj_supplier_partner_id
  • 是否在前台商城公開(zhj_published
  • 規格細節(zhj_specification
https://designsupply.aiuptop.com/odoo/action-product.product_template_action
後台商品列表

後台商品列表是供應商商品的「全集」,包含未公開的草稿商品。供應商前台 /my/supplier/products 只看得到自己的商品。

🛒

銷售訂單管理

4銷售訂單列表

進入 /odoo/sales 查看所有銷售訂單(sale.order)。設計師下單後產生的 SO 會在這裡,狀態流程為:

  • 報價單(draft)→ 已發送(sent)→ 銷售訂單(sale)→ 完成(done)
https://designsupply.aiuptop.com/odoo/sales
銷售訂單列表

直接「取消」一張已 confirm 的 SO 屬於黃燈動作,會連動取消對應的 PO 與庫存移動。請確認沒有已出貨的部分後再取消。

📥

採購訂單管理

5採購訂單列表

進入 /odoo/purchase 查看所有採購訂單(purchase.order)。由於 DesignSupply 採用直運(dropshipping)流程,每筆 SO 確認後會自動產生對應 PO 給供應商。狀態流程:

  • RFQ 詢價(draft)→ 已發送詢價(sent)→ 採購訂單(purchase)→ 完成(done)
https://designsupply.aiuptop.com/odoo/purchase
採購訂單列表
📊

庫存與物流

6庫存模組

進入 /odoo/inventory 查看庫存儀表板。直運模式下,平台不持有實體庫存,但 Odoo 仍會建立虛擬的「轉移」(stock.picking)記錄追蹤每筆訂單的物流狀態:

  • 供應商 → 客戶(dropship):直運出貨單
  • 每張 SO + PO 對應一張 dropship 轉移單
https://designsupply.aiuptop.com/odoo/inventory
庫存儀表板
👤

使用者管理

7使用者列表

進入 /odoo/action-base.action_res_users 管理所有 Odoo 使用者帳號。正式環境目前 6 個 active users:

  • admin - 平台管理員
  • A / B / C - 設計師(group_zhj_designer + base.group_portal
  • honglin / yucheng - 供應商(group_zhj_supplier + base.group_portal
https://designsupply.aiuptop.com/odoo/action-base.action_res_users
使用者列表

新增供應商使用者時,務必:(1) 先建立對應的 res.partner 並勾選 zhj_is_supplier;(2) 將 user 的 partner_id 連結到該 partner;(3) 將 user 加入 group_zhj_supplierbase.group_portal 兩個群組。少任何一步都會導致供應商無法看見自家商品。

🔄

完整下單流程實證

2026-04-30 正式環境真實案例

以下為 Playwright 自動化於 designsupply.aiuptop.com 執行的完整流程,由設計師 B 下單到供應商鴻麟收到任務。所有訂單已標記 [E2E-MANUAL] 操作手冊示範

1
設計師逛商城
2
商品詳情頁
3
加入購物車
4
產生 SO(draft)
5
admin 確認 SO
6
自動產生 PO
7
供應商收到任務
8
後台訂單收尾

8SO 詳情(admin 視角)

設計師 B 下單後,admin 在後台開啟 S00002。畫面顯示客戶為「設計師 B」、商品「綠宿屋PP板 LH8860 白橡山紋」、未稅金額 NT$ 1,狀態:報價 → 報價單送出 → 銷售訂單。右上方按鈕「確認」可將狀態推進為已確認。

https://designsupply.aiuptop.com/web#id=...&model=sale.order&view_type=form
SO 詳情(admin 視角)

9PO 自動產生(直運)

SO 確認後,stock_dropshipping 自動建立對應 PO P00002,供應商欄位帶入「鴻麟」。注意「供應商編號」欄位顯示 [E2E-MANUAL] 操作手冊示範,這是 Playwright 寫入的識別標籤。

https://designsupply.aiuptop.com/web#id=...&model=purchase.order&view_type=form
PO 自動產生

關鍵設計:SO 與 PO 的 origin 欄位互相連結(PO.origin = SO.name),這讓供應商在 /my/supplier/tasks 可以看到對應的訂單來源(S00001 → P00001)。

10供應商收到任務

供應商 honglin 登入後造訪 /my/supplier/tasks,立即看到新的 P00001 在列表中,來源欄位顯示 S00001。供應商備貨並出貨後,可從這裡更新狀態,平台會同步更新對應 SO 與物流單。

https://designsupply.aiuptop.com/my/supplier/tasks
供應商任務列表

11後台訂單列表收尾

所有訂單流轉完畢後,admin 可在 /odoo/sales/odoo/purchase 看到完整紀錄:每張 SO 對應一張 PO,[E2E-MANUAL] 標籤讓本次操作手冊示範訂單可清楚識別、日後檢索。

https://designsupply.aiuptop.com/odoo/sales
銷售訂單列表(含 E2E-MANUAL)
https://designsupply.aiuptop.com/odoo/purchase
採購訂單列表(含 E2E-MANUAL)
💳

Stripe 金流整合與付款追蹤

2026-04-30 完成 Stripe 金流串接

正式環境已安裝 payment_stripe v17.0.2.0(Odoo 17 內建 community 模組),啟用 Test mode 串接 Stripe,並完成 end-to-end 付款驗證。任何設計師結帳訂單均可走 Stripe 線上刷卡,款項即時扣款、Odoo 同步收款。

12Payment Provider 設定

後台路徑:Invoicing → Configuration → Payment Providers。Stripe 列已啟用,配置如下:

  • State:Test mode(測試模式,使用 sk_test_... 金鑰)
  • Journal:銀行(自動建立的入帳科目)
  • Stripe Publishable Keypk_test_51QHQzFDunC7b6YyL...(前端公開金鑰,可見)
  • Stripe Secret Keysk_test_51QHQzFDunC7b6YyL...(後端密鑰,加密保存)
  • Webhook Signing Secret:(可選;正式上線前於 Stripe Dashboard 設定)
  • Payment Methods:6 種已啟用(Card / Apple Pay / Google Pay / Klarna / Afterpay / Link)
  • Available Currencies:留空 = 全部支援(含 TWD)
  • Allow Express Checkout:關閉(避免特定 JS race 造成的 client error 彈窗)
  • Is Published:true(前台 /shop/payment 可見)

⚠️ 切換到 Live mode 前必備:(1) 把 sk_test / pk_test 換成 sk_live / pk_live;(2) 在 Stripe Dashboard 啟用對應幣別與付款方式;(3) 設置 webhook 端點 /payment/stripe/webhook 並回填 whsec;(4) 完整 KYC 驗證;(5) 清除測試交易資料。

13已付款 SO 後台檢視

S00003(設計師 B 透過 Stripe 4242 卡支付的訂單)在 Sales 後台呈現:

  • 狀態列已推進到「銷售訂單」(已確認)
  • 右上 smart button「1 採購」連結到自動產生的採購單(dropshipping)
  • 明細列含商品 LH8860 (Qty 2 × NT$100) + 標準送貨 (NT$ 0),未稅金額 NT$ 200,含稅 NT$ 210
  • 右上有「建立發票」按鈕可一鍵生成顧客發票
https://designsupply.aiuptop.com/web#id=3&model=sale.order&view_type=form
後台 S00003 已確認狀態

14Payment Transaction 記錄

Odoo 為每筆 Stripe 付款建立 payment.transaction 記錄,與 SO 雙向關聯。本筆 S00003 對應的交易:

  • 編號:S00003
  • 付款憑據:PBNK1/2026/00001(Odoo 自動生成的會計付款編號)
  • 金額:NT$ 210
  • 付款方法:VISA
  • 服務商:Stripe
  • 服務商參考pi_3TRo3eDunC7b6YyL25LnBEsv(Stripe Payment Intent ID — 可直接到 Stripe Dashboard 查 raw 交易)
  • 狀態:已確認(done)
  • 客戶資料:完整地址、email、電話自動帶入
https://designsupply.aiuptop.com/web#id=1&model=payment.transaction&view_type=form
Payment Transaction 詳情

如果客戶要求退款,從 Stripe Dashboard 找到對應 pi_ ID 退款,Odoo 端再手動建立 refund 即可同步帳務。Webhook 上線後可全自動。

15金流維運注意事項

  • 對帳週期:Stripe 預設 T+2(USD)/ T+7(TWD)撥款到綁定銀行帳戶。建議每月底匯出 Stripe 報表與 Odoo SO/Invoice 比對。
  • 失敗交易:state=`error` 或 `cancel` 的 transaction 會留下供 audit trail,不會自動刪除。
  • 幣別:本平台主幣 TWD。Stripe TWD 最低收款 ~NT$ 30,需確保所有商品定價合理(demo 環境 NT$ 1 商品無法走 Stripe,僅做版面測試)。
  • 金鑰儲存:實際密鑰存於 D:\odooai\registry\secrets.yaml → designsupply.stripe,Odoo 內亦加密保存,請勿在任何外部對話、commit message、log 中明文出現。
  • 測試交易清理:上線前可從 payment.transaction 列表搜尋 provider_code=stripe AND state=done 的測試紀錄並批次刪除(或視為歷史保留)。