APM

>Agent Skill

@aiskillstore/ecommerce

skilldevelopment

ECサイト開発 - 商品管理、カート、決済、注文フロー、在庫管理の設計・実装支援

apm::install
$apm install @aiskillstore/ecommerce
apm::skill.md
---
name: ecommerce
description: ECサイト開発 - 商品管理、カート、決済、注文フロー、在庫管理の設計・実装支援
requires-guidelines:
  - common
  - design/ecommerce-platforms
---

# ECサイト開発

## 使用タイミング

- **ECサイト新規構築時**
- **商品・注文・決済機能の設計時**
- **既存ECサイトのレビュー・改善時**

## ドメイン設計

### コアエンティティ

| エンティティ | 責務 |
|-------------|------|
| Product | 商品マスタ(タイトル・説明・画像) |
| Variant | バリエーション(SKU・価格・在庫) |
| Cart | 買い物かご |
| Order | 注文(ステータス・配送・支払) |
| Customer | 顧客情報 |
| Payment | 決済情報 |

### 状態遷移

```
注文: [作成] → [支払待ち] → [支払済] → [発送準備] → [発送済] → [完了]
在庫: [在庫あり] ←→ [残りわずか] → [在庫切れ] → [入荷待ち]
```

## 要件チェックリスト

### 商品管理
- [ ] 商品CRUD
- [ ] バリエーション(サイズ・色)
- [ ] 在庫管理(リアルタイム)
- [ ] カテゴリ・タグ
- [ ] 検索・フィルタ

### カート・購入
- [ ] カート操作
- [ ] クーポン・割引
- [ ] 送料計算
- [ ] 配送日時指定
- [ ] ギフト設定

### 決済
- [ ] クレジットカード
- [ ] コンビニ払い
- [ ] 後払い / 電子マネー
- [ ] 定期購入

### 顧客管理
- [ ] 会員登録・ログイン
- [ ] 住所帳
- [ ] 注文履歴
- [ ] ポイント

### 法令対応
- [ ] 特定商取引法に基づく表記
- [ ] プライバシーポリシー
- [ ] 利用規約

## 技術設計

### 在庫確保パターン

```typescript
// 楽観的ロック
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設計

```yaml
GET    /products          # 商品一覧
GET    /products/:id      # 商品詳細
POST   /cart/items        # カート追加
DELETE /cart/items/:id    # カート削除
POST   /orders            # 注文作成
GET    /orders/:id        # 注文詳細
```

## セキュリティ

- [ ] HTTPS強制
- [ ] PCI DSS準拠(カード情報非保持)
- [ ] CSRF / XSS対策
- [ ] 認証(2FA推奨)
- [ ] 監査ログ

## パフォーマンス目標

| 指標 | 目標 |
|------|------|
| ページ読み込み | < 3秒 |
| 検索応答 | < 500ms |
| 決済処理 | < 5秒 |

## プラットフォーム別

### Shopify
- context7: `/websites/shopify_dev`
- Storefront API / Admin GraphQL
- Hydrogen(ヘッドレス)

### STORES
- API: https://heyinc.github.io/retail-api-docs/
- OAuth 2.0 / スタンダードプラン以上

### 自社開発
- 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)