Issue #576
商品サブスク — Sub Issue 一覧
基盤先行 → 機能縦割りで進める全7タスク
第1段階 — 基盤
全機能の土台。1人が一気通貫で対応するのがベスト。
1
DB基盤
マイグレーション・エンティティ
全タスクの土台となるテーブルとエンティティを作成する。
product_subscriptions テーブル作成
product_subscription_deliveries テーブル作成
エンティティ定義・リレーション設定
マイグレーション実行テスト
Backend
既存影響なし
有馬さん(想定)
2
PayJP連携基盤
Webhook対応
PayJPとの連携処理を拡張し、副サブスクの課金を処理できるようにする。
PaymentService 拡張(subscription作成)
課金成功時の延長処理
課金失敗時の停止処理
既存 Webhook に分岐追加
Backend
既存改修あり
有馬さん(想定)
3
主サブスク解約時の
連動解約
主サブスクを解約した際に、紐づく副サブスクも自動で解約予約する。
UserMembershipsService の cancel 改修
紐づく product_subscriptions を SCHEDULED_CANCEL に
解約確認メールに副サブスク情報追加
Backend
既存改修あり
有馬さん(想定)
↓
第1段階の完了後、機能単位で並行着手可能
↓
第2段階 — 機能縦割り
API + フロントを1人が一気通貫で担当。並行開発可能。
4
購入フロー
API + ユーザーFE
副サブスクの購入処理をAPIからフロントまで一気通貫で実装する。
POST /v2/.../product-subscriptions API
初回 charge → subscription 作成 → deliveries 生成
商品選択 → 店舗選択 → 決済の購入ページ
購入完了メール送信
Backend
Frontend
中
有馬さん(想定)
5
サブスク管理
API + ユーザーFE
ユーザーが自分の副サブスクを確認・解約・取り消しできる機能。
一覧・詳細・解約・解約取り消し 4 API
マイページにサブスク表示追加
サブスク詳細ページ(受取履歴・決済履歴)
解約モーダル(連動解約の警告含む)
Backend
Frontend
中
有馬さん(想定)
6
受け取り管理
API + 管理画面FE
スタッフが管理画面から受け取り状況を管理する機能。新規ページ中心。
受け取り予定一覧 API
受取完了マーク API
受け取り管理ページ(フィルタ・ページネーション)
受取完了モーダル
ユーザー詳細にサブスクタブ追加
Backend
管理画面
低
chaoさん(想定)
7
バッチ処理
定期実行で副サブスクのライフサイクルを自動管理する3つのバッチ。
月次ステータス更新(SCHEDULED_CANCEL → CANCELED)
PayJP 定期課金キャンセル
受け取りレコード自動生成(毎月1日)
スケジューラ登録
Batch
中
有馬さん(想定)
依存関係
1. DB基盤
マイグレーション・エンティティ
2. PayJP連携
Webhook対応
3. 連動解約
主サブスク解約改修
基盤完了後、並行着手可能
4. 購入フロー
API + ユーザーFE
5. サブスク管理
API + ユーザーFE
6. 受け取り管理
API + 管理画面FE
7. バッチ処理
3本 + スケジューラ
並行
担当割り振り(想定)
有馬さん
1. DB基盤
2. PayJP連携・Webhook
3. 連動解約
4. 購入フロー(API + FE)
5. サブスク管理(API + FE)
7. バッチ処理
chaoさん
6. 受け取り管理(API + 管理画面FE)
新規ページ中心で既存影響が小さいため、独立して進めやすい。基盤(第1段階)が完了してから着手。
進め方:
第1段階(Sub-issue 1→2→3)は順序依存があるので有馬さんが一気通貫で対応。完了後、第2段階の4・5・7を有馬さん、6をchaoさんが並行で進める。機能単位でAPI+フロントを縦に持つことで、IF認識のズレを防ぐ。