アクティベーションの制限と超過時の挙動

AppCotton では、1つのライセンスキーが 何サイトまで使用できるか
activation_limit によって制御します。

これにより、

  • 1サイトライセンス
  • 3サイトライセンス
  • 10サイトライセンス
  • 無制限ライセンス(-1)
    など、柔軟な販売が可能になります。

activation_limit とは

プランごとに決められた 利用可能なサイト数の上限 を表します。

意味
11ドメインのみ利用可能
33ドメインまで利用可能
55ドメインまで利用可能
-1無制限

この値は、製品プラン作成時に設定します。


現在のアクティベーション数のカウント方法

以下のテーブルで「active」状態の行を数えます:

wp_appcotton_license_activations
条件カウント対象説明
status = active利用中のドメインとして扱う
status = deactivated解除済み(カウントしない)

制限を超えた場合の認証結果

ユーザーが新しいドメインで認証したとき、
すでに 上限以上のドメインが使用されている場合

→ 認証は拒否される
→ エラー: domain_limit_reached

APIレスポンス例

{
  "error": "domain_limit_reached",
  "message": "このライセンスで使用できるサイト数の上限に達しています。不要なサイトを解除してください。",
  "remaining_slots": 0
}

クライアント側(プラグイン / SaaS)での推奨UI

ケース:上限に達した場合

プレミアム機能がロックされる
↓
ユーザーに「ドメイン管理ページへの誘導リンク」を表示

例(UIテキスト):

このライセンスは、利用できるサイト数の上限に達しています。
不要なサイトを解除することで、このサイトで使用できるようになります。
マイページへ →

ユーザーができること:ドメイン解除

ユーザーは、マイページから不要ドメインを解除できます。

マイページ → ライセンス → ドメイン管理 → [解除]

解除したドメインは

status: active → deactivated

利用可能枠が1つ戻る


制限を柔軟にするオプション(運用設計)

オプション内容企業向けに有効
自動解除ポリシーlast_checked_at が 90日以上のドメインを自動解除納品先変更の多い制作会社向け
グレース追加activation_limit +1 を許可して通知顧客トラブル回避用
instance_id 制御同一ドメイン内で dev / staging を区別しないSaaS / WordPress制作向け

例:典型的な利用シナリオ

3サイトライセンス

example.com     → active
blog.example.com → active
client-site.jp   → active

ここで新ドメイン test.example.net を認証しようとすると:

認証拒否(上限超過)
↓
ユーザーが不要サイト 1つを解除
↓
再認証 → 成功

まとめ

• activation_limit により「利用できるサイト数」を制御する
• 使用中のサイトは wp_appcotton_license_activations に記録される
• 上限超過時は domain_limit_reached エラーを返す
• ユーザーは不要ドメインを解除して再利用できる
• 実運用に合わせて、自動解除やグレース枠を設計できる