😀

え、まだExcelで在庫管理してるの?PostgreSQL+ServBayで作るWMSデータ中枢!

に公開

🚚 WMSって、結局Excelでいいんじゃないの?

…そう思っていた時期が私にもありました。

でも、SKUが増えてくると、こうなりませんか?

  • 「え、A倉庫にこの商品、あと何個残ってたっけ?」
  • 「この受注、出荷済みになってる?まだ?」
  • 「ERPと在庫が合わないのはなんで!?」

そのたびにExcelを開いてCtrl+Fして、タブを切り替えて、気がついたら昼休みが終わってた…なんて日常、卒業しませんか?

この記事では、PostgreSQL × Flask × ServBay の組み合わせで、
誰でもすぐに使える「ミニWMS API」を作る方法を紹介します。

しかも全部ローカル開発環境でOK。
Dockerの学習コストも、クラウドの月額料金もいりません。


🧱 ステップ①:まずは「データ金庫」をPostgreSQLで作ろう

在庫や受注のデータ、Excelじゃなくてデータベースに入れましょう。
PostgreSQLはオープンソース&高機能、WMSみたいな中小規模の業務系データにはぴったりです。

-- 在庫テーブル
CREATE TABLE stocks (
  id SERIAL PRIMARY KEY,
  sku VARCHAR(50) UNIQUE NOT NULL,
  quantity INTEGER NOT NULL,
  location VARCHAR(50) NOT NULL
);

-- 受注テーブル
CREATE TABLE orders (
  id SERIAL PRIMARY KEY,
  order_number VARCHAR(50) UNIQUE NOT NULL,
  sku VARCHAR(50) NOT NULL,
  quantity INTEGER NOT NULL,
  status VARCHAR(20) NOT NULL
);

SKU単位で在庫を管理し、受注データとひも付けられる構成にしています。


🔗 ステップ②:Python FlaskでAPIを作って、在庫・受注を外部連携!

WMSやERPと連携するには、データを外に出せるAPIが必要です。

ここではPythonの軽量フレームワークFlaskSQLAlchemyを使って、RESTful APIを爆速構築します。

@app.route('/stocks', methods=['GET'])
def get_stocks():
    stocks = Stock.query.all()
    return jsonify([{'sku': s.sku, 'quantity': s.quantity, 'location': s.location} for s in stocks])

たったこれだけで、/stocks を叩けばJSONで在庫一覧が返ってきます。
ERPやTMSからもアクセスできるようになれば、人手のExcel確認とはおさらばできますね。


💻 ステップ③:ServBayで「開発環境の壁」を突破しよう

「でも、PostgreSQLとかFlaskとか、ローカルで動かすの面倒くさそう…」

そんなあなたにおすすめなのが、ServBay

macOS向けに作られたローカル開発環境ツールで、PostgreSQL・PHP・Redis・Nginxなどが全部入り。
GUIから一発起動で、DockerやHomebrewの泥沼とは無縁です。

✅ ServBayでやること:

  1. ServBayを起動
  2. PostgreSQLをワンクリックで起動
  3. DBeaverなどでwms_dbデータベース作成
  4. Flaskアプリを起動
  5. curl http://localhost:5000/stocksでAPI動作確認

…これだけ!

🤔 Dockerと何が違うの?

項目 Docker ServBay
初期設定 複雑、学習コスト高 GUIでワンクリック起動
ポート競合 よくある 自動割り当てでストレスフリー
複数サービス管理 docker-compose必要 ServBay内で一括管理
初学者のとっつきやすさ やや難 直感的で簡単

🧩 おわりに:まずは一枚の在庫表から始めよう

WMSやERPの導入、AIやRPAの話の前に、まずは「構造化された在庫データ」が必要です。

  • PostgreSQL:信頼性のあるデータストア
  • Flask:軽量で柔軟なAPI構築
  • ServBay:ローカル開発のストレスをゼロに

この3つを組み合わせれば、あなたの「脱Excel」が一歩近づきます。

📌 次回は、「SQLでの絞り込み検索やページング処理」など、APIの実用性をさらに高めるテクニックを紹介予定です!


🔖 リンク集(補足資料)

Discussion