こんにちは、こんです。
今回は「毎日の在庫状況をもっと見える化できないかな?」と思って、
ロジレスAPIとスプレッドシートを使ってみた実験記録を残しておきます。
実験のきっかけ:在庫推移が把握しづらい困りごと
こんなこと、起きていませんか?
毎日の在庫の増減が、パッと見でわからない
WMS連携後の在庫反映タイミングが見えづらい
売れる在庫(フリー在庫)と引当在庫のバランスが把握しにくい
「なんとかしたいな」と思って、試してみることにしました。
作ってみたもの(システムの概要)
今回はこんな仕組みを作ってみました:
✅ LOGILESS APIから在庫データを自動取得
✅ 毎日20:30以降にスプレッドシートへスナップショット保存
✅ 総SKU数、総PCS数、フリー率・引当率を自動計算
✅ 折れ線グラフで日別推移を可視化
コードは書かず、GASとChatGPTのサポートで作り上げました。
実感したメリット
使ってみて感じた「これは良かったな〜」という点です:
1. 在庫状況が一目でわかるようになった
日別スナップショットを可視化したことで、
「いつどれだけ在庫が動いたか」が直感的にわかるようになりました。
2. 負荷をかけずに日次更新できる
トリガー設定をしたことで、毎日自動で最新情報が記録されるため、
人手をかけずに運用できています。
3. 異常検知のきっかけになる
急激な在庫増減がグラフで見えるため、
「このSKUで何か起きてる?」と気づくきっかけにもなります。
実際の画面イメージ
【在庫シート】:日付ごとの在庫データ記録
【グラフシート】:SKU数推移・PCS数推移・フリー率・引当率の可視化
技術構成と工夫ポイント
使用技術
Google Apps Script(GAS)
→ ロジレスAPIとの連携・データ加工・トリガー設定Google スプレッドシート
→ 日次在庫スナップショットの保存、グラフによる可視化ロジレスAPI(logical_inventory_summariesエンドポイント)
→ 保管中在庫・引当在庫をAPI経由で取得
主な工夫ポイント
1. API大量データに対応するためのフィルタリング
ロジレスの在庫は8万件超という大量データでしたが、
「フリー在庫があるものだけ」「引当在庫があるものだけ」を条件付きで取得することで、
実際の取得件数を2万件程度に絞り込み、大幅にパフォーマンスを向上させました。
(min_free=1とmin_allocated=1パラメータを活用)
2. 自動リトライ・エラー耐性
1回あたり最大100件までしか取れないAPI仕様に合わせ、
ページング(page=1, 2, 3...)で全件取得しながら、
エラー時にも中断しないよう例外ハンドリングを組み込みました。
3. 日次トリガー自動実行
Google Apps Scriptの時間主導型トリガーを設定し、
毎日20:45頃(WMS更新完了後)に自動でスナップショットを取得するように設計しました。
4. データとグラフを完全自動同期
データ保存後、スプレッドシート上の折れ線グラフも同時に再生成。
手動でグラフ更新をする手間をゼロにしました。
実際に書いたGASのざっくり構成
fetchInventorySnapshotV2()
└ fetchInventoryByConditionV2()
├─ min_free=1のデータ取得
└─ min_allocated=1のデータ取得
└ mergeInventoryData()
└ スナップショット保存
createInventoryGraphs()
└ InventorySnapshotシートからデータ取得
└ 折れ線グラフ自動作成(4種)
今後:グラフの自動更新をさらに最適化します!
今回は「在庫推移の可視化」まで完成させましたが、
次回はさらに便利にするために、
スナップショット取得とグラフ作成の完全自動化
さらに見やすいダッシュボードレイアウトづくり
にチャレンジしていきます!
「これ、自分もできそうかも」と思ってもらえたらうれしいです🦊
まとめ:まずは小さく試してみるのがいい
今回の実験は、「日次の在庫変動を見える化する」という小さな目標でしたが、
やってみるとデータの蓄積・見える化が本当に強力な武器になると実感しました。
いきなり完璧を目指さず、まずは小さく試して、
日々改善していくスタイルがやっぱり合ってるな〜と思っています。
それでは、また次の実験で!🦊
#ノーコード #業務改善 #GASで業務効率化 #ロジレスAPI #スプレッドシート活用
✨補足
今回はGASとロジレスAPIの組み合わせですが、応用すれば他のECプラットフォーム在庫も同様に可視化できそうです。
「毎日の小さな変化を記録する」って本当に大事だなと改めて感じた1日でした!