規格:結帳物流選擇規則
性質:邏輯說明用(Layer 2 規格)
本規格不單獨開發,是給康德工程師整合「空運違禁品」「排除物流」「拆分結帳」三份規格用的判斷依據。
工時:0 天(邏輯說明,不單獨報價)
為什麼要做
消費者結帳時,能選哪些物流不能只看一個條件,要綜合:
- 商品上架時勾選的「排除物流」
- 收件地址在「本島/外島/海外」
如果這些條件沒整合在一起判斷,會發生:
- 商品禁某物流但結帳卻能選,出貨時才發現問題
- 海外收件選了本島用的物流,出貨失敗
這份規格集中放「結帳時物流可選清單」的判斷邏輯,讓判斷規則只在一個地方維護。
觸發情境
- 消費者在結帳頁面填完收件地址後
- 任何時候購物車內容或地址有變更,要重新判斷
前置條件
- 商品已上架(含「排除物流」屬性設定)
- 已通過「拆分結帳」邏輯,每個結帳區塊內的商品已確定
- 消費者已填妥收件地址
主流程
針對「每一個結帳區塊」執行下列判斷:
- 取得本區塊所有商品的「排除物流」設定,做聯集
- 取得收件地址,判斷類別:本島 / 外島 / 海外(定義見下方判讀說明)
- 依下方對照表得到「地理可選物流」初始清單
- 從清單中扣除「排除物流聯集」中的項目
- 剩下的就是消費者可選的物流清單
- 若清單為空 → 顯示提示「目前商品組合與收件地址無可用物流,請拆單、移除某商品、或更換地址」
判斷對照表
| 收件地址 |
消費者可選物流 |
| 本島 |
宅配、超取 7-11、超取全家 |
| 外島 |
宅配、超取 7-11、超取全家 |
| 海外 |
海外配送 |
判讀說明:
- 本島:三項物流都可走
- 外島:宅配可寄;超取可寄(若含空運違禁品,會透過「排除物流」自動擋掉超取)
- 海外:只能選「海外配送」(實際走郵局或順豐,由倉庫依收件地址決定,屬倉庫作業 SOP,本 spec 不定義)
地址類別定義:
- 本島 = 台灣本島
- 外島 = 澎湖、金門、馬祖、蘭嶼、綠島、小琉球
- 海外 = 上述以外的地方
舉例說明
- 例 1:本島 + 某商品勾了「排除超取 7-11」→ 地理可選 3 項,扣掉 7-11,剩宅配、全家
- 例 2:外島 + 區塊內含空運違禁品商品 → 「排除物流」聯集自動含超取 7-11 / 全家,扣完剩下宅配
- 例 3:外島 + 商品勾了「排除宅配」+ 含空運違禁品 → 三項都被擋,顯示提示訊息
其他情況
- 消費者修改收件地址
→ 自動重新判斷可選物流
- 消費者修改購物車內容(加減商品、改數量)
→ 自動重新判斷
- 商家在消費者購物期間修改商品的「排除物流」設定
→ 已成立訂單不回溯(依排除物流 spec)
→ 未結帳的購物車,在進入下一頁時要用最新設定重新判斷
影響的資料 / 欄位
- 本規格不新增任何欄位
- 收件地址對應本島 / 外島 / 海外的定義,已寫在上方「判讀說明」
UI / 畫面影響
- 結帳頁物流選擇區:
- 動態顯示可選物流清單(依本規格判斷)
- 被排除的物流項目灰掉或隱藏
- 灰掉項目旁附說明文字(例:「此商品組合的排除物流設定,此物流不可選」)
- 收件地址修改後,物流清單即時更新
驗收標準
- 3 個地址情境(本島 / 外島 / 海外)皆能產出正確的「地理可選物流」清單
- 排除物流聯集會在地理可選清單上正確做扣除
- 收件地址變更後,物流清單即時重新計算
- 商品內容變更後,物流清單即時重新計算
- 全部物流被排除時,顯示提示訊息,不可靜默失敗
關聯規格
- 商品上架增加「排除物流」(提供「排除物流」設定 + 空運違禁品的自動連動)
- 拆分購物車(結帳設定)(決定每個結帳區塊的商品範圍)
- 訂單成立 / 預收結帳單(拆分後的每張結帳區塊各自拋鼎新)