購物車


故事

我們需要為一家街角小店建立購物車的模型。購物車應該追蹤已加入項目的陣列,並正確計算價格。

項目是透過存貨單位(SKU)代碼加入購物籃的。店裡的項目有:

名稱 價格 SKU
馬鈴薯 10.00 STAPOT
米 30.00 STARIC
咖啡 14.99 STACOF
報紙 2.99 MEDNEW

任務

購物車應該能執行這些操作:

  • 將項目加入購物車:讀取一個 SKU 並將它加入購物車。
  • 檢查總金額:購物車中項目的總價值,以兩位小數的數字表示(例如 3.99)。
  • 檢查購物車內包含的項目:購物車中項目名稱的陣列,依字母順序排列,不重複,並以逗號和空格分隔。

術語

  • 項目:可以加入購物車的物品。
  • SKU:SKU 是由產品類型的前三個大寫字母,加上產品名稱的前三個大寫字母所組成的識別碼。
  • 價格:項目的價值,以兩位小數的數字表示。

實作

替代版本

這個故事的替代版本或延伸版本,使用了可以加入購物車的折價券。

故事

為了讓顧客開心,街角小店推出了折價券。這表示為了支援這些折扣,我們的購物車必須能夠讀取折價券,並將它們套用到目前的項目上。支援的折價券如下:

類型 SKU 規則
固定價格折扣 FIX_TEN 從購物車總金額中折抵 10.00
產品折扣 HALF_STAPOT 將所有 STAPOT 項目降為半價

任務

購物車應該有一個新的scan coupon操作,它接收一個 SKU 並將它加入購物車。請記住,total_amount不能是負數,total_amount的最小值是 0。

術語

  • 折價券:可以套用到購物車的折扣。折價券是唯一的,而且只能套用一次。如果折價券類型是固定價格折扣,SKU 的第二個部分就是以大寫字母表示的折扣金額。

實作