出品の販売額ロジック
`src/lib/transform.ts` の `priceConv` と完全に一致する計算式です。
シミュレーター
体積重量: 1200.00
発送重量: 1200.00
最終重量: 1500
基本送料: 1800
ピーク料金: 165
燃料サーチャージ: 540
送料合計: 2505
原価合計: 7505
販売額(USD): 101
計算手順
- 体積重量 = (縦 × 横 × 高さ) / 5
- 発送重量 = max(体積重量, 実重量)
- 最終重量 = ceil(発送重量 / 500) × 500
- 基本送料 = `priceList[weightList.indexOf(最終重量)]`(存在しない場合は 0)
- ピーク料金 = 110 × (最終重量 / 1000)
- 燃料サーチャージ = floor(基本送料 × fuelRatio)
- 送料合計 = 基本送料 + ピーク料金 + 燃料サーチャージ
- 原価合計 = 仕入原価 + 送料合計
- 販売額(USD) = floor((原価合計 / (1 - 利益率 - 0.2) / 為替レート) × 10) / 10
変数の意味
- 縦・横・高さ: 入力されたサイズ(cm)
- 実重量: 入力された重量(g)
- weightList / priceList: Google Sheets から読み込む送料テーブル
- fuelRatio: 燃料サーチャージ(例: 0.30)
- 利益率: 利益率(例: 0.25)
- 為替レート: USD/JPY のレート(例: 135)
- 0.2: 固定の手数料 20% として扱う
補足
販売額は小数第1位まで(0.1刻み)に切り捨てています。送料テーブルに 該当する重量がない場合は基本送料を 0 として扱います。