ユーザーマニュアル
ヘルプセンター/ユーザーマニュアル/在庫:照会、調整、棚卸、振替

在庫:照会、調整、棚卸、振替

最終更新 2026-10-13

デスクトップ/モバイルでの在庫照会、直接調整、循環棚卸(ABC自動棚卸含む)、倉庫間振替。

WMS在庫は追記専用台帳(wms_inventory_ledger)を唯一の真実の源とします:すべての在庫異動は正負のqty_changeを持つ台帳行を書き、残高を直接編集しません。残高プロジェクションはシステムが同期維持し、台帳はDB層でUPDATE/DELETEを禁止しています。

在庫照会#

  • デスクトップ WMS → Inventory:明細ビュー(SKU/ロケーション/ステータス/ロット/シリアル/チャネル等で絞込)と集計ビュー(商品+ステータス+種別で数量集計)。
  • モバイル在庫ページ:SKU/製品名で検索、カードにSKU/品名/ロケーション/数量を表示(照会専用)。
  • ロット在庫は有効期限の昇順(FEFO)で表示。期限アラート(expiry-alerts?days=90)はavailable・qty>0・期限≤今日+daysのロットをdays_to_expiry付きで一覧表示。

在庫調整(直接調整モード)#

在庫調整は台帳に直接記帳します——「調整伝票」のステートマシンや承認フローはありません。現在の入口はAPI(POST /api/wms/inventory/adjust)のみで、デスクトップの専用入力画面は未提供、wms.inventory_adjust権限が明示的に必要です。

  1. 必須:warehouse_id / location_id / item_id / reason_code(damage/lost/found等の自由文、原因コードのマスターなし)。
  2. 数量は二択:qty_after(目標値へ調整)またはqty_delta(増減、非ゼロ)。両方/両方なしは検証エラー、qty_afterでdelta=0なら{adjusted:false}を返し台帳に書きません。
  3. ステータスはavailable / hold / damagedのみ(既定available)。負の調整は先に有効在庫を検証(不足でWMS_STOCK_001)、棚卸ロック中のロケーションはLOCATION_LOCKEDで拒否。
  4. transaction_type=adjustの台帳行を1件記帳、qty_change=delta(正=増加、負=減少)、reason_codeは必須。

棚卸#

  1. タスク作成(デスクトップ/API):scopeはcycle(循環棚卸)/ full(在庫ありのロケーション×商品から自動生成、上限5000行)/ spot(抜取)の3択、count_typeはblind/open(既定open)。作成時に残高からsystem_qtyスナップショットを記録、未完了棚卸タスクのロケーションと重複すると作成拒否(ロックの発動点)。
  2. モバイルで実行:ロケーション/製品ごとに行に実棚数を入力→enter-countで1行ずつ送信(棚卸済行はシステム数/実棚数/差異を表示、再入力でrecounted)。タスクはpending/assigned→in_progress。
  3. デスクトップで承認:approveで承認(counted/recounted→approved)、却下でpendingに戻し(実棚数・差異をクリア)再棚卸。
  4. 転記:postはapproved行のみ処理(差異ゼロの行はスキップ)。棚卸増はadjust(reason_code=found)、棚卸減はadjust(reason_code=lost)、reference_type=count_task。全approved行の処理完了でタスク完了、ロック自動解除。
  5. ABC自動棚卸:POST /api/wms/count-tasks/abcで商品のabc_classの棚卸間隔到来時にcycleタスクを自動生成。既定A=7日/B=30日/C=90日、倉庫別(abc_interval_a/b/c_days)や呼出時(interval_days)で上書き可。cron/手動で起動。

倉庫間振替#

振替は伝票式フロー(起票→提出→承認→出庫→入庫)で、現在はAPIのみ(デスクトップの伝票画面は未提供)。番号形式TRF-YYYYMMDD-XXXX。同一倉庫内のロケーション間移動も可(ロケーションが異なればOK)。

  1. 作成→draft、submit→submitted。
  2. approve:承認→approved(各行の出元ロケーション有効在庫を検証、不足でWMS_STOCK_001)、却下→rejected。
  3. ship→in_transit:有効在庫を再検証→transfer両建てを記帳(出元ロケーションavailable −数量 / 同ロケーションin_transit +数量)。
  4. receive→completed:出元ロケーションin_transit −数量 / 移動先ロケーションavailable +数量、明細行pending→done。cancelはdraft/submitted/approvedのみ可、in_transitは入荷完了でのみ終了。

在庫ステータス#

available→出庫/ピック引当でallocated→出荷でshipped。品質/例外保留はhold、破損はdamaged、振替出庫後は出元ロケーションがin_transit。調整で指定可能なのはavailable/hold/damagedのみ。

棚卸ロック:未完了の棚卸タスク対象ロケーションはロックされ、調整/移動/補充格納はLOCATION_LOCKEDで拒否されます。タスク完了/キャンセルで自動解除。