総合検証チェックリスト (End-to-End Testing)
全プラグイン(Client, Store, Main)の連携動作を確認するためのテストパターンです。
前提条件
- Storeサイト:
Software License Managerがインストール済み、WooCommerce設定完了。 - Mainサイト:
Store Sync Receiverがインストール済み。 - Clientサイト:
Cross Poster Proがインストール済み。 - アカウント: MainとStoreで、同一の
usernameを持つテストユーザーが存在すること。 - Config: 全サイトの
wp-config.phpに適切な定数(API URLやSecret Key)が設定されていること。
1. Store -> Main 連携 (バッジ機能)
ケース 1-A: 新規購入 (Active)
- 操作: Storeサイトで、テストユーザーとして「Cross Poster Pro (Subscription)」を購入(注文完了)する。
- 期待動作:
- Mainサイトの該当ユーザーのメタデータ
storesync_license_cross-poster-proが作成される。 - ステータスが
activeになっている。 - Mainサイトのフォーラム投稿欄に
[Cross Poster Pro]と[優先サポート]バッジが表示される。
- Mainサイトの該当ユーザーのメタデータ
ケース 1-B: サブスクリプション途中キャンセル (Pending Cancel)
- 操作: Storeサイトのマイページで、サブスクリプションを「キャンセル」する。
- 期待動作:
- Mainサイトへ通知が飛ぶ。
- ステータスは
activeのまま維持される(有効期限までは使えるため)。 - バッジは 消えない(表示され続ける)。
ケース 1-C: 有効期限切れ (Expired)
- 操作:
- Store管理画面から、サブスクリプションのステータスを「期限切れ (Expired)」に手動変更する。
- または、MainサイトのDBを直接操作して
expires_atを過去の日付に変更する。
- 期待動作:
- バッジが 消える。
ケース 1-D: ユーザー設定 (Toggle)
- 操作: Mainサイトのプロフィール設定で「Show Badges」のチェックを外して保存する。
- 期待動作:
- ライセンスが有効であっても、バッジが 表示されない。
2. Client -> Store 連携 (ライセンス認証・更新)
ケース 2-A: ライセンス有効化 (Activation)
- 操作: Clientサイト (
Cross Poster Pro設定画面) で、Storeから発行されたライセンスキーを入力し保存・有効化する。 - 期待動作:
- 「有効化されました」というメッセージが表示される。
- Storeサイトの管理画面 (
License Manager) で、そのキーの使用回数 (Activation count) が増えている。 - プラグインのPro機能がアンロックされる。
ケース 2-B: 自動アップデート (Update Check)
- 準備: Store側のプラグインバージョンを、Client側より新しいもの(例: 9.9.9)にし、Zipを配置する。
- 操作: Clientサイトの「ダッシュボード > 更新」を確認する。
- 期待動作:
- 「Cross Poster Pro」の更新通知が表示される。
- 「更新」ボタンを押すと、エラーなくアップデートが完了する。
ケース 2-C: 無効なキーでの挙動
- 操作: デタラメなキーを入力する、またはStore側でキーを「無効 (Inactive)」にする。
- 期待動作:
- Client側でエラーメッセージが表示される。
- Pro機能がロックされる(または警告が出る)。
ケース 2-D: 埋め込みライセンスキー (Embedded Key)
- 操作: StoreサイトのAPI経由(またはマイページ)からZipファイルをダウンロードする。
- 期待動作:
- ダウンロードしたZipファイルを解凍すると、ルート(またはプラグインフォルダ直下)に
license-key.phpが存在する。 license-key.phpの中身が、購入したライセンスキーと一致している。- このZipを新規サイトにインストールし有効化すると、ライセンス認証操作なしで 自動的に有効化完了メッセージが表示される。
- ダウンロードしたZipファイルを解凍すると、ルート(またはプラグインフォルダ直下)に
3. Store管理画面 (Admin UI)
ケース 3-A: Active Sites (稼働状況)
- 操作: Store管理画面で「Active Sites」メニューを開く。
- 期待動作:
- 現在有効化されているドメインの一覧が表示される。
- ライセンスキー、製品名 (Formatting適用済み)、Installed日時、Last Checked日時が正しく表示されている。
ケース 3-B: UIクリーンアップ
- 操作: Store管理画面全体を見回す。
- 期待動作:
- 「WooCommerce > 設定 > ライセンスマネージャー」タブが存在しない。
- サイドバーに「ホーム」「支払い (Payments)」「Subscriptions (Top Level)」等の不要なメニューが表示されていない。
- 「License Manager」のPro版購入を促す広告バナーやアップセル表示が一切ない。
ケース 3-C: Analytics Dashboard (分析画面)
- 操作: Store管理画面で「Active Sites」メニューを開く。
- 期待動作:
- 画面上部に「Activation Analytics」ダッシュボードが表示されている。
- 「Total Sites」「New Today」の数値が正しい。
- 期間切り替え(7/30/90/365日)プルダウンが機能し、折れ線グラフが変化する。
- 製品フィルタプルダウンで製品を切り替えると、数値とグラフが絞り込まれる。
- 折れ線グラフに「Total Active (累計)」と「New Daily (新規)」の2軸が表示されている。
- 円グラフ(Product Share)が表示されている。
4. アンインストール (Cleanup)
ケース 4-A: プラグイン削除
- 操作: ClientサイトおよびMainサイトで、各プラグインを「削除」する。
- 期待動作:
wp_optionsやwp_usermetaから、プラグイン固有のデータ (crp_pro_settings,storesync_license_*等) がきれいに消えていること。
5. 追加機能検証 (Phase 7)
ケース 5-A: Historical Data (履歴保存)
- 操作: Clientサイトでライセンスを「無効化 (Deactivate)」する。
- 期待動作:
- Store管理画面「Active Sites」一覧の「すべて (All)」タブに、そのサイトが残っている。
- ステータスが「Private」になっている。
- Analyticsダッシュボードの「Total Active」数からは除外されている。
ケース 5-B: Two-way Sync (プロフィール同期)
- 操作: Mainサイトのプロフィール画面で「名 (First Name)」や「メールアドレス」を変更保存する。
- 期待動作:
- Storeサイトの当該ユーザーのプロフィール(名・姓)が自動的に更新されている。
- メールアドレスは更新されないこと(Auth0環境での整合性維持のため同期無効化済み)。
ケース 5-C: Frontend Manager (マイページ管理)
- 操作: Storeサイトに購入ユーザーでログインし、ショートコード
[slm_my_licenses]を設置したページを開く。 - 期待動作:
- 自分の保有するライセンスと、現在有効化されているサイト一覧が表示される。
- 「Deactivate」ボタンを押すと、そのサイトのライセンスが解除される。
ケース 5-D: Bulk Sync (一括同期)
- 操作: Store管理画面「Store Sync Settings」の「Tools」エリアで「Sync All Subscriptions」ボタンを押す。
- 期待動作:
- プログレスバーが進み、エラーなく完了する。
- Mainサイト側でバッジが再同期される(データの修復が確認できる)。
ケース 5-E: Webhook Settings
- 操作: Store管理画面「Store Sync Settings」で「Target Webhook URL」を空欄にして保存、または変更して保存する。
- 期待動作:
- 設定値が保存される。
- 同期処理が設定されたURLに対して行われる(空欄の場合はデフォルトURL)。
6. デバッグ時のヒント (Logs)
問題が発生した場合は、以下のログを確認してください。
- Storeサイト:
/wp-content/debug.log- キーワード:
SLM Sync Error,License Manager
- キーワード:
- Webサーバーのアクセスログ
- StoreからMainへの
POST /wp-json/store-sync/...へのアクセスが200 OKになっているか確認。
- StoreからMainへの