メンバーシッププランと利用制限(クォータ)
概要
メンバーシッププランでは、施設への会員アクセス可否・請求方法・承認フロー・月間利用回数や時間の上限(クォータ)を設定できます。クォータを超えた場合は利用をブロックするか、Stripe Invoice Item として追加料金を請求するかを選べます。
会員は会員アプリのホーム画面でクォータバーを確認でき、現在の利用状況をリアルタイムで把握できます。
詳細機能
機能1: 申請フロー
プラン作成時に、入会申込から有効化までの流れを選択します。
| フロー | 内容 |
|---|---|
| 先払い(デフォルト) | 申し込み時に決済します。auto_approve が OFF の場合、スタッフがメンバーシップタブで手動承認するまでは pending 状態です。 |
| 申請先行 | 申込フォームの入力後、決済なしで申請が送信されます。スタッフが 承認待ち タブで内容を確認し、承認または却下します。承認後、申請者にメールが届き、決済を完了することで有効化されます。 |
申請先行プランの設定
申請先行 を選択すると:
- 申込フォームビルダー が表示され、申請者に入力してもらうカスタムフィールド(テキスト・メール等)を追加できます
- 必須フィールドは申請時に入力チェックされます
- 申請内容は各承認待ちカードに表示され、スタッフが承認前に確認できます
申請の承認・却下(承認待ちタブ)
- 管理画面の メンバーシップ タブを開く
- 承認待ち サブタブをクリック
- 各申請カードには、申請者のメールアドレス・申請プラン・申請日・フォームの回答が表示されます
- 承認 をタップすると申請者にメールが送信され、決済に進めるようになります
- 却下 をタップすると却下理由の入力ダイアログが表示されます(任意)
承認後、サブスクリプションは会員が決済を完了するまで
pending_payment状態のままです。決済が確認されるとactiveになります。
機能2: クォータの設定(管理者)
管理画面の メンバーシップ タブから、プランを作成・編集する際にクォータを設定します。
設定できる上限項目
| 項目 | 説明 | リセット周期 |
|---|---|---|
| 月間訪問数 | 1ヶ月に入場できる回数の上限 | 月次 |
| 日次利用時間 | 1日に利用できる時間(時間単位)の上限 | 日次 |
| 月間予約数 | 1ヶ月に行える時間枠予約の上限(回数制限または時間制限) | 月次 |
月間予約数の制限方式
月間予約数は「無制限 (unlimited) / 回数 (By count) / 時間 (By hours)」の3択から選択します。
| 選択肢 | 動作 |
|---|---|
| 無制限 | 月間予約回数・時間の上限を設けない。会員アプリのクォータバーに予約枠の進捗は表示されない。 |
| 回数制限 | 1ヶ月に予約できる件数(回)の上限を設定する。 |
| 時間制限 | 1ヶ月に予約できる合計時間(時間)の上限を設定する。 |
月間訪問数と日次利用時間は値を空欄にすると「無制限」として扱われます。
プラン作成手順
- 管理画面 → メンバーシップ タブを開く
- 新規プラン作成 ボタンをクリック(プランの詳細入力ページに移動します)
- プラン名・料金・請求間隔・申請フローなどの基本情報を入力
- 料金 と 請求間隔 のラベル横には「(作成後は変更不可)」と表示されます。これらの項目は Stripe 連携の都合上、保存後に変更できません
- 利用制限 セクションで上限値を入力
機能2.5: プランカードの加入者数表示
プラン管理タブの各プランカードに、現在の加入者数が「{加入者数} / {上限} 名」の形式で表示されます。上限が未設定の場合は「{加入者数} 名」(∞ 表示)となります。
集計対象のステータスは active・past_due・pending_approval・pending_payment の4種です。退会済み(canceled)は含まれません。
機能3: 超過時のポリシー設定
クォータを超えた際の挙動を「ブロック」または「追加課金」から選択します。
| ポリシー | 動作 |
|---|---|
| ブロック | 上限に達すると入場・予約を拒否する。追加料金は発生しない。 |
| 追加課金 | 上限を超えても利用可能。超過分は Stripe Invoice Item で自動請求される。 |
超過料金(追加課金ポリシー選択時のみ)
追加課金ポリシーを選択すると、超過料金の入力フィールドが表示されます。
| 項目 | 説明 | 例 |
|---|---|---|
| 超過1回あたり料金 | 月間訪問数を超えた入場1回ごとの料金 | ¥500 |
| 超過1時間あたり料金 | 日次利用時間を超えた1時間ごとの料金 | ¥200 |
| 超過1予約あたり料金 | 月間予約数を超えた予約1件ごとの料金 | ¥300 |
超過料金はプランの通貨(JPY/USD)に従います。空欄のままにすると対象クォータの超過課金は行われません。
機能4: メンバーシップ専用プランの予約リストからの除外
selected_plan_type='membership' として作成されたプランは、予約ページ(Booking アプリ)のプランリストには表示されません。会員アプリのホーム画面から「予約プランを開く」ボタン経由でのみアクセスできます。これにより、会員専用の予約枠が一般の予約プラン一覧に混在するのを防ぎます。
機能5: クォータバーの確認(会員アプリ)
会員アプリのホーム画面には、有効なクォータが設定されているプランの場合にクォータバーが表示されます。
表示される情報
- ラベル: 月間訪問回数 / 本日の利用時間 / 月間予約回数
- 数値: 使用済み数 / 上限(例:
2 / 5 回) - プログレスバー: 使用割合を視覚的に表示
- 青緑(通常): 使用率 80% 未満
- 黄(注意): 使用率 80%〜99%
- 赤(上限): 使用率 100%
追加課金メモ
超過時のポリシーが「追加課金」に設定されている場合、クォータバーの下に以下の注意文が表示されます:
上限超過時は追加料金が発生します
機能6: 対象予約プラン(無料枠の適用範囲)
会員プランの編集フォームでは、予約制限(スロット予約) セクション内に 対象予約プラン というマルチセレクトがあります。ここで選んだ通常の予約プランのみが、このメンバーシッププランの無料枠(クォータ)の対象になります。
| 選択状態 | 動作 |
|---|---|
| 未選択(デフォルト) | すべての予約プランが対象。会員はどのプランを予約しても無料枠が適用されます(従来の挙動) |
| 1つ以上選択 | 選択したプランのみ対象。対象外のプランは会員でも通常課金されます |
非会員が締め出されることはありません。 対象予約プランを設定しても、非会員は引き続きすべてのプランを通常料金で予約できます。この設定は「予約できるかどうか」ではなく「無料になるかどうか」だけを制御します。
設定手順
- 管理画面 → メンバーシップ タブでプランを新規作成または編集
- 予約制限(スロット予約) セクション内の 対象予約プラン で、無料枠を適用したい通常プランを選択(複数選択可、検索ボックスで絞り込み可能)
- 保存すると、選択したプランがタグとして表示されます
対象プランの制約
- 選択候補には この施設の有効な予約プラン のみ表示されます。他施設のプランや無効化されたプランは新規の選択候補には出ません
- 既にリンク済みのプランが後から無効化された場合、タグとしてプラン名は表示され続けますが、新規選択の候補には出ません
- 保存時に他施設のプランIDや存在しないプランIDが含まれていた場合は自動的に除外され、画面上部に「一部の対象予約プランはこの施設に存在しないためリンクされませんでした」という警告が表示されます(保存自体は成功しています)
無料枠の適用ルール
会員が対象予約プランを予約する場合:
- 上記の 月間予約数(回数制限・時間制限)が設定されていれば、その上限の範囲内で無料
- 月間予約数が「無制限」であれば、常に無料
- 上限を超えた場合の挙動は 機能3: 超過時のポリシー設定 に従います(ブロックまたは追加課金)
会員が対象外の予約プランを予約する場合は、通常のゲスト料金がそのまま適用されます(無料枠は消費されません)。ゲスト側の予約確認画面での表示については 会員・サブスク予約の特典 を参照してください。
設定例
例1: コワーキング スタンダードプラン
月20回入場 + 日8時間まで利用可能、超過は拒否する場合:
- 月間訪問数:
20 - 日次利用時間:
8 - 月間予約数: (空欄)
- 超過時の対応: ブロック
例2: フレックス メンバーシップ
月10回入場、超過は1回 ¥500 で追加課金する場合:
- 月間訪問数:
10 - 日次利用時間: (空欄)
- 月間予約数: (空欄)
- 超過時の対応: 追加課金
- 超過1回あたり料金:
500
例3: スタジオ クラス会員
月4回の時間枠予約のみ制限する場合:
- 月間訪問数: (空欄)
- 日次利用時間: (空欄)
- 月間予約数: 回数制限 →
4回 - 超過時の対応: ブロック
よくある質問
Q: クォータはいつリセットされますか?
月間クォータは毎月1日の 00:00(施設タイムゾーン)に自動でリセットされます。日次クォータは毎日 00:00 にリセットされます。手動でのリセットは不要です。
Q: 複数の上限を設定した場合、どの条件で制限されますか?
いずれか1つでも上限に達した場合に制限が適用されます。例えば、月間訪問数と日次利用時間の両方を設定している場合、どちらかが上限に達すると以降の利用がブロック(または課金)されます。
Q: 超過料金はいつ請求されますか?
超過課金は Stripe Invoice Item として都度記録され、次回の定期請求サイクル(月次・年次)の請求書に合算されます。
Q: 会員がクォータを確認できない場合は?
クォータバーはクォータが1件以上設定されているプランでのみ表示されます。月間予約数が「無制限」、かつ月間訪問数・日次利用時間がすべて空欄のプランの場合、クォータバーは表示されません。
Q: 既存の会員に対してクォータを変更した場合、すぐに反映されますか?
プランのクォータを変更した場合、次回リセット後から新しい上限が適用されます。現在の使用済み回数は引き継がれます。
Q: 対象予約プランを追加・変更すると、既存の会員にすぐ反映されますか?
はい。対象予約プランのリンクは保存した瞬間に反映されます。バックフィル作業は不要で、既に有効なサブスクリプションを持つ会員は次回の予約から新しい設定が適用されます。
Q: 対象予約プランを1つも選択しなかった場合はどうなりますか?
すべての予約プランが対象になります(後方互換の挙動)。特定のプランだけを無料枠の対象にしたい場合のみ、対象予約プランを絞り込んでください。
トラブルシューティング
上限に達していないのに利用をブロックされる
以下を確認してください:
- 会員アプリのホーム画面でクォータバーの現在の数値を確認する
- 日次クォータ(本日の利用時間)も上限に達していないか確認する
- メンバーシップの有効期限が切れていないか確認する
- それでも解決しない場合は、施設の管理者にお問い合わせください
クォータバーが表示されない
- 月間予約数が「無制限」で、月間訪問数・日次利用時間もすべて空欄(無制限)の場合は表示されません
- 管理画面でプランの利用制限設定を確認してください
会員なのに特定のプランで通常課金されてしまう
- 管理画面でそのメンバーシッププランの 対象予約プラン を確認し、該当プランが選択されているか確認してください
- 対象予約プランが1つ以上選択されている場合、リストに含まれないプランは意図的に通常課金の対象です(無料枠の適用範囲を絞り込む機能のため)
- すべてのプランを無料枠の対象にしたい場合は、対象予約プランの選択をすべて解除してください(未選択=全プランが対象)
- プランを保存した直後は反映されているはずです。反映されない場合はページを再読み込みしてください
Stripe カスタマーポータルの設定(施設オーナー必須)
会員がカードの変更や領収書のダウンロードを行うには、Stripe Dashboard で Customer Portal を有効にする必要があります。
設定手順
- Stripe Dashboard にログイン
- Settings → Billing → Customer portal を開く
- 以下を設定:
| 項目 | 設定 | 理由 |
|---|---|---|
| Payment methods | ✅ 有効 | 会員がカードを追加・変更・削除できるようにする |
| Invoice history | ✅ 有効 | 会員が領収書・請求書の PDF をダウンロードできるようにする |
| Subscriptions > Cancel subscriptions | ❌ 無効 | 退会は UnlockOS の専用フローで処理するため |
| Subscriptions > Switch plans | ❌ 無効 | プラン変更は UnlockOS で管理するため |
- Save をクリック
注意事項
- この設定は Stripe アカウント全体 に適用されます(施設単位ではありません)
- テストモードと本番モードで別々に設定が必要です
- 設定が完了すると、会員アプリの お支払い履歴 ページに「カード・請求書を管理」ボタンが表示されます
- ボタンをクリックすると Stripe のポータル画面が開き、操作完了後に会員アプリに戻ります
Customer Portal が未設定の場合
設定が完了していない状態で会員がボタンをクリックすると、Stripe からエラーが返されます。必ず上記の設定を完了してからメンバーシップを公開してください。
関連ページ
最終更新: 2026-07-18 - 機能6「対象予約プラン(無料枠の適用範囲)」を追加 (#1950)