當一筆付款其實是五種組合
在電商結帳裡,優惠券從來不是一個獨立功能。它會和錢包餘額、PSP 折扣、回饋金與紅利同時出現,而且每種組合的規則都不同:錢包夠不夠付、優惠券能不能與 PSP 折扣疊加、只用一種付款方式時要顯示什麼。我先把所有 if 情境畫成一張組合盤點板,逐格確認每個分支的畫面與文案,才開始細部設計。這也是「部分核銷」的核心:一張券可以只折抵部分金額,剩下的用錢包或卡片補。

設計可用優惠券面板
可用優惠券面板要在一個小小的彈層裡回答很多問題:我有哪些券、哪些不能用在這筆訂單、加了券之後總價變多少、輸入錯誤怎麼辦。我為它設計了完整的狀態集:預設、搜尋、加入、移除、錯誤、部分使用與空狀態,另外做了 320px 寬的響應式版本,確保鍵盤彈出時清單仍然可捲動。學到的一課:狀態設計做得越完整,工程來回就越少,因為每個「那如果……」都已經有答案。
