旧式は「matched行をリバースして相殺コピー」で表現していたが、新式Bでは 販売行と返金行を独立した会計事実として計上する。 返金行は「返金日に発生した増分」だけを表現し、CSV由来の手数料還付・Payoneer還付・在庫戻し価値・返送料を 組み合わせて粗利を算出する。
actual_shipping_jpy は販売行と返金行で意味が変わる。販売行=バイヤーへの発送料、
返金行=バイヤーからの返送料。1つの列で「その取引の発送費」を統一管理する設計(2026-05-01 確定)。
refund.jpy_amount をそのまま使うため、CSVが正しい金額を持ってくる前提で
自動的に正しい粗利が算出される(要・実ケース発生時の動作確認)。
| refund_item_flowNEW | varchar(30) | buyer_keeps / returned / cancel_before_ship |
| refund_amount_typeNEW | varchar(20) | full / partial(将来拡張用) |
| item_returned_to_inventoryNEW | boolean | 商品が在庫戻しされたか(returned時 true) |
| returned_item_conditionNEW | varchar(20) | good / damaged / junk(将来UI追加予定) |
| returned_inventory_value_jpyNEW | numeric | 在庫戻し価値(returned時=原価、buyer_keeps時=0) |
| refund_typeNEW | varchar(40) | Refund/Return/Cancel ID 種別の保存 |
| is_seller_protection_deductionNEW | boolean | セラープロテクション控除フラグ(将来用) |
| gp_formula_versionNEW | varchar(30) | old / new_b(粗利式バージョン管理) |
| is_accounting_lockedNEW | boolean | 月次確定後の編集ロック(将来UI追加) |
| accounting_exported_atNEW | timestamp | MFクラウド送信日時 |
| refund_processed_atNEW | timestamp | 返金処理日時(refund_item_flow更新時) |
| refund_noteNEW | text | 返金関連の手動メモ |
| actual_shipping_jpy | numeric | 取引の運送費(販売行=発送料、返金行=返送料) |
| cost_jpy | numeric | 仕入原価。unmatched行は手動入力可(直書き設計) |
matched_cancel と対応する refund 行はeBay税還付がともにゼロ。
仕入税還付は cost_jpy が正負で対称(販売行=+10,450 / 返金行=−10,450)なので、
還付込み粗利も完全相殺される。
Refund ID / Return ID(new_b)の返金行で表示。トリガーボタンをクリックすると共有ポップアップが開く。
「出荷前キャンセル」はCSV取込時に自動セット。UI選択肢には出ない。
matched_cancel に対応する返金行は固定グレーラベル表示・操作不可。
CSV取込時に refund_item_flow='cancel_before_ship' が自動でDB保存される。
販売行・返金行の両方で「速報送料」欄として表示。値の更新で粗利が即時再計算される。
DB列は1つ actual_shipping_jpy で統一管理。
unmatched行(ポケモンカードなど単発雑貨)は仕入原価セルをクリックでインライン入力可能。
仕入消費税還付は適格扱いで自動計算。¥0 入力も「入力済み」として扱う。
| エンドポイント | 用途 | 主な処理 |
|---|---|---|
| POST /ebay/refund/update | 返金行の「商品の動き」更新 | refund_item_flow保存・在庫戻し処理・粗利再計算 |
| POST /ebay/update-shipping | 速報送料(actual_shipping_jpy)更新 | 販売行/返金行(new_b)を判定して粗利再計算 |
| POST /ebay/update-cost | SKU未存在行の仕入原価手動入力 | cost_jpyを直書き、calc_gross_profitで粗利再計算 |
| POST /ebay/return_stock | 旧式の在庫戻しボタン(後方互換) | gp_formula_version='old'のみ対応、新式Bでは使われない |
refund_item_flow='cancel_before_ship' を自動セット。
全レコードに gp_formula_version='new_b' を刻印。
unmatched行はSKU未取得のため cost_jpy=NULL のまま保存。
is_accounting_locked=true でその月の編集を禁止。MFクラウド送信前の確定処理。
accounting_exported_at に送信日時を記録。