這是一家線上文具商店,提供客戶方便購買文具的服務。 今天我們要開發其中的一個關鍵功能:將商品加入購物車。
客人可以把商品以及欲購買數量加入購物 (我們稱之爲一個商品細項),並得到目前的購物車總金額。 一次只能加入一個商品細項(商品以及指定數量)
一個商品有以下資料:
- 名稱,不會有重複名稱
- 單價,以 NTD 計算
- 最大購買數量
此外,該功能需要滿足這些規則:
- 購物車金總價是每一細項的總和,一個細項是商品單價乘上數量,加上物流費 60 元
- 購物車最多只能有 5 種商品,如果超過,要警示客人不能這樣做,並標示出是哪一項商品不能加入。
- 加入的商品數量不可以超商品可購買上限,如果超過,要警示客人,並標示出該商品已經到達購買上限
- 超過 500 元則免運費
Name | Unit Price | Max Purchase Qty |
---|---|---|
Eraser | 10 | 10 |
Pencil | 20 | 10 |
Blue Pen | 30 | 10 |
Ruler | 35 | 10 |
Notebook | 50 | 5 |
Pencil Sharpener | 200 | 2 |
Computer Mouse | 500 | 1 |
Keyboard | 800 | 1 |
當商品加入購物車,如果當下商家有設定折扣,則會套用折扣計算總價。 目前可以設定的折扣有兩種:數量折扣與 A+B 折扣
- 數量折扣:購買某商至指定數量時,可以享用折扣趴數
- 單一的指定商品,買到數量 X 時,可以享用折扣趴數 Y
- 折扣趴數只能是 5%, 10%, 15%
- A+B 折扣:購買指定 A 商品與 B 商品時,可以享用金額減免
- A 和 B 商品各買一個時,可以享用金額減免 Y
- 金額減免是固定數字
- A 跟 B 不能是同一個商品
當購物車內的商品符合任一折扣時,就會進行打折,並回傳打折後的總金額。