name: ecommerce
description: ECサイト開発 - 商品管理、カート、決済、注文フロー、在庫管理の設計・実装支援
requires-guidelines:
- common
- design/ecommerce-platforms
ECサイト開発
使用タイミング
- ECサイト新規構築時
- 商品・注文・決済機能の設計時
- 既存ECサイトのレビュー・改善時
ドメイン設計
コアエンティティ
| エンティティ |
責務 |
| Product |
商品マスタ(タイトル・説明・画像) |
| Variant |
バリエーション(SKU・価格・在庫) |
| Cart |
買い物かご |
| Order |
注文(ステータス・配送・支払) |
| Customer |
顧客情報 |
| Payment |
決済情報 |
状態遷移
注文: [作成] → [支払待ち] → [支払済] → [発送準備] → [発送済] → [完了]
在庫: [在庫あり] ←→ [残りわずか] → [在庫切れ] → [入荷待ち]
要件チェックリスト
商品管理
カート・購入
決済
顧客管理
法令対応
技術設計
在庫確保パターン
// 楽観的ロック
async function reserveStock(variantId: string, qty: number) {
const result = await db.variant.updateMany({
where: {
id: variantId,
inventory: { gte: qty },
version: currentVersion,
},
data: {
inventory: { decrement: qty },
version: { increment: 1 },
},
});
if (result.count === 0) {
throw new StockNotAvailableError();
}
}
決済フロー
1. カート確定 → 在庫仮押さえ
2. 決済開始 → 決済サービス呼び出し
3. 成功 → 注文確定・在庫確定
4. 失敗 → 在庫解放
5. タイムアウト(15分) → 在庫解放
API設計
GET /products # 商品一覧
GET /products/:id # 商品詳細
POST /cart/items # カート追加
DELETE /cart/items/:id # カート削除
POST /orders # 注文作成
GET /orders/:id # 注文詳細
セキュリティ
パフォーマンス目標
| 指標 |
目標 |
| ページ読み込み |
< 3秒 |
| 検索応答 |
< 500ms |
| 決済処理 |
< 5秒 |
プラットフォーム別
Shopify
- context7:
/websites/shopify_dev
- Storefront API / Admin GraphQL
- Hydrogen(ヘッドレス)
STORES
自社開発
- Stripe / GMO / PAY.JP
- Algolia / Elasticsearch
出力形式
設計時
📋 ドメインモデル
📦 エンティティ一覧
🔄 状態遷移図
✅ 要件チェックリスト
レビュー時
🔴 Critical: 問題点 - 修正案
🟡 Warning: 改善推奨 - 提案
📊 Summary: カバー率 X%
外部知識ベース
context7で最新ドキュメント確認:
/websites/shopify_dev - Shopify開発
/shopify/hydrogen - ヘッドレスEC
/woocommerce/woocommerce - WooCommerce
/medusajs/medusa - Medusa(OSS)