ショッピングカート


ストーリー

町の小さな店のためのショッピングカートをモデル化する必要があります。カートは、追加された商品のリストを記録し、価格を正しく計算できるようにします。

商品は、SKU(在庫管理単位)コードを使ってカートに追加します。店にある商品は次のとおりです。

Name Price SKU
Potatoes 10.00 STAPOT
Rice 30.00 STARIC
Coffee 14.99 STACOF
Newspaper 2.99 MEDNEW

タスク

ショッピングカートでは、次の操作ができる必要があります。

  • 商品をカートに追加する: SKUを読み取り、カートに追加します。
  • 合計金額を確認する: カートに入っている商品の合計金額を、小数点以下2桁の数値で返します(例: 3.99)。
  • カートに入っている商品を確認する: カートに入っている商品名のリストを、アルファベット順に、重複なしで、コンマとスペースで区切って返します。

用語

  • 商品: ショッピングカートに追加できる品目です。
  • SKU: SKUは、商品の種類の最初の3文字(大文字)と、商品名の最初の3文字(大文字)を組み合わせた識別子です。
  • 価格: 商品の値段を、小数点以下2桁の数値で表したものです。

実装

別バージョン

このストーリーには、ショッピングカートに追加できる割引クーポンを使う別バージョン(拡張版)があります。

ストーリー

お客さんに喜んでもらうために、町の小さな店は割引クーポンを導入しました。つまり、こうした割引に対応するために、ショッピングカートは割引クーポンを読み取り、カートに入っている商品に適用できる必要があります。対応しているクーポンは次のとおりです。

Type SKU Rule
定額割引 FIX_TEN カートの合計金額から10.00を割り引きます
商品割引 HALF_STAPOT STAPOTの商品をすべて半額にします

タスク

ショッピングカートには、SKUを受け取ってカートに追加する新しいscan coupon操作が必要です。total_amountは負の数になってはいけない点に注意してください。total_amountの最小値は0です。

用語

  • クーポン: カートに適用できる割引です。クーポンは一意で、1回だけ適用できます。クーポンの種類が定額割引の場合、SKUの2番目の部分が、大文字で書かれた割引額です。

実装