ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

キャンセル待ち機能は、簡単に考えられそうで奥が深い機能

希望者に応募してもらうシステムに、キャンセル待ちの機能を実装したいという相談がお客さんからありました。
機能としては、

  1. 定員が決まっていて、定員を超えていないときに申し込まれたら本登録、定員を超えたらキャンセル待ちとして受け付ける。
  2. クレジットカード決済をする。
  3. 本登録からキャンセルが出たら、キャンセル待ちを本登録に変更する。

といった内容で相談されました。

いろいろ考えたこと

本登録の受付時点では、クレジットカードで決済できますが、キャンセル待ちでの受付時点ではクレジットのカードで決済はできません。
キャンセル待ちから本登録に切り替えたときにクレジットカード決済するための専用のページを用意して、キャンセル待ちから本登録に切り替えた際にメールを送信し、クレジットカード決済をしてもらうようにしなくてはいけないでしょう。
キャンセル待ちから本登録に切り替えたときにクレジットカード決済するための専用のページを用意するのなら、定員を超えていないときに申し込まれる際もクレジットカード決済をしないでおいて、一律クレジットカード決済するための専用のページを利用してもらう方法の方がすっきりしそうです。

f:id:AJYA:20170224060928j:plain
photo credit: Danny Mekic' The sky is the limit. via photopin (license)

受け付けの状況管理も細かく必要でしょう。

  • 定員を超えていないときに申し込まれた本登録
  • キャンセル待ち
  • キャンセル待ちから本登録へ切り替え、クレジットカード決済が未完了
  • キャンセル待ちから本登録へ切り替え、クレジットカード決済が完了済

の4種類は最低必要そうです。

キャンセル待ちから本登録への切り替えは、定員を超えないように制限が必要かもしれません。
キャンセル待ちから本登録へ切り替えても、クレジットカード決済をされない可能性もあります。
それも見越して定員をある程度超えても、キャンセル待ちから本登録へ切り替えてもいいのかもしれません。


これまでキャンセル待ちという機能を考えたことはありませんでした。
なかなかキャンセル待ちをしてまで申し込むことをした経験がないので、世の中のシステムがどのような動作をしているのか把握できていません。
新しいことを考えるというのは、楽しい行為だと今回改めてかんがました