コンテンツにスキップ

処理フロー仕様書 (Store Sync Receiver)

アーキテクチャ概要

Store Sync Receiver は、受動的 (Passive) なプラグインです。REST API エンドポイントを公開し、販売サイトからのPUSH通知を待ち受けます。

詳細フロー

1. Webhook 受信 (/update-status)

エンドポイント: POST /wp-json/store-sync/v1/update-status

  1. セキュリティチェック:

    • ヘッダー X-Store-Sync-Secret を取得。
    • 管理画面で設定された store_sync_secret と比較。不一致なら 403 Forbidden を返却。
  2. パラメータ検証:

    • 必須: username, product_slug, status
    • オプション: expires_at
  3. ユーザー特定:

    • username (ログインID) をキーに get_user_by() でユーザーIDを取得。
    • 存在しない場合は同期失敗 (404 Not Found) を返却(自動作成は行わない)。
  4. ステータス同期ロジック:

    • メタデータ保存:

      • _store_sync_status_[slug]: 最新ステータスを保存。
      • _store_sync_expires_[slug]: 有効期限を保存。
    • Cross Poster Pro 特有処理:

      • ステータスが active の場合:
        • bbPress ロールを変更 (必要であれば)。
        • バッジフラグ _has_cp_pro_badge を true に設定。
      • それ以外 (expired, cancelled):
        • バッジフラグを削除。
    • Priority Support 特有処理:

      • 製品がサポートプランの場合、_priority_support_expires メタデータを更新。
  5. レスポンス:

    • 処理成功時: success: true, updated_user_id: 123 を返却。