1Odoo 後台首頁
登入 admin 後造訪 /odoo,會看到 Odoo 17 的 Apps Grid 主畫面。所有已安裝模組以圖示卡片呈現,點擊即可進入對應功能區。
DesignSupply 已安裝的核心模組:website、website_sale、sale_management、purchase、stock、stock_dropshipping、zhj_marketplace。
本手冊提供給 DesignSupply 平台的內部營運人員使用,需要 admin 權限登入 Odoo 後台 (/web 或 /odoo)。內部人員的主要工作包括:
⚠️ 平台後台具備所有寫入權限,操作前請確認影響範圍。建議遵循風險三級制:綠燈(瀏覽、查詢)可自由執行,黃燈(修改設定)需通知,紅燈(刪除、解鎖核心模組)需主管授權。
登入 admin 後造訪 /odoo,會看到 Odoo 17 的 Apps Grid 主畫面。所有已安裝模組以圖示卡片呈現,點擊即可進入對應功能區。
DesignSupply 已安裝的核心模組:website、website_sale、sale_management、purchase、stock、stock_dropshipping、zhj_marketplace。
進入 /odoo/contacts 查看所有合作夥伴。透過搜尋列輸入「鴻麟」或「設計師」可快速篩選。每筆聯絡人記錄帶有自訂旗標:
zhj_is_designer - 是否為設計師zhj_is_supplier - 是否為供應商supplier_rank - 供應商評等(影響採購排序)
進入 /odoo/action-product.product_template_action 查看所有商品(product.template)。預期 87 筆(鴻麟 71 + 域誠 16)。後台可看到:
zhj_supplier_partner_id)zhj_published)zhj_specification)
後台商品列表是供應商商品的「全集」,包含未公開的草稿商品。供應商前台 /my/supplier/products 只看得到自己的商品。
進入 /odoo/sales 查看所有銷售訂單(sale.order)。設計師下單後產生的 SO 會在這裡,狀態流程為:
直接「取消」一張已 confirm 的 SO 屬於黃燈動作,會連動取消對應的 PO 與庫存移動。請確認沒有已出貨的部分後再取消。
進入 /odoo/purchase 查看所有採購訂單(purchase.order)。由於 DesignSupply 採用直運(dropshipping)流程,每筆 SO 確認後會自動產生對應 PO 給供應商。狀態流程:
進入 /odoo/inventory 查看庫存儀表板。直運模式下,平台不持有實體庫存,但 Odoo 仍會建立虛擬的「轉移」(stock.picking)記錄追蹤每筆訂單的物流狀態:
進入 /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)
新增供應商使用者時,務必:(1) 先建立對應的 res.partner 並勾選 zhj_is_supplier;(2) 將 user 的 partner_id 連結到該 partner;(3) 將 user 加入 group_zhj_supplier 與 base.group_portal 兩個群組。少任何一步都會導致供應商無法看見自家商品。
以下為 Playwright 自動化於 designsupply.aiuptop.com 執行的完整流程,由設計師 B 下單到供應商鴻麟收到任務。所有訂單已標記 [E2E-MANUAL] 操作手冊示範。
設計師 B 下單後,admin 在後台開啟 S00002。畫面顯示客戶為「設計師 B」、商品「綠宿屋PP板 LH8860 白橡山紋」、未稅金額 NT$ 1,狀態:報價 → 報價單送出 → 銷售訂單。右上方按鈕「確認」可將狀態推進為已確認。
SO 確認後,stock_dropshipping 自動建立對應 PO P00002,供應商欄位帶入「鴻麟」。注意「供應商編號」欄位顯示 [E2E-MANUAL] 操作手冊示範,這是 Playwright 寫入的識別標籤。
關鍵設計:SO 與 PO 的 origin 欄位互相連結(PO.origin = SO.name),這讓供應商在 /my/supplier/tasks 可以看到對應的訂單來源(S00001 → P00001)。
供應商 honglin 登入後造訪 /my/supplier/tasks,立即看到新的 P00001 在列表中,來源欄位顯示 S00001。供應商備貨並出貨後,可從這裡更新狀態,平台會同步更新對應 SO 與物流單。
所有訂單流轉完畢後,admin 可在 /odoo/sales 與 /odoo/purchase 看到完整紀錄:每張 SO 對應一張 PO,[E2E-MANUAL] 標籤讓本次操作手冊示範訂單可清楚識別、日後檢索。
正式環境已安裝 payment_stripe v17.0.2.0(Odoo 17 內建 community 模組),啟用 Test mode 串接 Stripe,並完成 end-to-end 付款驗證。任何設計師結帳訂單均可走 Stripe 線上刷卡,款項即時扣款、Odoo 同步收款。
後台路徑:Invoicing → Configuration → Payment Providers。Stripe 列已啟用,配置如下:
sk_test_... 金鑰)pk_test_51QHQzFDunC7b6YyL...(前端公開金鑰,可見)sk_test_51QHQzFDunC7b6YyL...(後端密鑰,加密保存)⚠️ 切換到 Live mode 前必備:(1) 把 sk_test / pk_test 換成 sk_live / pk_live;(2) 在 Stripe Dashboard 啟用對應幣別與付款方式;(3) 設置 webhook 端點 /payment/stripe/webhook 並回填 whsec;(4) 完整 KYC 驗證;(5) 清除測試交易資料。
S00003(設計師 B 透過 Stripe 4242 卡支付的訂單)在 Sales 後台呈現:
Odoo 為每筆 Stripe 付款建立 payment.transaction 記錄,與 SO 雙向關聯。本筆 S00003 對應的交易:
pi_3TRo3eDunC7b6YyL25LnBEsv(Stripe Payment Intent ID — 可直接到 Stripe Dashboard 查 raw 交易)
如果客戶要求退款,從 Stripe Dashboard 找到對應 pi_ ID 退款,Odoo 端再手動建立 refund 即可同步帳務。Webhook 上線後可全自動。
D:\odooai\registry\secrets.yaml → designsupply.stripe,Odoo 內亦加密保存,請勿在任何外部對話、commit message、log 中明文出現。payment.transaction 列表搜尋 provider_code=stripe AND state=done 的測試紀錄並批次刪除(或視為歷史保留)。