📦

Excel地獄から卒業!PostgreSQLとServBayでつくる、軽量WMS開発のすすめ

に公開

こんにちは、最近はローカル開発や在庫システムの整備に取り組んでいるXinjieです。

副業や越境ECに関わっている方の中には、「在庫管理が手作業すぎる…」「毎回スプレッドシートが破綻する…」と感じたこと、ありませんか?

今回紹介するのは、PostgreSQLとFlaskを使って在庫・注文管理の基礎APIをつくる方法。さらにローカル開発に便利なツール「ServBay」も組み合わせることで、Docker不要&すぐ動くWMS(倉庫管理システム)原型を構築できます。

💡 こんな人におすすめ

  • Excelで在庫を管理していて、限界を感じている
  • ECまわりの業務フローを改善したいエンジニア or 個人開発者
  • ローカルで気軽にバックエンド環境を試したい
  • PostgreSQLを実務で使いたいが、導入が面倒だった

🏗️ 構成概要

使う技術は以下のとおりです:

  • PostgreSQL(在庫・注文データの格納)
  • Flask + SQLAlchemy(API作成)
  • ServBay(ローカル環境のオールインワンツール)

1. PostgreSQLで「在庫テーブル」を建てる

まずは、SKU・在庫数・倉庫ロケーションなどを管理するためのデータ構造を設計します。

CREATE TABLE stocks (
  id SERIAL PRIMARY KEY,
  sku VARCHAR(50) UNIQUE NOT NULL,
  quantity INTEGER NOT NULL,
  location VARCHAR(50) NOT NULL
);

注文情報もあわせて格納しておくと、APIの連携やERP統合がスムーズに。


2. FlaskでAPIを公開する

Pythonの軽量Webフレームワーク「Flask」とORMのSQLAlchemyを使い、REST APIを作成。

@app.route('/stocks', methods=['GET'])
def get_stocks():
    stocks = Stock.query.all()
    return jsonify([...])

このように、エンドポイント /stocks/orders を用意すれば、他のシステムからリアルタイムに在庫を確認できるようになります。


3. ServBayでローカル開発を爆速に

PostgreSQLやPHP、Redis、NginxなどをGUIでまとめて管理できるmacOS向けツール「ServBay」を使うと、以下のようなメリットがあります:

  • DockerやHomebrew不要
  • GUIでPostgreSQL起動&設定可能
  • Flask開発との相性◎
  • 複数のサービスをワンクリックで切替可能

開発中は localhost:5000/stocks にアクセスして、APIの動作確認もできます。

👉 ServBay公式サイト にて詳細


🧩 応用ポイント

この仕組みをベースに、以下のような応用も可能です:

  • 状態別フィルター機能(発送待ち・在庫切れ など)
  • ページング対応で大量データも効率的に
  • ERPやTMSとの連携(API連携先を拡張)

📝 まとめ

在庫管理はECビジネスの根幹ですが、「最初の一歩」は意外と小さくても十分。

Excel地獄から脱出する第一歩として、PostgreSQL + Flask + ServBay の組み合わせはとてもおすすめです。

次回は、SQLでの効率的な在庫クエリ方法や、データ可視化の導入も紹介できればと思います!


🔖 Tags

  • #越境EC
  • #PostgreSQL
  • #Python開発
  • #ローカル開発

Discussion