# Sefun 運費計算
### 運費
- 常溫 150
- 低溫 200
### 門檻
- 常溫
- 送愛免運, 0
- 優惠常溫, 1000
- 一般常溫, 2000
- 低溫
- 送愛免運, 0
- 一班低溫, 3000
### 測試商品
- [配送類型][配送門檻規則][商品單價]
1. 常溫_送愛_100元
2. 常溫_優惠_500元
3. 常溫_一般_100元
4. 常溫_一般_1000元
5. 低溫_送愛_100元
6. 低溫_一般_1000元
### 運費計算邏輯
#### 原本運費邏輯
以常溫為例,取得購物車內常溫商品配合之最高的免運門檻,
只要購物車內,常溫商品總金額大於門檻就常溫免運。
ex.
- 常溫_送愛_100元 * 5
- 常溫_優惠_500元
total: 1000元
因為總金額已達 優惠常溫, 1000 門檻,故常溫免運。
#### 更改後運費邏輯
以常溫為例,購物車內每項商品都要達到對應配合的免運門檻,才能免運,
只要有一項免運門檻未達標,就不算免運,
運費最多只計算一次(參考ex.2)。
ex.1
- 常溫_送愛_100元 * 5
- 常溫_優惠_500元
- 運費 150元
total: 1150元
常溫_送愛_100元 已達免運門檻,
常溫_優惠_500元 未達 優惠常溫, 1000 門檻,
所以運費 150 元。
ex.2
- 常溫_送愛_100元 * 5
- 常溫_優惠_500元
- 常溫_一般_1000元
- 運費 150元
total: 2150元
常溫_送愛_100元 已達免運門檻,
常溫_優惠_500元 未達 優惠常溫, 1000 門檻,
常溫_一般_1000元 未達 一般常溫, 2000 門檻,
但運費最多只計算一次,所以運費 150 元。
### 測試案例
## 現在的運費邏輯
#### 常溫
1. 常溫_送愛_100元, 運費: 0元
2. 常溫_送愛_100元 + 常溫_優惠_500元, 運費: 150元
3. 常溫_送愛_100元 + 常溫_優惠_500元 + 常溫_一般_1000元, 運費: 150元
4. 常溫_送愛_100元 + 常溫_優惠_500元*2 + 常溫_一般_1000元, 運費: 0元
5. 常溫_送愛_100元 + 常溫_優惠_500元*2 + 常溫_一般_1000元*2, 運費: 0元
6. 常溫_送愛_100元*15 + 常溫_優惠_500元, 運費: 0元
7. 常溫_送愛_100元*5 + 常溫_優惠_500元 + 常溫_一般_1000元, 運費: 0元
8. 常溫_送愛_100元*5 + 常溫_優惠_500元 + 常溫_一般_100元*5, 運費: 150元
9. 常溫_優惠_500元 + 常溫_一般_100元*15, 運費: 0元
10. 常溫_優惠_500元*2 + 常溫_一般_100元*10, 運費: 0元
#### 低溫
1. 低溫_送愛_100元, 運費: 0元
2. 低溫_送愛_100元 + 低溫_一般_1000元, 運費: 200元
3. 低溫_送愛_100元 + 低溫_一般_1000元*3, 運費: 0元
4. 低溫_送愛_100元*10 + 低溫_一般_1000元, 運費: 200元
5. 低溫_送愛_100元*10 + 低溫_一般_1000元*2, 運費: 0元
6. 低溫_送愛_100元*20 + 低溫_一般_1000元, 運費: 0元
#### 混合
1. 常溫_送愛_100元 + 低溫_送愛_100元, 運費: 0元
2. 常溫_優惠_500元 + 低溫_一般_1000元, 運費: 350元
3. 常溫_優惠_500元*2 + 低溫_一般_1000元, 運費: 200元
4. 常溫_一般_1000元 + 低溫_一般_1000元*3, 運費: 150元
5. 常溫_一般_100元*19 + 低溫_送愛_100元, 運費: 150元
6. 常溫_送愛_100元 + 常溫_一般_100元*19 + 低溫_送愛_100元, 運費: 0元
7. 常溫_一般_100元 + 常溫_優惠_500元 + 低溫_一般_1000元, 運費 350元
8. 常溫_一般_100元*15 + 常溫_優惠_500元 + 低溫_一般_1000元, 運費 200元
9. 常溫_一般_100元*15 + 常溫_優惠_500元 + 低溫_一般_1000元 + 低溫_送愛_100元*20, 運費 0元
## 更改後的運費邏輯
#### 常溫
1. 常溫_送愛_100元, 運費: 0元
2. 常溫_送愛_100元 + 常溫_優惠_500元, 運費: 150元
3. 常溫_送愛_100元 + 常溫_優惠_500元 + 常溫_一般_1000元, 運費: 150元
4. 常溫_送愛_100元 + 常溫_優惠_500元*2 + 常溫_一般_1000元, 運費: 150元 *
5. 常溫_送愛_100元 + 常溫_優惠_500元*2 + 常溫_一般_1000元*2, 運費: 0元
6. 常溫_送愛_100元*15 + 常溫_優惠_500元, 運費: 150元 *
7. 常溫_送愛_100元*5 + 常溫_優惠_500元 + 常溫_一般_1000元, 運費: 150元 *
8. 常溫_送愛_100元*5 + 常溫_優惠_500元 + 常溫_一般_100元*5, 運費: 150元
9. 常溫_優惠_500元 + 常溫_一般_100元*15, 運費: 150元 *
10. 常溫_優惠_500元*2 + 常溫_一般_100元*10, 運費: 150元 *
#### 低溫
1. 低溫_送愛_100元, 運費: 0元
2. 低溫_送愛_100元 + 低溫_一般_1000元, 運費: 200元
3. 低溫_送愛_100元 + 低溫_一般_1000元*3, 運費: 0元
4. 低溫_送愛_100元*10 + 低溫_一般_1000元, 運費: 200元
5. 低溫_送愛_100元*10 + 低溫_一般_1000元*2, 運費: 200元 *
6. 低溫_送愛_100元*20 + 低溫_一般_1000元, 運費: 200元 *
#### 混合
1. 常溫_送愛_100元 + 低溫_送愛_100元, 運費: 0元
2. 常溫_優惠_500元 + 低溫_一般_1000元, 運費: 350元
3. 常溫_優惠_500元*2 + 低溫_一般_1000元, 運費: 200元
4. 常溫_一般_1000元 + 低溫_一般_1000元*3, 運費: 150元
5. 常溫_一般_100元*19 + 低溫_送愛_100元, 運費: 150元
6. 常溫_送愛_100元 + 常溫_一般_100元*19 + 低溫_送愛_100元, 運費: 150元 *
7. 常溫_一般_100元 + 常溫_優惠_500元 + 低溫_一般_1000元, 運費 350元
8. 常溫_一般_100元*15 + 常溫_優惠_500元 + 低溫_一般_1000元, 運費 350元 *
9. 常溫_一般_100元*15 + 常溫_優惠_500元 + 低溫_一般_1000元 + 低溫_送愛_100元*20, 運費 350元 *