稼働中テナント
2
現在有効化されている店舗数
Reservation Infrastructure
公開予約フロー・管理画面・API・Stripe 決済・SMS/LINE 通知・分析レポート・埋め込みウィジェットまでを備えた マルチテナント対応の予約プラットフォームです。
稼働中テナント
2
現在有効化されている店舗数
通知チャネル
メール / SMS / LINE
3 チャネル同時対応
API エンドポイント
9
公開 3 件 + 管理 6 件
決済
Stripe Checkout
Connect 対応・自動返金
Overview
公開予約フロー、管理画面、管理 API、Stripe 決済、SMS/LINE 通知、バックアップ、監査までをまとめて提供する予約基盤です。
複数店舗や複数ブランドを 1 つのアプリケーションで運用しつつ、店舗ごとに予約導線・設定・顧客データを分離して使えます。
美容室、整体・鍼灸、サロン、スクール、相談予約、来店予約など「メニューと時間枠」で受け付ける予約サイト構築に向いています。
Reservation Flow
顧客が予約を完了するまでの一連のステップ
01
テナントごとに設定されたサービス一覧から予約内容を選択。所要時間と料金を確認できます。
02
「指名なし」を含むスタッフ選択ステップ。担当メニューが設定されたスタッフのみ表示されます。
03
営業時間・休業日・既存予約・スタッフ稼働状況を考慮した空き枠をリアルタイムで表示。最小リードタイム制御付き。
04
お名前・電話番号・メールアドレス・備考を入力。顧客アカウントでログイン中は自動入力されます。
05
予約完了と同時に顧客へ確認メールを送信。店舗の通知メールアドレスにも同時通知します。
06
メニューに料金が設定されている場合、Stripe Checkout へリダイレクト。Webhook で payment_status を更新します。
07
毎朝 08:00 のスケジューラーが翌日予約者へリマインドメール / SMS / LINE を自動送信します。
08
トークンベースで前日まで変更・キャンセル可能。キャンセル時は Stripe Refund を自動発行します。
Capability Matrix
Site Types
メニュー、スタッフ、店舗情報、空き枠確認を組み合わせて、公開予約サイトとして構築できます。
施術メニュー単位の予約受付、顧客情報管理、前日リマインドなどを組み合わせて利用できます。
独自ドメインを分けなくても、店舗一覧から各テナントへ切り替える運用ができます。
公開 API、管理 API、トークン認証、監査ログを使って周辺システムとの連携基盤としても使えます。
Safety & Reliability
Notifications
NotificationDispatcher が confirmed / cancelled / changed / reminder を各チャネルへ振り分けます
管理画面「店舗設定」から per-tenant で設定
管理画面「店舗設定」から per-tenant で設定
管理画面「店舗設定」から per-tenant で設定
Payment
テナントごとに Stripe キーを設定できます。 Stripe Connect を使えば connected account への直接入金も可能です。
Admin API
Bearer トークン認証 + ロール × ability の 2 層認可
/api/v1/slots
空き枠一覧(date / service_id / staff_id でフィルタ)
/api/v1/reservations
予約作成(Idempotency-Key 対応)
/api/v1/reservations/cancel
キャンセルトークンで予約キャンセル
/api/v1/admin/reservations
reservations.read/api/v1/admin/reservations/{id}
reservations.write/api/v1/admin/services
services.read/api/v1/admin/services
services.write/api/v1/admin/settings
settings.read/api/v1/admin/settings
settings.writeロール × ability マトリクス
Analytics
管理画面の「レポート」セクションで確認できます
売上レポート
月別・サービス別・スタッフ別の売上を棒グラフで可視化
稼働率レポート
時間帯別・曜日別のスロット埋まり率を分析
顧客リテンション
新規 vs リピーター・来店回数バケット
CSV エクスポート
予約一覧・顧客一覧をダウンロード
Embed
外部サイトに予約フォームを iFrame で埋め込めます
iFrame ベース(Alpine.js + CSS 変数)
表示色・言語は管理画面から設定。外部サイトのデザインに合わせた調整が可能
テナント単位の CORS 管理
WidgetCors ミドルウェアが許可オリジンをテナントごとに制御
埋め込みコードスニペット
管理画面でコピーするだけで外部サイトへ設置できる HTML を生成
<iframe src="https://reservation-platform.iplusone.co.jp/widget?tenant={code}" ...></iframe>
Multi-tenant
ResolveTenant ミドルウェアが以下の順で解決します
Data Isolation
BelongsToTenant スコープがすべてのクエリにテナントフィルタを自動付与します
テナント登録フロー
GET /register からセルフ登録可能。
Tenant + User + ShopSetting を DB トランザクションで一括作成します。
プラットフォーム管理者は /platform-admin から全テナントを管理できます。
Operations
Artisan コマンドで日常運用・メンテナンスを自動化できます
テナント管理
php artisan tenant:create {code} "{name}"
php artisan tenant:list
php artisan tenant:activate {code}
php artisan tenant:deactivate {code}
API トークン発行
php artisan tenant:token:create {email} {name} --abilities=reservations.read,...
バックアップ / リストア
php artisan tenant:backup {code}
php artisan tenant:backup {code} --disk=s3
php artisan tenant:restore {file} --code={code}
データ保持期間管理(スケジューラー自動実行)
php artisan tenant:idempotency-prune --days=7
php artisan tenant:audit-prune --days=90
php artisan tenant:send-reminders