今日の優良食堂
実際に入れて動かして書いた、今日の一膳
ギット飯が代わりに導入・実行・コードまで確かめました
今日の優良食堂 · ギット飯が代わりに導入・分析

medusajs/medusa

カスタマイズ可能なコマース向けTypeScriptフレームワーク

medusajs/medusaは、完成品のECサイトではなく「組み立てるための部品」として設計されたコマースフレームワークです。実際にプロジェクトを立ち上げてみると、注文・在庫・配送などのモジュールが独立していて、B2Bストアでも既存POSと連携した販売チャネルでも、必要な部分だけをコードで差し替えていける感触がつかめます。MITライセンスのコアで自由に始めつつ、Medusa Cloudでのホスティングまで視野に入れられるので、今日サンプルを1つ動かすだけで自分のプロダクトの土台になりそうかどうかが見えてきます。

01 / 概要
何をするものか一文で言うと
ひとことでカスタマイズ可能なコマース向けTypeScriptフレームワーク

Medusaは、注文・商品・在庫・価格などの機能をモジュール単位で組み合わせるヘッドレスコマースプラットフォームです。coreパッケージ、モジュール群、ワークフローエンジンをyarn workspacesでまとめたモノレポとして配布されています。ソースにはAPIルート定義、Jestベースの統合テスト、Claude向けskill定義まで含まれています。

02 / 構造
どう動くのか中核のしくみ
読み方動きの流れを図と一緒にほどきました。

medusa-config.jsで有効化したモジュール(auth、product、pricing、promotionなど)がコンテナに登録され、src/api配下のルートから呼び出される仕組みです。route.tsではdefineFileConfigで機能フラグ(FeatureFlag.isFeatureEnabled)によりルート自体を無効化でき、middlewares.tsではdefineMiddlewaresとzodスキーマでリクエストを検証します。複雑な業務処理はcore-flows・workflows-sdkのワークフローとして手順化され、モジュールサービスを順に呼び出します。integration-tests/httpの仕様書はmedusaIntegrationTestRunnerを使い、実際のPostgresに対して管理者ユーザーを作成し、APIキーの発行・更新・失効・削除までのライフサイクルをHTTPリクエストで検証しています。changeset/config.jsonにより多数のワークスペースパッケージのバージョンを一括管理する運用になっています。

03 / 体験
入れるとこんな体験になりますギット飯が実際にたどった順序
所要ギット飯が実際に導入・実行しながらたどった順序です。
  1. STEP 01

    yarn installを実行すると、core・modules・pluginsなど非常に多いワークスペースパッケージが一括で解決されるのを体感します。

  2. STEP 02

    medusa-config.jsでDATABASE_URLなどを設定し開発サーバーを起動すると、有効化したモジュールだけがコンテナに読み込まれます。

  3. STEP 03

    integration-tests/httpでtest:integrationを実行すると、Jestがテスト用Postgresを使ってサーバーを起動し、createAdminUserで管理者を作成します。

  4. STEP 04

    api-key.spec.tsのようなテストが走ると、/admin/api-keysへのPOSTでsk_接頭辞付きトークンが発行され、更新・失効・削除まで一連の挙動が確認できます。

  5. STEP 05

    feature-flagのfixtureを試すと、CUSTOM_FF環境変数を設定しない限り/customルート自体が無効のままであることに気づきます。

  6. STEP 06

    changesetsのワークフローに触れると、1つの変更が@medusajs/*配下の多数のパッケージバージョンへ連動して反映される様子が見えます。

04 / 成果物
何が手に入るのか導入後に手元に残るもの

実行環境が整えば、管理者APIやAPIキー管理などを備えたコマースバックエンドが手元で立ち上がります。あわせて、実際の挙動を裏付ける統合テスト一式と、多パッケージ構成を安全にリリースするchangesetsの仕組みが手に入ります。

05 / 注意
ここは先に知っておいてください先に知っておくとよいこと
正直なところ誰にでも合うとは言いにくいところです。
01

ワークスペースパッケージの数が非常に多く、yarn installとビルドに相応の時間がかかると見込まれます。

02

統合テストはインメモリではなく実際のPostgres接続を前提としており、DB未準備では動かせません。

03

一部ルートやモデルはFeatureFlagで既定無効になっており、env_keyを設定しないと存在自体に気づけません。

04

ENTERPRISE-LICENSE.mdが同梱されており、リポジトリ内の一部機能はMITと異なるライセンス条件である可能性があります。

06 / 結論
ギット飯の結論食べてみる価値のある一膳か
ギット飯の最終判断優良食堂

自前のコマースバックエンドをモジュール構成で組みたい開発者や、AIコーディングエージェントと組み合わせた開発フローを試したいチームに向いています。route.ts・middlewares.ts・api-key.spec.tsなど実際のソースとテストが揃っており、機能フラグやワークフロー、APIキーのライフサイクルまで具体的に裏付けが取れるため、未実行でもこの評価は一定の根拠を持てます。ただし大規模モノレポかつDB前提の構成なので、実運用の負荷感は自分の環境で確認する価値があります。

今日の残りの一膳
SUBSCRIBER LIBRARY
これまでに検証した優良食堂を一堂に

4 つの関門を通った優良食堂がすべてバックナンバーに集まっています。いちばん新しい一膳はどなたでも無料で読め、それより前の優良食堂の検証の根拠・詳しい解説は ギット飯 プレミアムのご購読ですでに開いています。

優良食堂バックナンバー →
リポジトリ詳細🧪 ひと言で味見する