Kon's DX Lab - Case Study

Day 29|ロジレスAPI × Streamlitで「EC物流分析ツール」の土台を構築!

Published on 2025-04-30

🔬 Case Study Summary
Problem

(ここに課題を記述)

Result

(ここに具体的な成果を記述)


Tech & Process

(ここに採用技術とプロセスを記述) コードを詳しく見る »

こんにちは、こんです🦊
今日はロジレスAPIを使った物流データ活用の中でも、「分析」に本格的に踏み込むための準備を進めました。


🧪 実験のきっかけ:せっかくなら“ツール化”したい

昨日までに、APIから大量の受注・在庫データを取得する方法は整ってきました。
ただ、毎回コードを書いて動かすのは面倒だし、チームで共有もしづらい……

「分析や集計を、もっと手軽に・UIでできたら便利なのに!」
ということで、今日はStreamlitベースの物流分析ツールの設計と初期構築を行いました。


💡 今日の進捗:Streamlitで使い#やすいUIと仕組みを構築!


🔧 工夫ポイント

## ディレクトリ構成
logistics_insights/
├── analyzers/
│   ├── rotation_rate.py          ← 回転率・回転期間計算
│   └── abc_analysis.py           ← ABC構成比計算
├── config/
│   ├── .env   
│   ├── .gitignore   
│   ├── presets.json
│   └── tokens.json               ← MERCHANT_ID等(※GitHub公開時は .gitignore)
├── data/
│   ├── processed/                ← 集計済みデータ(.csvなど)
│   └── raw/                      ← API取得データ(.json)
├── fetchers/
│   └── fetch_data.py             ← API取得共通CLIスクリプト
├── pages/                        ← UIページ(各タブ)
│   ├── dashboard_abc.py          ← 💰 ABC分析ダッシュボード
│   ├── dashboard_rotation.py     ← 📊 回転率ダッシュボード
│   ├── fetch_data_ui.py          ← 🔄 API取得画面(今あるfetchDataUI)
│   ├── preprocess_inventory.py 
│   └── settings_presets.py       ← ⚙ プリセット保存・設定
├── utils/
│   ├── __init__.py
│   ├── auth.py                   ← トークン管理
│   ├── auth_cli.py 
│   ├── env_loader.py
│   ├── form_helper.py
│   ├── inventory_merger.py
│   ├── paths.py                  ← 保存先ディレクトリ・命名規則管理
│   └── presets.py                ← プリセット保存・読込管理
├── __init__.py
└── streamlit_app.py              ← ナビゲーション(セッション管理・ログインもここ)
  1. 分析に進む前に「土台」を整える

    • fetch_data_ui.py / form_helpers.py / settings_presets.py などの構成を整理し、今後の拡張性も意識。

  2. Streamlit UIで完結する構成に

    • 非エンジニアの現場メンバーでも使えるよう、全てのデータ取得・プリセット・ログ表示をワンクリックで可能に。

  3. API取得とデータ加工の責任分離

    • データ取得は fetch_data.py に任せ、分析用マージ処理は inventory_merger.py + preprocess_inventory.py に分離。
      今後の分析コードも同じように分離しやすくなる想定。


😢 反省点:今日は分析まで到達できなかった…

本当は「商品別の回転率分析」に取り掛かりたかったのですが、
UIとデータ取得周りを整備するだけで結構なボリュームになってしまいました。

でも、ここで丁寧に土台を作ったおかげで、
明日以降、分析パートに一気に集中できそうな環境が整いました!


明日以降のチャレンジ予定

  • 📈 sales_orders × inventory の結合 → 商品別回転率の計算

  • 🅰 ランク付け(A/B/C)による在庫重要度の可視化

  • 📊 Streamlitダッシュボードでのデータフィルター&アラート表示

  • 📁 データエクスポートやLooker Studio連携も検討


今日のまとめ

「ちゃんと動くUI」があると、周りにも共有しやすくなり、改善スピードも上がる。
分析は“チームで活かす”ことを見据えて、土台から丁寧に作っていきたい。

それでは、また次の実験で🦊


ハッシュタグ案

#物流分析 #ロジレスAPI #DX推進 #業務効率化 #Streamlit #Python #在庫可視化 #業務改善