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認識のズレを防ぐ。