AppCotton では、製品ごとにライセンス販売を行うために、プロダクト と プラン の2つを設定します。
これにより、複数のソフトウェアやエディションごとに、柔軟な料金体系を構築できます。
プロダクトとは
プロダクトは、ライセンスを販売する対象となる製品のことです。
例:
- WordPress プラグイン
- SaaS 形式のツール
- デスクトップアプリ
- ブラウザ用 Web サービス など
プロダクト作成の流れ
- 管理画面 → AppCotton > プロダクト を開く
- 「新規追加」ボタンをクリック
- 以下の項目を入力し保存
| 項目 | 説明 |
|---|---|
| 製品名 | 表示される名称 |
| product_slug | ライセンス判定に使用する固有識別子(英数字・ハイフンのみ) |
| 説明文 | 製品の紹介や説明文 |
| 状態 | 利用可 / 非表示など(販売ステータス) |
product_slug(重要)
product_slug は、プラグインやアプリ側でライセンス判定に使用するキーです。
if ( appcotton_is_premium('combpass_premium') ) {
// 有料機能を解放
}
販売側 と 製品側 の識別子が一致していることが必須です。
プラン(Pricing Plans)とは
1つのプロダクトには、複数の 料金プラン を持たせることができます。
例:
| プラン名 | 利用可能サイト数 | 価格 |
|---|---|---|
| Lite | 1サイト | ¥3,000 |
| Standard | 3サイト | ¥7,800 |
| Pro | 5サイト | ¥12,000 |
| Unlimited | 無制限 | ¥24,000 |
プランに設定する項目
| 項目 | 説明 |
|---|---|
| プラン名 | 表示上の名前 |
| 価格 | 最終支払額(税計算は外部に委任) |
| アクティベーション上限 (activation_limit) | 利用可能なサイト数 |
| Stripe Price ID | Stripe Checkout / 差額決済に使用 |
| 表示順 (sort_order) | プラン一覧の並び順指定 |
無制限プランについて
無制限プラン を提供する場合は、activation_limit に -1 を設定します。
activation_limit = -1 → 利用可能サイト数は無制限
プランの差額アップグレード(自動処理)
AppCotton では、プラン同士の価格差のみ を追加決済する仕組みがあります。
例:
現在:Standard (¥7,800)
変更先:Pro (¥12,000)
差額:¥12,000 - ¥7,800 = ¥4,200
アップグレード時:
- 現在プランと目標プランの価格を比較
- 差額分だけ Stripe Checkout で決済
- Webhook 完了後にライセンスへ反映
プロダクト / プランの運用モデル例
1) 個人利用者向け
| プラン | 上限 | 利用用途 |
|---|---|---|
| 1サイト | 1 | 個人サイト用 |
| 3サイト | 3 | 小規模クライアント制作向け |
2) 制作会社向け
| プラン | 上限 | 利用用途 |
|---|---|---|
| 10サイト | 10 | 中規模制作会社向け |
| 無制限 | -1 | 大規模開発会社・代理店向け |
よくある設定ミスと対策
| ミス | 影響 | 対策 |
|---|---|---|
| product_slug とアプリ側の識別子が一致しない | 有料判定が常に false になる | 必ず同一文字列にする |
| activation_limit を 0 に設定 | 一切認証されない | 1以上、または -1 を指定する |
| Stripe Price ID の入力漏れ | 差額アップグレード不可 | Stripe で「Price」を必ず作成する |
まとめ
- プロダクト = 販売する製品そのもの
- プラン = ライセンスの利用上限や価格のバリエーション
product_slugは アプリ側と一致させることが最重要- 差額アップグレードは 自動で計算 / 決済 / 反映 される
製品の設計が正しければ、販売後の運用はとてもシンプルになります。