出品の販売額ロジック

`src/lib/transform.ts` の `priceConv` と完全に一致する計算式です。

シミュレーター

体積重量: 1200.00
発送重量: 1200.00
最終重量: 1500
基本送料: 1800
ピーク料金: 165
燃料サーチャージ: 540
送料合計: 2505
原価合計: 7505
販売額(USD): 101

計算手順

  1. 体積重量 = (縦 × 横 × 高さ) / 5
  2. 発送重量 = max(体積重量, 実重量)
  3. 最終重量 = ceil(発送重量 / 500) × 500
  4. 基本送料 = `priceList[weightList.indexOf(最終重量)]`(存在しない場合は 0)
  5. ピーク料金 = 110 × (最終重量 / 1000)
  6. 燃料サーチャージ = floor(基本送料 × fuelRatio)
  7. 送料合計 = 基本送料 + ピーク料金 + 燃料サーチャージ
  8. 原価合計 = 仕入原価 + 送料合計
  9. 販売額(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 として扱います。