Webサービスを運営する企業様から、「複数の事業者が自社の商品を掲載し、利用者がオンラインで予約・決済まで行える仕組みをつくりたい」というご相談をいただき、予約・決済プラットフォームを新規開発しました。
利用者は、掲載された商品を探して日時を選び、そのままオンラインで決済まで完了できます。参加する事業者は、商品・料金・予約枠を自分で登録・管理できます。運営会社は、全事業者の予約と売上をまとめて把握できます。予約受付から売上の精算までを、一つのシステムで完結できる仕組みです。
開発前の課題
運営会社様では、既存のWebサイトで事業者の情報を発信していました。しかし予約の受付は事業者ごとの個別対応になっており、運営会社として予約や売上をまとめて管理する仕組みがありませんでした。
- Webサイトで情報を見ても、その場で予約・決済まで完結できない
- 事業者ごとに予約の受け方が異なり、利用者にとって手続きが分かりにくい
- 商品によって空き状況の数え方が違い、同じ仕組みで管理しにくい
- 料金やキャンセルのルールが事業者ごとに異なる
- 事業者ごとの売上や手数料を、運営会社がまとめて把握・精算する仕組みがない
基本情報
| 開発期間 | 4ヶ月 |
|---|---|
| 開発費用 | 非公開 |
| 使用技術 | Laravel、MySQL |
| 利用者 | 運営会社、参加事業者、一般の利用者 |
ご提案・開発アプローチ
今回のシステムでは、運営会社・参加事業者・利用者という立場の異なる3者が、同じシステムを使います。そこで、3者それぞれの画面と権限を分けました。そのうえで、「事業者が商品を登録する → 利用者が予約する → 事業者が対応する → 運営会社が売上をまとめる」という流れが途切れないように設計しています。
もう一つの軸は、商品の性質が違っても同じ仕組みで扱えるようにすることです。事業者が商品ごとに受付方法を選ぶだけで、予約を受けられるようにしています。
また、既存のWebサイトとは別のシステムとして構築し、データ連携でつなぐ構成にしました。既存サイトの作りを大きく変えずに、予約機能を追加できます。
実装した主な機能
- 商品検索:日付や条件を指定して、空きのある商品を探せる
- 予約カレンダー:カレンダーから日付と時間枠を選んで予約できる
- 予約申し込み・オンライン決済:申し込みからクレジットカード決済まで、一つの流れで完了できる
- 会員機能・マイページ:予約履歴の確認やキャンセルを利用者自身で行える
- 商品・料金管理:事業者が商品の内容、料金、キャンセルのルールを自分で登録・編集できる
- 予約枠管理:予約枠を、期間と曜日を指定してまとめて作成できる
- 予約管理:事業者が予約の一覧と対応状況を確認し、ステータスを更新できる
- 自動メール:予約完了・キャンセル・利用日前のお知らせを、利用者と事業者へ自動送信する
- 売上集計・精算:期間別・事業者別の売上集計とCSV出力、手数料を反映した精算書類の作成
- 外部サイト連携:既存のWebサイトへ、事業者情報や予約ページへのリンクを提供する
- スタッフ権限管理:1つの事業者に複数のアカウントを作成し、操作できる範囲を分けられる
在庫と予約枠の設計について
複数の事業者が参加する予約システムで難しいのは、「何を基準に満席とするか」が商品によって違うことです。設備の数で受け付ける商品もあれば、人数で受け付ける商品もあります。
そこで本システムでは、在庫を持つ単位と、料金や時間を持つ単位を分けて管理する構成にしました。
- 商品ごとに、在庫の数え方と全体の在庫数を設定する
- 一つの商品の中に、内容や料金の異なる複数のプランを登録できる
- プランごとに、日時を指定して予約枠を作成する
- 予約が入ると、同じ商品に属するプラン全体で在庫を共有して差し引く
この設計により、同じ在庫を複数のプランで販売していても、合計数を超えて予約が入ることはありません。事業者は在庫を手作業で調整する必要がなく、利用者には常に正しい空き状況が表示されます。
料金とキャンセルのルールについて
料金の決め方は、事業者によってさまざまです。本システムでは、料金を計算する単位を選べるほか、利用者の区分ごとの料金や、期間限定の料金も登録できます。キャンセル料も、利用日までの日数に応じた段階的なルールを、プランごとに設定できます。
予約した時点の料金とキャンセル規定は、予約データに記録しています。そのため、後から事業者が料金を変更しても、すでに入っている予約には影響しません。料金のトラブルを防ぎつつ、事業者が安心して料金を見直せるようにしています。
予約後の対応と売上の精算について
事業者側では、新しい予約が入ると管理画面で気づけるようになっています。予約への対応状況は、ステータスを進めながら管理できます。キャンセルが発生した場合は、システム上で返金処理まで行えます。
売上の精算では、手数料率を事業者ごとに運営会社が設定でき、売上から手数料を差し引いた金額で精算書類を作成できます。予約・決済・精算のデータがつながっているため、売上の照合や精算額の計算を手作業で行う必要がありません。
開発規模
運営会社向けの管理画面、事業者向けの管理画面、利用者向けの予約画面の3つで構成し、合わせて30以上の機能を実装しました。予約・在庫・決済に関わる主要な処理には自動テストを用意し、機能を追加しても既存の予約の流れが崩れていないかを確認できる体制にしています。
まとめ
本システムにより、利用者はWebサイトで見つけた商品を、その場で予約・決済まで完結できるようになりました。事業者は商品の性質に合わせて在庫・料金・予約枠を自分で管理でき、運営会社は全事業者の予約と売上をまとめて把握・精算できます。
複数の事業者が参加するプラットフォームでは、立場ごとに必要な機能が大きく異なります。当社では、運営会社・事業者・利用者それぞれの業務の流れを整理し、全員が迷わず使える仕組みを設計します。予約や決済の仕組みを自社サービスに組み込みたいとお考えの方は、ぜひ一度ご相談ください。