コンテンツにスキップ

在庫・受発注管理アプリ 仕様書(詳細版)

本書は「アプリ仕様(概要)」の詳細版です。各機能のデータ項目・計算ルール・処理の流れ・具体例・注意点まで、これ一つで確認できるようにまとめています。専門用語は言い換え・例を添えていますが、概要版より踏み込んだ内容です。

  • 概要版: まず全体像をつかむ用
  • 詳細版(本書): 数字のルールや各機能の中身まで確認する用(担当者・責任者向け)

読み方のコツ: 各章は「何をする → 使うデータ → ルール(式・判定)→ 具体例 → 注意点」の順で書いています。


1. システム構成(このアプリの作り)

部品 役割 たとえると
AppSheet 画面・操作(ノーコードの業務アプリ土台) 入口・操作パネル
Googleスプレッドシート データの保存場所(表) 倉庫の帳簿
GAS(プログラム) 複雑な計算・自動処理 裏方の計算係

流れ: 担当者が AppSheetの画面で操作 → データが スプレッドシートに保存 → 在庫増減や書類作成など複雑な処理は GASが自動実行 → 結果がスプレッドシート/画面に反映。

なぜGASを使うか: 「発注の残数だけ在庫に足す」「分納後の一括納品で二重計上しない」など、画面の自動処理(Bot)だけでは崩れやすい計算を、確実に一括処理するためです。


2. アプリのメニュー構成(画面ごとに何ができるか)

アプリの左メニューは次の構成です。各メニューで「何ができるか」を示します(各機能の詳しいルールは第4章以降を参照)。

2-1. 業務データ(日々の入力・確認)

メニュー 何ができるか
発注データ メーカーへの発注を登録・確認し、納品処理(一括/個別/分納)を行う(→第4・5章)
出荷データ お客様への出荷を登録・確認(移動中対応)(→第7章)
倉庫間移動データ 倉庫から倉庫への在庫移動を登録・確認(→第8章)
在庫一覧 商品×倉庫ごとの在庫(現在庫・有効在庫・移動中)を確認。棚卸調整もここから(→第6・9章)
入出庫一覧 すべての入出庫の履歴(入庫/出庫/返品/棚卸調整)を確認
棚卸データ 棚卸の記録を確認

2-2. マスタ一覧(台帳)

「マスタ一覧」から各台帳を開いて登録・編集できます。

マスタ 何のため
商品マスタ 取り扱う全商品(名前・JANコード・入数・価格・サイズ・素材など)
発注先情報マスタ 仕入先(メーカー)と支払条件(前払/通常・支払サイト)
発注元マスタ 自社側の発注窓口
得意先情報マスタ 売る相手(お客様)
出荷先情報マスタ 送り先(「移動中対象」の判定を含む)
倉庫情報マスタ 商品を置く倉庫
従業員マスタ 担当者(処理者の記録に使用)
金種マスタ 金額・通貨関連の区分
(原材料マスタ) 素材の日本語↔英語対応。貿易書類の自動英訳に内部利用(メニュー非表示)

2-3. 各集計データ一覧

「各集計データ一覧」から、目的別の集計・確認画面を開けます。

集計データ 何ができるか
発注集計データ(月別) 発注明細を発注月別に一覧。仕入先別・総合計の月次発注金額を出力(毎月20日に担当者へメール通知)
納品予定データ(月別) 発注明細を納品予定で月別集計。入荷スケジュールの把握(予定日があれば予定日を優先)
請求照合データ(月別) 発注先別に各月の納品合計件数と仕切金額(税別/税込)を集計。仕入先の請求金額との照合に使用
納品前商品データ一覧 「納品前」「一部納品」の明細を一覧。納品処理の対象を確認
出荷前商品データ一覧 「出荷前」「一部出荷」の出荷明細を一覧。出荷処理の対象を確認
移動中在庫データ一覧 輸送中(所有権移転前)の在庫を一覧。期末の「各倉庫資産=現在庫数+移動中数」確認に使用
棚卸データ一覧(月別) 倉庫別の在庫評価を月別に出力(在庫評価額を月末時点で記録)
取扱商品履歴(発注先別) 発注先別の過去取扱商品履歴(発注実績・在庫直接入力の両方。期間・メーカーで絞込)

2-4. 各帳票出力

「各帳票出力」から、必要な書類・データを作成できます(ボタンを押すとGASが生成し、スプレッドシート/PDFのURLを返します)。

帳票 何ができるか
受注表作成 受注内容の確認表を作成
発注書作成 メーカーへの発注書を作成
納品書作成 納品書を作成
請求書作成 請求書を作成
発注集計表作成 月次の発注集計を出力
納品予定表作成 納品予定の集計を出力
支払予定表作成 支払予定額を出力(→第12章)
在庫集計表作成 現在庫の集計を出力
棚卸集計表作成 棚卸の集計を出力
貿易資料抽出データ作成 貿易書類用の在庫データ(16項目・倉庫別)を出力(→第14章)

インボイス・パッキングリスト(PL)は、出荷データ(PL編集)から作成します。

2-5. 外部アプリ・その他

メニュー 何ができるか
外部アプリ > 納品書・請求書OCR照合 PDFをアップロードしてAIで照合(→第11章)
外部アプリ > 操作マニュアル 画面つきの操作マニュアル(別サイト)
アプリ情報/フィードバック アプリの情報表示/要望の送信

3. データ構成(何を記録しているか)

データは3種類に分かれます。

3-1. 台帳(マスタ)=くり返し使う基本情報

台帳 主キー 主な項目
商品マスタ 商品ID 商品名(日/英)・JANコード・総入数・袋入数・上代・仕切・仕切@CT・発売年月・サイズ・重量・原材料・カテゴリー・NG国・対象年齢
発注先情報マスタ 発注先ID 企業名・コード・連絡先・支払区分(前払/通常)支払サイト(翌月末/翌々月末/当月末)
発注元マスタ 発注元ID 発注元名
得意先情報マスタ 得意先ID 得意先名・連絡先
出荷先情報マスタ 出荷先ID 送り先名・移動中対象フラグ
倉庫情報マスタ 倉庫ID 倉庫名・企業名
従業員マスタ 従業員ID 氏名・メール
原材料マスタ 原材料ID 日本語名・英語表記

3-2. 日々の記録(トランザクション)=取引のたびに増える

テーブル 主キー 役割
発注管理データ(親) 発注ID 1件の発注(ステータス・発注日・納品予定月・発注点数/納品点数)
明細テーブル(子) 明細ID 発注の商品ごとの行(数量・金額・納品数・納品完了・納品日)
出荷管理テーブル(親) 出荷ID 1件の出荷(注文日・出荷日・出荷点数)
出荷明細テーブル(子) 出荷明細ID 出荷の商品ごとの行(出荷数・出荷完了・在庫反映済み)
在庫移動管理/明細 移動ID/移動明細ID 倉庫間の移動(出荷→入荷)
在庫管理テーブル 在庫ID 在庫のコア(現在庫数・出荷予定数・有効在庫数・移動中数・在庫評価額)
入出庫テーブル 入出庫ID すべての入出庫の履歴ログ(入庫/出庫/返品/棚卸調整)
棚卸/棚卸履歴 棚卸ID 棚卸の記録

3-3. 集計・管理テーブル

帳票作成や進捗管理の「作業台」。例:支払予定管理テーブル・帳票出力管理テーブル・各種集計管理。ボタンを押すとGASが対象データを集計し、結果のスプレッドシートを作ってURLを書き戻す、という使い方をします。

3-4. テーブルの関係(親子・参照)

発注管理データ(親) 1 ─── N 明細テーブル(子) ── 参照 → 商品マスタ / 発注先 / 倉庫 …
出荷管理テーブル(親) 1 ── N 出荷明細テーブル(子) ── 参照 → 在庫管理 / 出荷先 …
在庫管理テーブル ←── 納品・出荷・返品・棚卸で増減 ──→ 入出庫テーブル(履歴)

4. 発注(メーカーへ注文する)

  • 何をする: メーカー(発注先)へ、商品ごとに数量(カートン)を注文。発注書を出力。
  • 使うデータ: 発注管理データ(親)+明細テーブル(子)。
  • ルール:
  • 親のステータス = 納品前 / 一部納品 / 納品完了(納品の進み具合で自動遷移)。
  • 一覧では「納品前」と「一部納品」を1グループにまとめて表示(表示用ステータスという表示専用の列)。
  • 発注点数 = 明細件数、納品点数 = 完了した明細数。
  • 具体例: 「ピーナッツクラブ 5月発注」の中に「お風呂大好き 2箱」「耳ワンこ 2箱」…。
  • 注意点: 発注先IDは正しいIDに変換してから取り込む。名前のまま取り込むと、金額集計でメーカー名が空欄になる等の不具合(過去に発生・恒久対応済み)。

5. 納品・入荷(商品が届く → 在庫が増える)

  • 何をする: 届いた商品を在庫に反映(在庫が増える)。3モード(一括/個別/分納)。
  • 使うデータ: 明細テーブル(納品数・納品完了・納品日)/在庫管理テーブル(現在庫数)/入出庫テーブル(入庫履歴)。
  • ルール(自動計算):
  • 対象: 一括=発注の未完了の全明細/個別・分納=指定した1明細。
  • 残数 = 発注数 −(キャンセル分)−(納品済み数)。この残数を超える納品はできない(過剰入荷を構造的に防止)。
  • 納品する数: 一括・個別=残数全部/分納=入力した一部(残数でクランプ)。
  • 在庫増 = 納品カートン数 × 総入数(個)。
  • 納品完了判定: その明細の納品数が「発注数 − キャンセル」に達したら「完了」、途中なら「一部納品」。
  • 納品日 = 実際に届いた日。優先順: 明細に既に入っていればそれを保持 →(一括のみ)発注ヘッダで入力した納品日 → 納品予定日 → 本日。
  • 入庫履歴(入出庫テーブル)を1件追加(区分=入庫)。担当者も記録。
  • 具体例: 発注2箱のうち先に1箱届いた→分納で1箱納品(在庫+150個、明細=一部納品)。残り1箱が後日→完了。
  • 注意点(重要): 納品日が実際とズレると支払予定額の支払月がズレます(第12章)。以前は「処理日」が自動で入る不具合がありましたが、実納品日を入力・保持するよう修正済み
  • 入荷取込: ハートランド社等の入荷情報(Excel)を取り込んで在庫反映する仕組みもあり。

6. 在庫管理(在庫のコア)

  • 何をする: 在庫数を「商品 × 倉庫 × 発売年月 × 発注元」の組合せごとに管理。
  • 主な数字:
数字 意味 計算・増減
現在庫数 今ある数 納品で増、出荷・メーカー返品・棚卸減で減
出荷予定数 出す予定の数 受注で積む
有効在庫数 自由に使える数 現在庫数 − 出荷予定数
移動中数 送っている途中の数 海外出荷で +、入庫完了で −
在庫評価額 金額換算 現在庫数 × 仕切
  • ルール: 有効在庫数はGASが在庫更新のたびに明示的に計算し直します(プログラムが直接書き込むと自動計算式が働かないため)。
  • 注意点: 同じ商品でも倉庫が違えば別在庫として数えます。期末の自社資産 = 現在庫数 + 移動中数。

7. 出荷(お客様へ送る)

  • 何をする: 受注→出荷。登録すると在庫が減る。
  • 使うデータ: 出荷管理(親)+出荷明細(子)/在庫管理(現在庫数・移動中数)/入出庫(出庫履歴)。
  • ルール:
  • 単位: ケース/袋/個から選択。在庫増減は「個」ベース(総入数・袋入数で換算)。
  • 通常出荷: 現在庫数 −X。
  • 移動中対象(海外法人など・出荷先マスタのフラグで判定): 出荷時に 現在庫数 −X/移動中数 +X、入庫完了で 移動中数 −X(送り先は在庫管理外)。
  • 在庫反映済み フラグで二重反映を防止。取消(未完了へ戻す)は出荷明細IDで出庫を正確に削除。
  • 具体例: たまてこ韓国へ100個出荷→現在庫−100・移動中+100。到着(入庫完了)→移動中−100。
  • 注意点: 在庫がマイナスになる出荷はエラーで停止。

8. 倉庫間移動

  • 国内⇄海外など、倉庫から倉庫へ在庫を移す処理(移動管理+明細)。
  • 移動元から出て(出荷)、移動先に入る(入荷)まで、途中経過を管理。数量はケース/個で扱う。

9. 棚卸調整(実数に合わせる)

  • 何をする: 実際に数えた在庫(実在数)にアプリを合わせる。返品でもキャンセルでもない補正。
  • ルール: 差分 = 実在数 − 現在庫数
  • 差分 > 0 → 現在庫数を増やし「棚卸調整入庫」を履歴に記録。
  • 差分 < 0 → 現在庫数を減らし「棚卸調整出庫」を記録。
  • 差分 = 0 → 何もしない。
  • 有効在庫数も再計算。担当者・理由を記録。単位はカートン/袋/個(自動換算)。
  • 具体例: 現在庫300・実在数250 → 差−50 →「棚卸調整出庫50個」・現在庫250。
  • 注意点: 担当者は必須(誰が調整したかを残す)。

10. 返品・キャンセル

  • 何をする: 返品・取消を記録し在庫を調整。仕入数・返品数の内訳を保持(例: 仕入100 − 返品10 = 正味90)。
  • 6パターン:
種類 個別/一括 在庫 履歴
メーカー返品 両方 減る 返品出庫
販売先返品 両方 増える 返品入庫
発注キャンセル 両方 動かない(数量減) なし
  • 一括処理はまとめて実行し、結果(成功/エラー)を行に書き戻して可視化。在庫不足時は事前検証で全体中止(安全弁)。
  • 注意点: 海外(在庫管理外への販売)の返品は別要件で対応。移動中/入庫完了の販売先返品は非対応(ボタンが出ない)。

11. 納品書・請求書 OCR照合

  • 何をする: 紙・PDFの納品書/請求書を読み取り、アプリの発注データと突き合わせて正しさを確認。
  • 仕組み:
  • 読み取り(OCR): PDFをアップロード → AIが日付・商品・数量・金額などを構造化して抽出。1PDFに複数伝票があれば自動分離。受領書セクションは自動除外。
  • 候補マッチング: 抽出伝票に対し、発注先・日付・金額の近さをスコア化して対応する発注候補を提示。手動検索での追加も可。
  • 照合ステータス(3段階): 明細ごとに 未照合/部分照合/照合済。分納は残数量ベースで累計。
  • 複数発注にまたがる納品書にも対応(候補の複数選択・明細統合)。
  • 支払突合: 納品書↔請求書の2者を、取引先ごと・全体合計で差異表示。請求書は1PDF=1レコードで管理。
  • 書き戻し: 照合結果を発注データへ反映。履歴の読み取り専用ビューで確認、一括やり直しも可能。
  • 注意点: 先方アカウントでも動くよう認証方式を調整済み。運用は「1PDF=1仕入先」でスキャン。

12. 支払予定額(いつ・いくら払うか)

  • 何をする: ある支払月に、メーカーへ合計いくら払う見込みかを算出。
  • ルール(3区分):
区分 対象 支払月の基準
確定済み 納品完了の明細 実際の納品日 + 支払サイト
納品前予定 納品前の明細 納品予定 + 支払サイト
前払 前払い取引先 発注月(サイト無視)
  • 支払サイトのずれ: 当月末=0 / 翌月末=+1か月 / 翌々月末=+2か月。支払月 = 基準月 + ずれ
  • 仕切未入力の明細は金額0で埋もれないよう「要確認」として件数可視化。
  • キャンセル明細は対象外。
  • 具体例: 5月納品完了・翌月末 → 6月末支払。前払い先を6月発注 → 6月支払。
  • 注意点(最重要): 計算は「納品日」を使う。納品日が実際とズレると支払月がズレる
  • 実例: 5月出荷の商品を、アプリの納品処理を6/6に行うと納品日=6/6となり、本来6月末払いが7月末払いに見えた(不具合として発見)。対策として実納品日を保持する修正確認用リストを用意済み。

13. 前払い(先払い)照合

  • 前払い取引先(発注先マスタの支払区分=前払)は、在庫に波及させず、発注月に支払い計上。
  • 前払い請求書は商品内訳ありの様式で照合(通常の納品書と同形式)。商品が実際に届いたら通常の納品処理で在庫計上。

14. 帳票(書類の出力)

書類 入力 出力の主な内容
受注表 受注データ 注文内容の確認表
発注書 発注データ メーカーへの発注書
納品書・請求書 出荷・受注 取引の証憑
インボイス・パッキングリスト 出荷・商品 貿易書類(原材料を自動英訳)
貿易資料(現在在庫) 有効在庫>0の在庫 商品名(英)・素材(英)・カテゴリー・ケース入数・販売価格・箱サイズ・重量・発売予定月・納品日・メーカー・上代・袋入数・現在庫(箱/袋)・仕入価格・輸出禁止国(16項目・倉庫別タブ
現在庫集計 在庫 今の在庫一覧
メーカー別 取扱商品履歴 明細+在庫 メーカーごとの過去取扱全商品(26項目・個別/複数/一括・期間絞込)
支払予定額 明細+支払条件 3区分の集計(第12章)

15. 数量・単位の仕組み

  • カートン(箱/C/S)=仕入れ基本単位/総入数=1カートンの個数/袋=1カートンの袋数。
  • 換算: 個 = カートン × 総入数袋 → 個 = 袋数 × 袋入数
  • 例: 150個入りを2カートン → 300個。
  • 在庫増減・照合は「個」基準。入力はカートン/袋/個のいずれでも可。

16. 業務ルール・安全設計・主な修正履歴

業務ルール(要点) - 有効在庫数 = 現在庫数 − 出荷予定数。 - 納品日は「実際に届いた日」を入れる(支払予定額が依存)。 - 在庫は「商品 × 倉庫 × 発売年月 × 発注元」ごと。 - 発注先IDは正しいIDに変換してから取り込む。 - 海外向けは「移動中」で所有権移転を管理。前払いは在庫波及なし・発注月計上。

安全設計 - 在庫がマイナスになる操作(返品・出荷)はエラーで停止。 - 一括処理は在庫不足なら全体中止+結果を可視化。 - 納品は残数でクランプ(過剰入荷を防止)。二重反映はフラグで防止。

主な修正履歴(品質改善の記録) - 発注ステータスが「一部納品」で止まる不具合を修正。 - 分納後に一括納品すると過剰計上する不具合を修正。 - 納品日が「処理日」で上書きされ支払月がズレる不具合を修正(実納品日を保持)。 - 貿易資料の対象年齢が全て「x」になる不具合を修正(項目を削除)。 - 発注先IDが日本語のまま取り込まれる不具合の恒久対応。


17. やさしい用語辞典

言葉 言い換え
マスタ くり返し使う情報の台帳
トランザクション 日々の取引の記録
明細 注文・出荷の中の商品ごとの行
発注先/得意先/出荷先 仕入先/売る相手/送り先
現在庫数/有効在庫数 今ある数/自由に使える数(今ある数−出荷予定)
出荷予定数/移動中 出す予定の数/送っている途中
納品・入荷/出荷 届く(在庫増)/送り出す(在庫減)
分納 注文の一部だけ先に届くこと
棚卸 実数を数え直して合わせること
照合(OCR照合) 納品書・請求書を読み取り正しいか突き合わせる
支払サイト 支払いの期日ルール(翌月末など)
上代/仕切/仕切@CT 定価/卸値/1箱あたりの卸値
総入数/袋入数 1箱の個数/1袋の個数
JANコード 商品のバーコード番号
GAS/AppSheet 裏側の自動計算プログラム/アプリの土台

付録:関連資料

  • 操作マニュアル(画面つき): 別サイトの操作マニュアル(返品・キャンセル/納品書・請求書OCR照合/棚卸・在庫調整)をご覧ください。
  • 各機能の技術的な設計資料(データベース設計・各改修の詳細など)は、開発担当が社内で管理しています。本仕様書で業務上必要な内容は網羅していますので、通常はこちらをご参照ください。より深い技術情報が必要な場合は開発担当までご依頼ください。